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

Reply via email to