Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=5954095afb6b0f5d55c9b2d5436b619fdff139c1
commit 5954095afb6b0f5d55c9b2d5436b619fdff139c1 Author: Michel Hermier <herm...@frugalware.org> Date: Mon Nov 18 13:08:26 2013 +0100 libpacman: Add f_list_find. diff --git a/lib/libpacman/util/list.c b/lib/libpacman/util/list.c index d1f29ad..b870537 100644 --- a/lib/libpacman/util/list.c +++ b/lib/libpacman/util/list.c @@ -40,12 +40,7 @@ void f_listitem_delete(FListItem *item, FVisitor *visitor) int f_list_contains(const FList *list, FListItemComparatorFunc comparator, const void *comparator_data) { - for(; list != NULL; list = list->next) { - if(comparator(list, comparator_data) == 0) { - return 1; - } - } - return 0; + return f_list_find(list, comparator, comparator_data) != NULL; } int f_list_count(const FList *list) @@ -78,6 +73,16 @@ int _pacman_list_is_in(void *needle, const pmlist_t *haystack) return f_list_contains(haystack, _pacman_ptrlistitem_ptrcmp, needle); } +FListItem *f_list_find(const FList *list, FListItemComparatorFunc comparator, const void *comparator_data) +{ + for(; list != NULL; list = list->next) { + if(comparator(list, comparator_data) == 0) { + break; + } + } + return (FListItem *)list; +} + pmlist_t *_pacman_list_add(pmlist_t *list, void *data) { pmlist_t *ptr, *lp; diff --git a/lib/libpacman/util/list.h b/lib/libpacman/util/list.h index 32289ee..5382179 100644 --- a/lib/libpacman/util/list.h +++ b/lib/libpacman/util/list.h @@ -56,6 +56,7 @@ void f_listitem_delete(FListItem *item, FVisitor *visitor); int f_list_contains(const FList *list, FListItemComparatorFunc comparator, const void *comparator_data); int f_list_count(const FList *list); int f_list_empty(const FList *list); +FListItem *f_list_find(const FList *list, FListItemComparatorFunc comparator, const void *comparator_data); int _pacman_list_is_in(void *needle, const pmlist_t *haystack); void f_list_foreach(const FList *list, FListItemVisitorFunc visitor, void *visitor_data); _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git