diff options
Diffstat (limited to 'src/preproc.c')
-rw-r--r-- | src/preproc.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/preproc.c b/src/preproc.c index 8debdcf..4ab3066 100644 --- a/src/preproc.c +++ b/src/preproc.c @@ -474,4 +474,4 @@ pop_source() -static int -try_file(const char *name, int allow_cwd, int err_not_found, char **newp) +char * +grecs_find_include_file(const char *name, int allow_cwd) { @@ -497,12 +497,6 @@ try_file(const char *name, int allow_cwd, int err_not_found, char **newp) pp_list_find(std_include_path, &fd); - - if (!fd.found && err_not_found) { - grecs_error(&LOCUS, 0, - _("%s: No such file or directory"), name); - *newp = NULL; - } + if (!fd.found) + return NULL; } - if (fd.found) - *newp = fd.buf; - return fd.found; + return fd.buf; } @@ -537,4 +531,9 @@ parse_include(const char *text, int once) - if (p[0] != '/' && try_file(p, allow_cwd, 1, &tmp)) - p = tmp; + if (p[0] != '/') { + p = grecs_find_include_file(p, allow_cwd); + if (!p) + grecs_error(&LOCUS, 0, + _("%s: No such file or directory"), + p); + } } @@ -575,4 +574,5 @@ grecs_preproc_run(const char *config_file, const char *extpp) char *cmd = NULL; - - if (try_file("pp-setup", 1, 0, &setup_file)) { + + setup_file = grecs_find_include_file("pp-setup", 1); + if (setup_file) { size_t size = 0; @@ -583,6 +583,6 @@ grecs_preproc_run(const char *config_file, const char *extpp) } else - cmd = grecs_strdup (extpp); + cmd = grecs_strdup(extpp); /*FIXME_DEBUG_F1 (2, "Running preprocessor: `%s'", cmd);*/ outfile = popen(cmd, "w"); - if (!outfile){ + if (!outfile) { grecs_error(NULL, errno, |