diff --git a/README b/README index ad9586f..5c9a5df 100644 --- a/README +++ b/README @@ -86,7 +86,7 @@ The following tools are implemented ('*' == finished, '#' == UTF-8 support, =*| unlink yes none =*| uudecode yes none =*| uuencode yes none -#* wc yes none +#*| wc yes none = xargs no -I, -L, -p, -s, -t, -x =*| yes non-posix none diff --git a/wc.1 b/wc.1 index c18b210..7251382 100644 --- a/wc.1 +++ b/wc.1 @@ -1,4 +1,4 @@ -.Dd February 1, 2015 +.Dd March 18, 2015 .Dt WC 1 .Os sbase .Sh NAME @@ -11,9 +11,9 @@ .Op Ar file ... .Sh DESCRIPTION .Nm -prints the number of lines, words and bytes in each -.Ar file , -unless set differently with flags. +writes the number of lines, words and bytes in each +.Ar file +to stdout. If no .Ar file is given diff --git a/wc.c b/wc.c index f3064a9..0ff3b8d 100644 --- a/wc.c +++ b/wc.c @@ -61,7 +61,7 @@ int main(int argc, char *argv[]) { FILE *fp; - int i; + int many; int ret = 0; ARGBEGIN { @@ -81,20 +81,21 @@ main(int argc, char *argv[]) usage(); } ARGEND; - if (argc == 0) { + if (!argc) { wc(stdin, NULL); } else { - for (i = 0; i < argc; i++) { - if (!(fp = fopen(argv[i], "r"))) { - weprintf("fopen %s:", argv[i]); + for (many = (argc > 1); *argv; argc--, argv++) { + if (!(fp = fopen(*argv, "r"))) { + weprintf("fopen %s:", *argv); ret = 1; continue; } - wc(fp, argv[i]); + wc(fp, *argv); fclose(fp); } - if (argc > 1) + if (many) output("total", tc, tl, tw); } + return ret; }