aboutsummaryrefslogtreecommitdiff
path: root/archival/libunarchive/filter_accept_list.c
diff options
context:
space:
mode:
Diffstat (limited to 'archival/libunarchive/filter_accept_list.c')
-rw-r--r--archival/libunarchive/filter_accept_list.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/archival/libunarchive/filter_accept_list.c b/archival/libunarchive/filter_accept_list.c
new file mode 100644
index 000000000..06b1dd3dd
--- /dev/null
+++ b/archival/libunarchive/filter_accept_list.c
@@ -0,0 +1,16 @@
+#include <fnmatch.h>
+#include <stdlib.h>
+#include "unarchive.h"
+/*
+ * Accept names that are in the accept list
+ */
+extern char filter_accept_list(const llist_t *accept_list, const llist_t *reject_list, const char *key)
+{
+ while (accept_list) {
+ if (fnmatch(accept_list->data, key, 0) == 0) {
+ return(EXIT_SUCCESS);
+ }
+ accept_list = accept_list->link;
+ }
+ return(EXIT_FAILURE);
+}