If the file specified in an "include" line does not exist in the current

directory, and its name does not begin with a period or a forward slash,
go look for it in ../../conf.

Wished for by:	scottl
MFC after:	2 weeks
This commit is contained in:
Dag-Erling Smørgrav 2004-10-24 09:38:41 +00:00
parent 7d9aed9c4c
commit 9b736ef9e6

View File

@ -215,10 +215,18 @@ include(const char *fname, int ateof)
{
FILE *fp;
struct incl *in;
char *fnamebuf;
fp = fopen(fname, "r");
if (fp == NULL && fname[0] != '.' && fname[0] != '/') {
asprintf(&fnamebuf, "../../conf/%s", fname);
if (fnamebuf != NULL) {
fp = fopen(fnamebuf, "r");
free(fnamebuf);
}
}
if (fp == NULL) {
yyerror("cannot open file");
yyerror("cannot open included file");
return (-1);
}
in = malloc(sizeof(*in));