summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2015-02-13 18:37:43 -0500
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2015-02-16 13:16:45 -0500
commitbceccd5ecc393c344ab008737ba6aab211a5ea9f (patch)
treece4ef4ed45bb54764fe6703372477103c4fad01d /src/shared
parent488c8d08c322471f2e702e25b75f31bed7ae5975 (diff)
Add helper for fnmatch over strv
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/strv.c10
-rw-r--r--src/shared/strv.h9
2 files changed, 19 insertions, 0 deletions
diff --git a/src/shared/strv.c b/src/shared/strv.c
index e418312d5..2268bf61d 100644
--- a/src/shared/strv.c
+++ b/src/shared/strv.c
@@ -692,3 +692,13 @@ char **strv_reverse(char **l) {
return l;
}
+
+bool strv_fnmatch(const char *s, char* const* patterns, int flags) {
+ char* const* p;
+
+ STRV_FOREACH(p, patterns)
+ if (fnmatch(*p, s, 0) == 0)
+ return true;
+
+ return false;
+}
diff --git a/src/shared/strv.h b/src/shared/strv.h
index e385bf73b..a899395ba 100644
--- a/src/shared/strv.h
+++ b/src/shared/strv.h
@@ -23,6 +23,7 @@
#include <stdarg.h>
#include <stdbool.h>
+#include <fnmatch.h>
#include "util.h"
@@ -144,3 +145,11 @@ void strv_print(char **l);
}))
char **strv_reverse(char **l);
+
+bool strv_fnmatch(const char *s, char* const* patterns, int flags);
+
+static inline bool strv_fnmatch_or_empty(const char *s, char* const* patterns, int flags) {
+ assert(s);
+ return strv_isempty(patterns) ||
+ strv_fnmatch(s, patterns, flags);
+}