Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=fa18b8528ea1b15f83c23b039df3781452b8de77
commit fa18b8528ea1b15f83c23b039df3781452b8de77 Author: Michel Hermier <herm...@frugalware.org> Date: Sat Nov 16 22:20:08 2013 +0100 libpacman: Add f_list_foreach. diff --git a/lib/libpacman/util/list.c b/lib/libpacman/util/list.c index 53bcf30..a94b898 100644 --- a/lib/libpacman/util/list.c +++ b/lib/libpacman/util/list.c @@ -83,6 +83,13 @@ int _pacman_list_empty(const pmlist_t *list) return list == NULL; } +void f_list_foreach(const pmlist_t *list, flist_visitor_t visitor, void *visitor_data) +{ + for(; list != NULL; list = list->next) { + visitor(list, visitor_data); + } +} + static int _pacman_ptrlistitem_ptrcmp(const pmlist_t *item, const void *ptr) { return f_ptrcmp(item->data, ptr); diff --git a/lib/libpacman/util/list.h b/lib/libpacman/util/list.h index f0599e1..5a02406 100644 --- a/lib/libpacman/util/list.h +++ b/lib/libpacman/util/list.h @@ -24,6 +24,7 @@ #include "pacman.h" typedef int (*flist_compar_t)(const pmlist_t *item, const void *ptr); +typedef int (*flist_visitor_t)(const pmlist_t *item, void *visitor_data); /* Chained list struct */ struct __pmlist_t { @@ -48,6 +49,7 @@ int f_list_contains(const pmlist_t *list, flist_compar_t compar, const void *ptr int _pacman_list_count(const pmlist_t *list); int _pacman_list_empty(const pmlist_t *list); int _pacman_list_is_in(void *needle, const pmlist_t *haystack); +void f_list_foreach(const pmlist_t *list, flist_visitor_t visitor, void *visitor_data); pmlist_t *_pacman_list_add(pmlist_t *list, void *data); pmlist_t *_pacman_list_add_sorted(pmlist_t *list, void *data, _pacman_fn_cmp fn); _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git