Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=760803fe234b646170e64b0f68ea9d0dacf92c27
commit 760803fe234b646170e64b0f68ea9d0dacf92c27 Author: Michel Hermier <herm...@frugalware.org> Date: Sat Dec 21 15:49:04 2013 +0100 libpacman: Add some helpers in fstringlist.h. diff --git a/lib/libpacman/util/list.c b/lib/libpacman/util/list.c index d77b500..38eef73 100644 --- a/lib/libpacman/util/list.c +++ b/lib/libpacman/util/list.c @@ -38,6 +38,11 @@ void f_listitem_delete(FListItem *item, FVisitor *visitor) free(item); } +FList *f_list_new() +{ + return NULL; +} + int f_list_contains(const FList *list, FListItemComparatorFunc comparator, const void *comparator_data) { return f_list_find(list, comparator, comparator_data) != NULL; @@ -271,13 +276,6 @@ FPtrListItem *f_ptrlistitem_new(void *ptr) return item; } -FPtrList *f_ptrlist_new(void) -{ - FPtrListItem *item = f_ptrlistitem_new(NULL); - item->last = item; - return (FPtrList *)item; -} - void f_ptrlistitem_delete(FListItem *item, FVisitor *visitor) { ASSERT(item != NULL, return); @@ -293,7 +291,14 @@ int f_ptrlistitem_ptrcmp(const FListItem *item, const void *ptr) { return f_ptrcmp(item->data, ptr); } -void f_ptrlist_delete(FPtrList *list, FVisitor *visitor) +FPtrList *f_ptrlist_new(void) +{ + FPtrListItem *item = f_ptrlistitem_new(NULL); + item->last = item; + return (FPtrList *)item; +} + +int f_ptrlist_delete(FPtrList *list, FVisitor *visitor) { f_ptrlist_clear(list, visitor); } @@ -318,7 +323,7 @@ int f_ptrlist_any_match(const FPtrList *list, const FMatcher *matcher) return f_list_any_match(list, &itemmatcher); } -void f_ptrlist_clear(FPtrList *list, FVisitor *visitor) +int f_ptrlist_clear(FPtrList *list, FVisitor *visitor) { FPtrList *next; @@ -330,6 +335,7 @@ void f_ptrlist_clear(FPtrList *list, FVisitor *visitor) free(list); list = next; } + return 0; } int f_ptrlist_contains_ptr(const FPtrList *list, const void *ptr) diff --git a/lib/libpacman/util/list.h b/lib/libpacman/util/list.h index 607fb10..c8ff0a0 100644 --- a/lib/libpacman/util/list.h +++ b/lib/libpacman/util/list.h @@ -54,6 +54,8 @@ typedef int (*_pacman_fn_cmp)(const void *, const void *); void f_listitem_delete(FListItem *item, FVisitor *visitor); +FList *f_list_new(void); + 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); @@ -78,11 +80,11 @@ int f_ptrlistitem_match(const FListItem *item, const FMatcher *matcher); int f_ptrlistitem_ptrcmp(const FListItem *item, const void *ptr); FPtrList *f_ptrlist_new(void); -void f_ptrlist_delete(FPtrList *list, FVisitor *visitor); +int f_ptrlist_delete(FPtrList *list, FVisitor *visitor); int f_ptrlist_all_match(const FPtrList *list, const FMatcher *matcher); int f_ptrlist_any_match(const FPtrList *list, const FMatcher *matcher); -void f_ptrlist_clear(FPtrList *list, FVisitor *visitor); +int f_ptrlist_clear(FPtrList *list, FVisitor *visitor); #define f_ptrlist_contains f_list_contains int f_ptrlist_contains_ptr(const FPtrList *list, const void *ptr); #define f_ptrlist_count f_list_count diff --git a/lib/libpacman/util/stringlist.c b/lib/libpacman/util/stringlist.c index a135f57..3344cf0 100644 --- a/lib/libpacman/util/stringlist.c +++ b/lib/libpacman/util/stringlist.c @@ -74,6 +74,22 @@ FStringList *_pacman_list_strdup(FStringList *list) return(newlist); } +static +struct FVisitor f_stringlistitem_destroyvisitor = { + .fn = (FVisitorFunc)free, + .data = NULL, +}; + +FStringList *f_stringlist_new(void) +{ + return f_ptrlist_new(); +} + +int f_stringlist_delete(FStringList *self) +{ + return f_ptrlist_delete(self, &f_stringlistitem_destroyvisitor); +} + int f_stringlist_all_match(const FStringList *list, const FStrMatcher *matcher) { return f_ptrlist_all_match(list, (const FMatcher *)matcher); @@ -99,4 +115,9 @@ FStringList *f_stringlist_append_stringlist(FStringList *dest, const FStringList return dest; } +int f_stringlist_clear(FStringList *self) +{ + return f_ptrlist_clear(self, &f_stringlistitem_destroyvisitor); +} + /* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libpacman/util/stringlist.h b/lib/libpacman/util/stringlist.h index c6e8d44..8bc5e8a 100644 --- a/lib/libpacman/util/stringlist.h +++ b/lib/libpacman/util/stringlist.h @@ -33,10 +33,14 @@ int _pacman_list_is_strin(const char *needle, FStringList *haystack); FStringList *_pacman_list_remove_dupes(FStringList *list); FStringList *_pacman_list_strdup(FStringList *list); +FStringList *f_stringlist_new(void); +int f_stringlist_delete(FStringList *self); + int f_stringlist_all_match(const FStringList *list, const FStrMatcher *matcher); int f_stringlist_any_match(const FStringList *list, const FStrMatcher *matcher); FStringList *f_stringlist_append(FStringList *list, const char *s); FStringList *f_stringlist_append_stringlist(FStringList *dest, const FStringList *src); +int f_stringlist_clear(FStringList *self); #endif /* _PACMAN_STRINGLIST_H */ _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git