scripts/config: support includes relative to the currently processed file
[openwrt/staging/blogic.git] / scripts / config / zconf.lex.c_shipped
index 766549fbfed1dd56f8c4b119002e9718ed2dc2fd..c938b2fae6966b34530e8b1a3cbe00c1b0a46ace 100644 (file)
@@ -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";