# 2.11BSD#431 - /usr/src/ucb/wc.c

##### Functions

    ipr               X
    main              X
    wcp               X

##### Variables

    charct            X
    copyright         X
    linect            X
    pagect            X
    tcharct           X
    tlinect           X
    tpagect           X
    twordct           X
    wd                X
    wordct            X

       1: /*
       2:  * Copyright (c) 1980 Regents of the University of California.
       3:  * All rights reserved.  The Berkeley software License Agreement
       4:  * specifies the terms and conditions for redistribution.
       5:  */
       6:
       7: #ifndef lint
       8: char copyright[] =
       9: "@(#) Copyright (c) 1980 Regents of the University of California.\n\
      10:  All rights reserved.\n";
      11: #endif not lint
      12:
      13: #ifndef lint
      14: static char sccsid[] = "@(#)wc.c	5.1 (Berkeley) 5/31/85";
      15: #endif not lint
      16:
      17: /* wc line and word count */
      18:
      19: #include <stdio.h>
      20: long    linect, wordct, charct, pagect;
      21: long    tlinect, twordct, tcharct, tpagect;
      22: char    *wd = "lwc";
      23:
      24: main(argc, argv)
      25: char **argv;
      26: {
      27:     int i, token;
      28:     register FILE *fp;
      29:     register int c;
      30:     char *p;
      31:
      32:     while (argc > 1 && *argv[1] == '-') {
      33:         switch (argv[1][1]) {
      34:         case 'l': case 'w': case 'c':
      35:             wd = argv[1]+1;
      36:             break;
      37:         default:
      38:         usage:
      39:             fprintf(stderr, "Usage: wc [-lwc] [files]\n");
      40:             exit(1);
      41:         }
      42:         argc--;
      43:         argv++;
      44:     }
      45:
      46:     i = 1;
      47:     fp = stdin;
      48:     do {
      49:         if(argc>1 && (fp=fopen(argv[i], "r")) == NULL) {
      50:             perror(argv[i]);
      51:             continue;
      52:         }
      53:         linect = 0;
      54:         wordct = 0;
      55:         charct = 0;
      56:         token = 0;
      57:         for(;;) {
      58:             c = getc(fp);
      59:             if (c == EOF)
      60:                 break;
      61:             charct++;
      62:             if(' '<c&&c<0177) {
      63:                 if(!token) {
      64:                     wordct++;
      65:                     token++;
      66:                 }
      67:                 continue;
      68:             }
      69:             if(c=='\n') {
      70:                 linect++;
      71:             }
      72:             else if(c!=' '&&c!='\t')
      73:                 continue;
      74:             token = 0;
      75:         }
      76:         /* print lines, words, chars */
      77:         wcp(wd, charct, wordct, linect);
      78:         if(argc>1) {
      79:             printf(" %s\n", argv[i]);
      80:         } else
      81:             printf("\n");
      82:         fclose(fp);
      83:         tlinect += linect;
      84:         twordct += wordct;
      85:         tcharct += charct;
      86:     } while(++i<argc);
      87:     if(argc > 2) {
      88:         wcp(wd, tcharct, twordct, tlinect);
      89:         printf(" total\n");
      90:     }
      91:     exit(0);
      92: }
      93:
      94: wcp(wd, charct, wordct, linect)
      95: register char *wd;
      96: long charct; long wordct; long linect;
      97: {
      98:     while (*wd) switch (*wd++) {
      99:     case 'l':
     100:         ipr(linect);
     101:         break;
     102:
     103:     case 'w':
     104:         ipr(wordct);
     105:         break;
     106:
     107:     case 'c':
     108:         ipr(charct);
     109:         break;
     110:
     111:     }
     112: }
     113:
     114: ipr(num)
     115: long num;
     116: {
     117:     printf(" %7ld", num);
     118: }

#### Defined functions

ipr defined in line 114; used 3 times

- in line 100-108(3)

main defined in line 24; never used
wcp defined in line 94; used 2 times

- in line 77, 88

#### Defined variables

charct defined in line 20; used 7 times

- in line 55, 61, 77, 85, 94-96(2), 108

copyright defined in line 8; never used
linect defined in line 20; used 7 times

- in line 53, 70, 77, 83, 94-100(3)

pagect defined in line 20; never used
sccsid defined in line 14; never used
tcharct defined in line 21; used 2 times

- in line 85-88(2)

tlinect defined in line 21; used 2 times

- in line 83-88(2)

tpagect defined in line 21; never used
twordct defined in line 21; used 2 times

- in line 84-88(2)

wd defined in line 22; used 7 times

- in line 35, 77, 88, 94-98(4)

wordct defined in line 20; used 7 times

- in line 54, 64, 77, 84, 94-96(2), 104

Last modified: 1987-02-17 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 594 |