diff options
author | tjr <tjr@FreeBSD.org> | 2002-05-24 06:00:47 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2002-05-24 06:00:47 +0000 |
commit | fcdda3c7edcabfbacb007613fcad03a4d97b745f (patch) | |
tree | 0571a8f5b8e9120e2f99912d819a0854864d1d30 /usr.bin/expand | |
parent | a47434fc69f21ecf51af8d11313d0df0d54c7b02 (diff) | |
download | FreeBSD-src-fcdda3c7edcabfbacb007613fcad03a4d97b745f.zip FreeBSD-src-fcdda3c7edcabfbacb007613fcad03a4d97b745f.tar.gz |
If processing of one file fails, try to process the remaining files and
exit non-zero instead of immediately exiting (SUSv3).
Diffstat (limited to 'usr.bin/expand')
-rw-r--r-- | usr.bin/expand/expand.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/usr.bin/expand/expand.c b/usr.bin/expand/expand.c index ec2a20d..f83419d 100644 --- a/usr.bin/expand/expand.c +++ b/usr.bin/expand/expand.c @@ -67,6 +67,7 @@ main(argc, argv) { register int c, column; register int n; + int rval; /* handle obsolete syntax */ while (argc > 1 && argv[1][0] == '-' && isdigit(argv[1][1])) { @@ -88,10 +89,15 @@ main(argc, argv) argc -= optind; argv += optind; + rval = 0; do { if (argc > 0) { - if (freopen(argv[0], "r", stdin) == NULL) - errx(1, "%s", argv[0]); + if (freopen(argv[0], "r", stdin) == NULL) { + warn("%s", argv[0]); + rval = 1; + argc--, argv++; + continue; + } argc--, argv++; } column = 0; @@ -144,7 +150,7 @@ main(argc, argv) } } } while (argc > 0); - exit(0); + exit(rval); } static void |