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)