diff -r b8bf95b39952 -r cff9c4101dd7 src/server/util/list.c --- a/src/server/util/list.c Sat Jan 14 13:53:44 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ -/* - * File: list.c - * Author: olaf - * - * Created on 18. Dezember 2010, 11:23 - */ - -#include -#include - -#include "list.h" - -/* add functions */ -sdlist_t* sdlist_add(sdlist_t *list, void *data) { - sdlist_t *elm = malloc(sizeof(sdlist_t)); - elm->data = data; - elm->next = NULL; - - return sdlist_addl(list, elm); -} - -sdlist_t* sdlist_addl(sdlist_t *list, sdlist_t *l) { - if (list != NULL) { - sdlist_t *end = sdlist_getlast(list); - end->next = l; - return list; - } else { - return l; - } -} - - - -/* remove functions */ -sdlist_t* sdlist_remove(sdlist_t *list, void *data) { - sdlist_t *s = list; - - sdlist_t *prev = NULL; - while (list != NULL) { - if (list->data == data) { - sdlist_t *nl = sdlist_remove_elm(s, prev, list); - free(list); - return nl; - } - - prev = list; - list = list->next; - } - - return s; -} - -sdlist_t* sdlist_removei(sdlist_t *list, int index) { - sdlist_t *s = list; - - sdlist_t *prev = NULL; - int i = 0; - while (list != NULL) { - if (i == index) { - sdlist_t *nl = sdlist_remove_elm(s, prev, list); - free(list); - return nl; - } - - prev = list; - list = list->next; - i++; - } - - return s; -} - -sdlist_t* sdlist_removel(sdlist_t *list, sdlist_t *l) { - sdlist_t *s = list; - - sdlist_t *prev = NULL; - while (list != NULL) { - if (list == l) { - return sdlist_remove_elm(s, prev, list); - } - - prev = list; - list = list->next; - } - - return s; -} - - -sdlist_t *sdlist_remove_elm(sdlist_t *list, sdlist_t *prev, sdlist_t *elm) { - if (elm == NULL) { - return list; - } - - if (prev == NULL) { - return elm->next; - } - - prev->next = elm->next; - - return list; -} - - - -/* insert functions */ -void sdlist_insert(sdlist_t *elm, void *data) { - sdlist_t *newelm = malloc(sizeof(sdlist_t)); - newelm->data = data; - sdlist_insertl(elm, newelm); -} - -void sdlist_insertl(sdlist_t *elm, sdlist_t *l) { - if (elm == NULL || l == NULL) { - return; - } - - l->next = elm->next; - elm->next = l; -} - - -/* get functions */ -sdlist_t* sdlist_get(sdlist_t *list, void *data) { - while (list != NULL) { - if (list->data == data) { - return list; - } - list = list->next; - } - return NULL; -} - -sdlist_t* sdlist_geti(sdlist_t *list, int index) { - for (int i=0;inext; - } - return list; -} - -sdlist_t* sdlist_getlast(sdlist_t *list) { - while(list->next != NULL) { - list = list->next; - } - return list; -} - - - -/* miscellaneous functions */ -size_t sdlist_length(sdlist_t *list) { - int i = 0; - while(list->next != NULL) { - list = list->next; - i++; - } - return i; -} - -void sdlist_free(sdlist_t *elm) { - free(elm); -} - -void sdlist_foreach(sdlist_t *list, sdlist_iterator_func f, void *data) { - while(list != NULL) { - int r = f(list, data); - if (r) { - return; - } - list = list->next; - } -}