home *** CD-ROM | disk | FTP | other *** search
- Autzoo.1430
- net.bugs.v7
- utcsrgv!utzoo!henry
- Wed Feb 24 21:37:58 1982
- wc verbosity
- The wc program is not half as useful as it should be, because it runs
- off at the mouth. It insists on printing a filename even if it was
- given only one argument; moreover, it inserts blanks to make its
- output look nice, and insists on inserting them even if only a
- partial output is requested. The result is that a shell program which
- simply wants to count the lines in a file cannot use wc directly; it
- must process the output through a sed filter or the equivalent to strip
- out the babble and get a single clean number.
-
- It is easy to fix wc so that (a) it prints filenames only if there is
- more than one file, and (b) it uses tabs rather than fixed fields for
- output formatting, and suppresses them when they are not needed. The
- resulting program doesn't yield quite as elegant an output format, but
- is much more useful as a TOOL. (And if I want elegant output, I'll
- run it through tbl anyway...). Here are the changes (line numbers may
- be off a bit from the V7 distribution version):
-
- 53,54c55,56
- < if(argc>1) {
- < printf(" %s\n", argv[i]);
- ---
- > if(argc>2) {
- > printf("\t%s\n", argv[i]);
- 64c66
- < printf(" total\n");
- ---
- > printf("\ttotal\n");
- 75c77,79
- < printf("%7ld", linect);
- ---
- > printf("%ld", linect);
- > if (*wd != '\0')
- > putchar('\t');
- 79c83,85
- < printf("%7ld ", wordct);
- ---
- > printf("%ld", wordct);
- > if (*wd != '\0')
- > putchar('\t');
- 83c89,91
- < printf("%7ld", charct);
- ---
- > printf("%ld", charct);
- > if (*wd != '\0')
- > putchar('\t');
-