Mercurial > hg > th-libs
changeset 55:300fba04b7ad
Adjust the foreach linked list functions a bit.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 26 May 2012 03:47:07 +0300 |
parents | 48926b3ff598 |
children | b10f07101e67 |
files | th_util.c th_util.h |
diffstat | 2 files changed, 9 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/th_util.c Sat May 26 02:25:27 2012 +0300 +++ b/th_util.c Sat May 26 03:47:07 2012 +0300 @@ -395,34 +395,34 @@ } -void th_llist_foreach(qlist_t *list, void (*func)(qlist_t *node)) +void th_llist_foreach(qlist_t *list, void (*func)(qlist_t *node, void *userdata), void *data) { qlist_t *curr = list; while (curr != NULL) { - func(curr); + func(curr, data); curr = curr->next; } } -qlist_t * th_llist_foreach_cond(qlist_t *list, int (*func)(qlist_t *node), int *ret) +int th_llist_foreach_cond(qlist_t *list, int (*func)(qlist_t *node, void *userdata), void *data, qlist_t **ret) { qlist_t *curr = list; while (curr != NULL) { - int res = func(curr); + int res = func(curr, data); if (res != 0) { - *ret = res; - return curr; + *ret = curr; + return res; } curr = curr->next; } - return NULL; + return 0; }
--- a/th_util.h Sat May 26 02:25:27 2012 +0300 +++ b/th_util.h Sat May 26 03:47:07 2012 +0300 @@ -115,8 +115,8 @@ size_t th_llist_length(const qlist_t *list); ssize_t th_llist_position(const qlist_t *list, const qlist_t *node); -void th_llist_foreach(qlist_t *list, void (*func)(qlist_t *node)); -qlist_t * th_llist_foreach_cond(qlist_t *list, int (*func)(qlist_t *node), int *ret); +void th_llist_foreach(qlist_t *list, void (*func)(qlist_t *node, void *userdata), void *data); +int th_llist_foreach_cond(qlist_t *list, int (*func)(qlist_t *node, void *userdata), void *data, qlist_t **res); qlist_t * th_llist_find(qlist_t *list, const void *data); qlist_t * th_llist_find_func(qlist_t *list, const void *userdata, int (compare)(const void *, const void *));