diff options
author | Tim J. Robbins <tjr@FreeBSD.org> | 2002-05-24 06:17:29 +0000 |
---|---|---|
committer | Tim J. Robbins <tjr@FreeBSD.org> | 2002-05-24 06:17:29 +0000 |
commit | 0968654cfd11886ccac63dc2fb6a8a4511961c8b (patch) | |
tree | 8212e66a3e149a2aebbb79de3b1d1b28e11e3a3e /usr.bin/paste/paste.c | |
parent | 86a492bffaeeeedef262e9c648c1e455679b506e (diff) | |
download | src-0968654cfd11886ccac63dc2fb6a8a4511961c8b.tar.gz src-0968654cfd11886ccac63dc2fb6a8a4511961c8b.zip |
Notes
Diffstat (limited to 'usr.bin/paste/paste.c')
-rw-r--r-- | usr.bin/paste/paste.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/usr.bin/paste/paste.c b/usr.bin/paste/paste.c index ea75288a6ca9..730ae67b92ea 100644 --- a/usr.bin/paste/paste.c +++ b/usr.bin/paste/paste.c @@ -62,8 +62,8 @@ __FBSDID("$FreeBSD$"); char *delim; int delimcnt; -void parallel(char **); -void sequential(char **); +int parallel(char **); +int sequential(char **); int tr(char *); static void usage(void); @@ -72,7 +72,7 @@ char tab[] = "\t"; int main(int argc, char *argv[]) { - int ch, seq; + int ch, rval, seq; seq = 0; while ((ch = getopt(argc, argv, "d:s")) != -1) @@ -98,10 +98,10 @@ main(int argc, char *argv[]) } if (seq) - sequential(argv); + rval = sequential(argv); else - parallel(argv); - exit(0); + rval = parallel(argv); + exit(rval); } typedef struct _list { @@ -111,7 +111,7 @@ typedef struct _list { char *name; } LIST; -void +int parallel(char **argv) { LIST *lp; @@ -175,21 +175,25 @@ parallel(char **argv) if (output) putchar('\n'); } + + return (0); } -void +int sequential(char **argv) { FILE *fp; - int cnt; + int cnt, failed; char ch, *p, *dp; char buf[_POSIX2_LINE_MAX + 1]; + failed = 0; for (; (p = *argv); ++argv) { if (p[0] == '-' && !p[1]) fp = stdin; else if (!(fp = fopen(p, "r"))) { warn("%s", p); + failed = 1; continue; } if (fgets(buf, sizeof(buf), fp)) { @@ -212,6 +216,8 @@ sequential(char **argv) if (fp != stdin) (void)fclose(fp); } + + return (failed != 0); } int |