33 #define _x_list_alloc x_list_alloc 39 list = calloc (1,
sizeof (
x_list_t));
56 #define _x_list_free_1 x_list_free_1 70 new_list->
data = data;
75 last->
next = new_list;
76 new_list->
prev = last;
90 new_list->
data = data;
97 list->
prev = new_list;
98 new_list->
next = list;
112 }
else if (position == 0) {
121 new_list->
data = data;
123 if (tmp_list->
prev) {
127 new_list->
next = tmp_list;
128 tmp_list->
prev = new_list;
130 if (tmp_list == list) {
145 }
else if (sibling) {
153 node->
next = sibling;
154 sibling->
prev = node;
157 node->
next = sibling;
158 sibling->
prev = node;
186 tmp_list->
next = list2;
190 list2->
prev = tmp_list;
203 if (tmp->
data != data) {
228 if (tmp->
data != data) {
271 return _x_list_remove_link (list, link);
277 list = _x_list_remove_link (list, link);
326 while ((n-- > 0) && list)
335 while ((n-- > 0) && list)
344 while ((n-- > 0) && list)
347 return list ? list->
data : NULL;
354 if (list->
data == data)
365 assert (func != NULL);
368 if (! func (list->
data, data))
400 if (list->
data == data)
450 (*func) (list->
data, user_data);
463 assert (func != NULL);
467 new_list->
data = data;
471 cmp = (*func) (data, tmp_list->
data);
473 while ((tmp_list->
next) && (cmp > 0)) {
474 tmp_list = tmp_list->
next;
475 cmp = (*func) (data, tmp_list->
data);
479 new_list->
data = data;
481 if ((!tmp_list->
next) && (cmp > 0)) {
482 tmp_list->
next = new_list;
483 new_list->
prev = tmp_list;
487 if (tmp_list->
prev) {
491 new_list->
next = tmp_list;
492 tmp_list->
prev = new_list;
494 if (tmp_list == list)
x_list_t * x_list_copy(x_list_t *list)
x_list_t * x_list_insert_sorted(x_list_t *list, void *data, XCompareFunc func)
x_list_t * x_list_first(x_list_t *list)
x_list_t * x_list_find_custom(x_list_t *list, const void *data, XCompareFunc func)
x_list_t * x_list_alloc(void)
x_list_t * x_list_append(x_list_t *list, void *data)
void x_list_free(x_list_t *list)
int x_list_position(x_list_t *list, x_list_t *link)
x_list_t * x_list_prepend(x_list_t *list, void *data)
x_list_t * x_list_delete_link(x_list_t *list, x_list_t *link)
x_list_t * x_list_find(x_list_t *list, const void *data)
x_list_t * x_list_remove_link(x_list_t *list, x_list_t *link)
unsigned int x_list_length(x_list_t *list)
x_list_t * x_list_insert(x_list_t *list, void *data, int position)
void * x_list_nth_data(x_list_t *list, unsigned int n)
x_list_t * x_list_remove_all(x_list_t *list, const void *data)
x_list_t * x_list_remove(x_list_t *list, const void *data)
x_list_t * x_list_last(x_list_t *list)
x_list_t * x_list_reverse(x_list_t *list)
x_list_t * x_list_nth_prev(x_list_t *list, unsigned int n)
void x_list_foreach(x_list_t *list, XFunc func, void *user_data)
x_list_t * x_list_nth(x_list_t *list, unsigned int n)
x_list_t * x_list_insert_before(x_list_t *list, x_list_t *sibling, void *data)
x_list_t * x_list_concat(x_list_t *list1, x_list_t *list2)
int x_list_index(x_list_t *list, const void *data)
void x_list_free_1(x_list_t *list)