Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=4738aaae12ba59cc371f97ad73ec4c738cabda1f

commit 4738aaae12ba59cc371f97ad73ec4c738cabda1f
Author: Michel Hermier <herm...@frugalware.org>
Date:   Sat Dec 14 12:09:56 2013 +0100

libpacman: Add f_stringlist_all_match and f_stringlist_any_match.

diff --git a/lib/libpacman/util/stringlist.c b/lib/libpacman/util/stringlist.c
index bd1b128..bf9a0f6 100644
--- a/lib/libpacman/util/stringlist.c
+++ b/lib/libpacman/util/stringlist.c
@@ -74,6 +74,34 @@ FStringList *_pacman_list_strdup(FStringList *list)
return(newlist);
}

+int f_stringlist_all_match(const FStringList *list, const FStrMatcher *matcher)
+{
+       const FStringListItem *it;
+
+       if(f_list_empty(list)) {
+               return 0;
+       }
+
+       for(it = list; it != NULL; it = it->next) {
+               if(f_str_match(list->data, matcher) == 0) {
+                       return 0;
+               }
+       }
+       return 1;
+}
+
+int f_stringlist_any_match(const FStringList *list, const FStrMatcher *matcher)
+{
+       const FStringListItem *it;
+
+       for(it = list; it != NULL; it = it->next) {
+               if(f_str_match(list->data, matcher) != 0) {
+                       return 1;
+               }
+       }
+       return 0;
+}
+
FStringList *f_stringlist_append(FStringList *list, const char *s)
{
return _pacman_list_add(list, strdup(s));
diff --git a/lib/libpacman/util/stringlist.h b/lib/libpacman/util/stringlist.h
index bb5d8c3..c6e8d44 100644
--- a/lib/libpacman/util/stringlist.h
+++ b/lib/libpacman/util/stringlist.h
@@ -21,7 +21,8 @@
#ifndef _PACMAN_STRINGLIST_H
#define _PACMAN_STRINGLIST_H

-#include "list.h"
+#include "util/list.h"
+#include "fstring.h"

typedef struct __pmlist_t FStringList;
typedef struct __pmlist_t FStringListItem;
@@ -32,6 +33,8 @@ int _pacman_list_is_strin(const char *needle, FStringList 
*haystack);
FStringList *_pacman_list_remove_dupes(FStringList *list);
FStringList *_pacman_list_strdup(FStringList *list);

+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);
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to