Dolda2000 GitWeb
/
ashd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
build: Use AS_HELP_STRING.
[ashd.git]
/
src
/
dirplex
/
conf.c
diff --git
a/src/dirplex/conf.c
b/src/dirplex/conf.c
index
84c035d
..
76624a7
100644
(file)
--- a/
src/dirplex/conf.c
+++ b/
src/dirplex/conf.c
@@
-150,6
+150,10
@@
static struct pattern *parsepattern(struct cfstate *s)
if((s->argc > 1) && !strcmp(s->argv[1], "directory"))
pat->type = PT_DIR;
if((s->argc > 1) && !strcmp(s->argv[1], "directory"))
pat->type = PT_DIR;
+ else if((s->argc > 1) && !strcmp(s->argv[1], "notfound"))
+ pat->type = PT_NOTFOUND;
+ else
+ pat->type = PT_FILE;
sl = s->lno;
while(1) {
getcfline(s);
sl = s->lno;
while(1) {
getcfline(s);
@@
-262,6
+266,9
@@
struct config *readconfig(char *file)
if(cf->capture != NULL)
free(cf->capture);
cf->capture = sstrdup(s->argv[1]);
if(cf->capture != NULL)
free(cf->capture);
cf->capture = sstrdup(s->argv[1]);
+ cf->caproot = 0;
+ if((s->argc > 2) && strchr(s->argv[2], 'D'))
+ cf->caproot = 1;
} else if(!strcmp(s->argv[0], "eof")) {
break;
} else {
} else if(!strcmp(s->argv[0], "eof")) {
break;
} else {
@@
-371,7
+378,7
@@
struct child *findchild(char *file, char *name, struct config **cf)
return(NULL);
}
return(NULL);
}
-struct pattern *findmatch(char *file, int trydefault, int
dir
)
+struct pattern *findmatch(char *file, int trydefault, int
type
)
{
int i, o, c;
char *bn, *ln;
{
int i, o, c;
char *bn, *ln;
@@
-396,9
+403,7
@@
struct pattern *findmatch(char *file, int trydefault, int dir)
ln = file; /* This should only happen in the base directory. */
}
for(pat = cfs[c]->patterns; pat != NULL; pat = pat->next) {
ln = file; /* This should only happen in the base directory. */
}
for(pat = cfs[c]->patterns; pat != NULL; pat = pat->next) {
- if(!dir && (pat->type == PT_DIR))
- continue;
- if(dir && (pat->type != PT_DIR))
+ if(pat->type != type)
continue;
for(i = 0; (rule = pat->rules[i]) != NULL; i++) {
if(rule->type == PAT_BASENAME) {
continue;
for(i = 0; (rule = pat->rules[i]) != NULL; i++) {
if(rule->type == PAT_BASENAME) {
@@
-429,7
+434,7
@@
struct pattern *findmatch(char *file, int trydefault, int dir)
}
}
if(!trydefault)
}
}
if(!trydefault)
- return(findmatch(file, 1,
dir
));
+ return(findmatch(file, 1,
type
));
return(NULL);
}
return(NULL);
}