Correctly aggregate together errors from nested config files (with

source-file). Fix by Thomas Adam, reported by Sam Livingstone-Gray
This commit is contained in:
Nicholas Marriott
2012-11-27 16:12:29 +00:00
parent 4aa4e9fb26
commit 9b8998aeec
4 changed files with 30 additions and 25 deletions

11
cfg.c
View File

@ -34,9 +34,10 @@
void printflike2 cfg_print(struct cmd_ctx *, const char *, ...);
void printflike2 cfg_error(struct cmd_ctx *, const char *, ...);
char *cfg_cause;
int cfg_finished;
struct causelist cfg_causes = ARRAY_INITIALIZER;
char *cfg_cause;
int cfg_finished;
int cfg_references;
struct causelist cfg_causes;
/* ARGSUSED */
void printflike2
@ -89,6 +90,8 @@ load_cfg(const char *path, struct cmd_ctx *ctxin, struct causelist *causes)
}
n = 0;
cfg_references++;
line = NULL;
retval = CMD_RETURN_NORMAL;
while ((buf = fgetln(f, &len))) {
@ -171,6 +174,8 @@ load_cfg(const char *path, struct cmd_ctx *ctxin, struct causelist *causes)
}
fclose(f);
cfg_references--;
return (retval);
}