1 #include <stdlib.h>
2 #include <string.h>
3 #include <libgen.h>
4 #include <adt/p_forward_list_alt.h>
5 #include <alloc/obstack.h>
6 
7 #include "errors.h"
8 #include "find.h"
9 #include "prune.h"
10 
11 p_forward_list_alt_t prune_list;
12 
prune_clear_list(void)13 void prune_clear_list(void)
14 {
15    p_forward_list_alt_init(&prune_list);
16 }
17 
prune_add_list(unsigned char * name)18 void prune_add_list(unsigned char *name)
19 {
20    struct prune *p;
21 
22    if ((p = obstack_alloc(ob, sizeof(struct prune) + strlen(name))) == 0)
23       exit((int)err_out_of_memory);
24 
25    strcpy(p->path, name);
26    p_forward_list_alt_push_back(&prune_list, p);
27 }
28 
prune_apply(unsigned char * name)29 unsigned char prune_apply(unsigned char *name)
30 {
31    for (struct prune *p = p_forward_list_alt_front(&prune_list); p; p = p_forward_list_alt_next(p))
32       if (glob_fat(name, p->path)) return 1;
33 
34    return 0;
35 }
36