From 68ab18b739222631a9dd7fa1462494c63b14e964 Mon Sep 17 00:00:00 2001 From: Joe Ossanna Date: Wed, 10 Jan 1979 15:02:41 -0500 Subject: [PATCH] Research V7 development Work on file usr/src/cmd/wc.c Synthesized-from: v7 --- usr/src/cmd/wc.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 usr/src/cmd/wc.c diff --git a/usr/src/cmd/wc.c b/usr/src/cmd/wc.c new file mode 100644 index 0000000000..3a20b2712e --- /dev/null +++ b/usr/src/cmd/wc.c @@ -0,0 +1,86 @@ +/* wc line and word count */ + +#include + +main(argc, argv) +char **argv; +{ + int i, token; + register FILE *fp; + long linect, wordct, charct; + long tlinect=0, twordct=0, tcharct=0; + char *wd; + register int c; + + wd = "lwc"; + if(argc > 1 && *argv[1] == '-') { + wd = ++argv[1]; + argc--; + argv++; + } + + i = 1; + fp = stdin; + do { + if(argc>1 && (fp=fopen(argv[i], "r")) == NULL) { + fprintf(stderr, "wc: can't open %s\n", argv[i]); + continue; + } + linect = 0; + wordct = 0; + charct = 0; + token = 0; + for(;;) { + c = getc(fp); + if (c == EOF) + break; + charct++; + if(' '1) { + printf(" %s\n", argv[i]); + } else + printf("\n"); + fclose(fp); + tlinect += linect; + twordct += wordct; + tcharct += charct; + } while(++i 2) { + wcp(wd, tcharct, twordct, tlinect); + printf(" total\n"); + } + exit(0); +} + +wcp(wd, charct, wordct, linect) +register char *wd; +long charct; long wordct; long linect; +{ + while (*wd) switch (*wd++) { + case 'l': + printf("%7ld", linect); + break; + + case 'w': + printf("%7ld ", wordct); + break; + + case 'c': + printf("%7ld", charct); + break; + } +} -- 2.20.1