mirror of
https://github.com/hak5/wifipineapple-openwrt.git
synced 2025-10-29 16:57:19 +00:00
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: Jo-Philipp Wich <jow@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43652 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
f46b02b711
commit
6fa321ff1c
@ -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";
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user