The codeblocks editor cleans up surplus whitespace with every save by default. That's nice, as long as everyone uses it. Otherwise, changes in whitespace will creep into most commits and make the diffs hard to read. Therefore: one commit with _only_ whitespace changed.
76 lines
1.5 KiB
C
76 lines
1.5 KiB
C
/**
|
|
@file list.c
|
|
@brief ENet linked list functions
|
|
*/
|
|
#define ENET_BUILDING_LIB 1
|
|
#include "enet/enet.h"
|
|
|
|
/**
|
|
@defgroup list ENet linked list utility functions
|
|
@ingroup private
|
|
@{
|
|
*/
|
|
void
|
|
enet_list_clear (ENetList * list)
|
|
{
|
|
list -> sentinel.next = & list -> sentinel;
|
|
list -> sentinel.previous = & list -> sentinel;
|
|
}
|
|
|
|
ENetListIterator
|
|
enet_list_insert (ENetListIterator position, void * data)
|
|
{
|
|
ENetListIterator result = (ENetListIterator) data;
|
|
|
|
result -> previous = position -> previous;
|
|
result -> next = position;
|
|
|
|
result -> previous -> next = result;
|
|
position -> previous = result;
|
|
|
|
return result;
|
|
}
|
|
|
|
void *
|
|
enet_list_remove (ENetListIterator position)
|
|
{
|
|
position -> previous -> next = position -> next;
|
|
position -> next -> previous = position -> previous;
|
|
|
|
return position;
|
|
}
|
|
|
|
ENetListIterator
|
|
enet_list_move (ENetListIterator position, void * dataFirst, void * dataLast)
|
|
{
|
|
ENetListIterator first = (ENetListIterator) dataFirst,
|
|
last = (ENetListIterator) dataLast;
|
|
|
|
first -> previous -> next = last -> next;
|
|
last -> next -> previous = first -> previous;
|
|
|
|
first -> previous = position -> previous;
|
|
last -> next = position;
|
|
|
|
first -> previous -> next = first;
|
|
position -> previous = last;
|
|
|
|
return first;
|
|
}
|
|
|
|
size_t
|
|
enet_list_size (ENetList * list)
|
|
{
|
|
size_t size = 0;
|
|
ENetListIterator position;
|
|
|
|
for (position = enet_list_begin (list);
|
|
position != enet_list_end (list);
|
|
position = enet_list_next (position))
|
|
++ size;
|
|
|
|
return size;
|
|
}
|
|
|
|
/** @} */
|