diff options
author | tjr <tjr@FreeBSD.org> | 2002-05-26 06:15:15 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2002-05-26 06:15:15 +0000 |
commit | dc6576dc1fa3ef0fee4202a75353404e115bc014 (patch) | |
tree | f34aaae8684a0c25595964e278ca021a5a00b9ca /usr.bin/m4 | |
parent | 1bb2478dbeba2e967ffb1f7c7a96300117916828 (diff) | |
download | FreeBSD-src-dc6576dc1fa3ef0fee4202a75353404e115bc014.zip FreeBSD-src-dc6576dc1fa3ef0fee4202a75353404e115bc014.tar.gz |
If a file operand cannot be processed, go on to process any remaining files
but exit non-zero.
Diffstat (limited to 'usr.bin/m4')
-rw-r--r-- | usr.bin/m4/main.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/usr.bin/m4/main.c b/usr.bin/m4/main.c index 18dccb4..f0fdeca 100644 --- a/usr.bin/m4/main.c +++ b/usr.bin/m4/main.c @@ -181,6 +181,7 @@ main(int argc, char *argv[]) { int c; int n; + int rval; char *p; traceout = stderr; @@ -238,6 +239,7 @@ main(int argc, char *argv[]) argc -= optind; argv += optind; + rval = 0; active = stdout; /* default active output */ bbase[0] = bufbase; if (!argc) { @@ -255,8 +257,11 @@ main(int argc, char *argv[]) p = *argv; if (p[0] == '-' && p[1] == EOS) set_input(infile, stdin, "stdin"); - else if (fopen_trypath(infile, p) == NULL) - err(1, "%s", p); + else if (fopen_trypath(infile, p) == NULL) { + warn("%s", p); + rval = 1; + continue; + } sp = -1; fp = 0; if ((inname[0] = strdup(p)) == NULL) @@ -284,7 +289,7 @@ main(int argc, char *argv[]) (void) fclose(outfile[0]); } - return 0; + exit(rval); } /* |