Skip to content
Snippets Groups Projects
Commit 52a99558 authored by jow's avatar jow
Browse files

scripts/config: support includes relative to the currently processed file


When the initial glob() attempt on a path specified with "source" statement
yields no result, then retry the globbing on the same path with the directory
part of the currently processed file prepended.

This allows us to reference Config.in files relative to their parent instead
of relative to the top dir.

Signed-off-by: default avatarJo-Philipp Wich <jow@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43652 3c298f89-4303-0410-b956-a3cf2f4a3e73
parent d1466165
No related branches found
No related tags found
No related merge requests found
......@@ -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";
......
......@@ -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";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment