summaryrefslogtreecommitdiffstats
path: root/usr.bin/cut/cut.c
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2002-05-24 06:03:12 +0000
committertjr <tjr@FreeBSD.org>2002-05-24 06:03:12 +0000
commit631d66bee1b5e3186b84f03f117b52a8d0868509 (patch)
tree09a83b33d2ca60d399a62239536484779cfaee70 /usr.bin/cut/cut.c
parentb0232fe861a5789bb4f3b6b49204886022769385 (diff)
downloadFreeBSD-src-631d66bee1b5e3186b84f03f117b52a8d0868509.zip
FreeBSD-src-631d66bee1b5e3186b84f03f117b52a8d0868509.tar.gz
If processing of one file fails, try to process the remaining files and
exit non-zero instead of immediately exiting. The traditional BSD behaviour is explicitly forbidden by P1003.2.
Diffstat (limited to 'usr.bin/cut/cut.c')
-rw-r--r--usr.bin/cut/cut.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/usr.bin/cut/cut.c b/usr.bin/cut/cut.c
index bb7f51f..93737fc 100644
--- a/usr.bin/cut/cut.c
+++ b/usr.bin/cut/cut.c
@@ -71,7 +71,7 @@ main(argc, argv)
{
FILE *fp;
void (*fcn) (FILE *, const char *) = NULL;
- int ch;
+ int ch, rval;
fcn = NULL;
setlocale (LC_ALL, "");
@@ -115,16 +115,20 @@ main(argc, argv)
} else if (!cflag || dflag || sflag)
usage();
+ rval = 0;
if (*argv)
for (; *argv; ++argv) {
- if (!(fp = fopen(*argv, "r")))
- err(1, "%s", *argv);
+ if (!(fp = fopen(*argv, "r"))) {
+ warn("%s", *argv);
+ rval = 1;
+ continue;
+ }
fcn(fp, *argv);
(void)fclose(fp);
}
else
fcn(stdin, "stdin");
- exit(0);
+ exit(rval);
}
size_t autostart, autostop, maxval;
OpenPOWER on IntegriCloud