aboutsummaryrefslogtreecommitdiff
path: root/src/preproc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/preproc.c')
-rw-r--r--src/preproc.c34
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,

Return to:

Send suggestions and report system problems to the System administrator.