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.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/archival/libunarchive/filter_accept_list.c b/archival/libunarchive/filter_accept_list.c
index 9f92e6440..2b023ec70 100644
--- a/archival/libunarchive/filter_accept_list.c
+++ b/archival/libunarchive/filter_accept_list.c
@@ -1,24 +1,15 @@
#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)
{
- llist_t *accept_old;
-
- while (accept_list) {
- if (fnmatch(accept_list->data, key, 0) == 0) {
- /* Remove entry from list */
- accept_old->link = accept_list->link;
- free(accept_list->data);
- free(accept_list);
- accept_list = accept_old;
- return(EXIT_SUCCESS);
- }
- accept_old = accept_list;
- accept_list = accept_list->link;
+ if (find_list_entry(accept_list, key)) {
+ return(EXIT_SUCCESS);
+ } else {
+ return(EXIT_FAILURE);
}
- return(EXIT_FAILURE);
}