X-Git-Url: http://dolda2000.com/gitweb/?p=ashd.git;a=blobdiff_plain;f=src%2Fdirplex%2Fconf.c;h=9ae4ca702f67fcd00bc09eb3b89634e21f9b374e;hp=359bf0c3359a76110c9766d863b4bd68cb60ec04;hb=539c7b9f70c856a6451685e405b3a6c870d34ee4;hpb=22aad619ffc2cf4b9532f1fbb19a4bbee2d07c11 diff --git a/src/dirplex/conf.c b/src/dirplex/conf.c index 359bf0c..9ae4ca7 100644 --- a/src/dirplex/conf.c +++ b/src/dirplex/conf.c @@ -86,6 +86,8 @@ static void freeconfig(struct config *cf) freeca(cf->index); if(cf->capture != NULL) free(cf->capture); + if(cf->reparse != NULL) + free(cf->reparse); free(cf); } @@ -267,6 +269,17 @@ struct config *readconfig(char *file) cf->caproot = 0; if((s->argc > 2) && strchr(s->argv[2], 'D')) cf->caproot = 1; + } else if(!strcmp(s->argv[0], "reparse")) { + if(s->argc < 2) { + flog(LOG_WARNING, "%s:%i: missing argument to reparse declaration", s->file, s->lno); + continue; + } + if(cf->reparse != NULL) + free(cf->reparse); + cf->reparse = sstrdup(s->argv[1]); + cf->parsecomb = 0; + if((s->argc > 2) && strchr(s->argv[2], 'c')) + cf->parsecomb = 1; } else if(!strcmp(s->argv[0], "eof")) { break; } else {