aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/config
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/config')
-rw-r--r--scripts/config/zconf.l10
-rw-r--r--scripts/config/zconf.lex.c_shipped11
2 files changed, 21 insertions, 0 deletions
diff --git a/scripts/config/zconf.l b/scripts/config/zconf.l
index 3aef45983a..1dd765817a 100644
--- a/scripts/config/zconf.l
+++ b/scripts/config/zconf.l
@@ -343,6 +343,7 @@ void zconf_nextfile(const char *name)
glob_t gl;
int err;
int i;
+ char path[PATH_MAX], *p;
err = glob(name, GLOB_ERR | GLOB_MARK, NULL, &gl);
@@ -352,6 +353,15 @@ void zconf_nextfile(const char *name)
gl.gl_pathc = 0;
}
+ if (err == GLOB_NOMATCH) {
+ p = strdup(current_file->name);
+ if (p) {
+ snprintf(path, sizeof(path), "%s/%s", dirname(p), name);
+ err = glob(path, GLOB_ERR | GLOB_MARK, NULL, &gl);
+ free(p);
+ }
+ }
+
if (err) {
const char *reason = "unknown error";
diff --git a/scripts/config/zconf.lex.c_shipped b/scripts/config/zconf.lex.c_shipped
index 766549fbfe..c938b2fae6 100644
--- a/scripts/config/zconf.lex.c_shipped
+++ b/scripts/config/zconf.lex.c_shipped
@@ -2399,6 +2399,7 @@ void zconf_nextfile(const char *name)
glob_t gl;
int err;
int i;
+ char path[PATH_MAX], *p;
err = glob(name, GLOB_ERR | GLOB_MARK, NULL, &gl);
@@ -2408,6 +2409,16 @@ void zconf_nextfile(const char *name)
gl.gl_pathc = 0;
}
+ if (err == GLOB_NOMATCH) {
+ p = strdup(current_file->name);
+ if (p) {
+ snprintf(path, sizeof(path), "%s/%s", dirname(p), name);
+ fprintf(stderr, "TRY:%s\n", path);
+ err = glob(path, GLOB_ERR | GLOB_MARK, NULL, &gl);
+ free(p);
+ }
+ }
+
if (err) {
const char *reason = "unknown error";