Commit fe04532a authored by Wayne Davison's avatar Wayne Davison

New support function: change_local_filter_dir().

parent e4b619b4
......@@ -493,6 +493,30 @@ void pop_local_filters(void *mem)
free(pop);
}
void change_local_filter_dir(const char *dname, int dlen, int dir_depth)
{
static int min_depth = MAXPATHLEN, cur_depth = -1;
static void *filt_array[MAXPATHLEN/2+1];
if (!dname) {
while (cur_depth >= min_depth)
pop_local_filters(filt_array[cur_depth--]);
min_depth = MAXPATHLEN;
cur_depth = -1;
return;
}
assert(dir_depth < MAXPATHLEN/2+1);
while (cur_depth >= dir_depth && cur_depth >= min_depth)
pop_local_filters(filt_array[cur_depth--]);
cur_depth = dir_depth;
if (cur_depth < min_depth)
min_depth = cur_depth;
filt_array[cur_depth] = push_local_filters(dname, dlen);
}
static int rule_matches(char *name, struct filter_struct *ex, int name_is_dir)
{
int slash_handling, str_cnt = 0, anchored_match = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment