/* wc line and word count */ char buf[518]; int wordct[2]; int linect[2]; main(argc,argv) char **argv; { int i; register int c; int token; i = 1; do { if(argc<=1) buf[0] = 0; else if(fopen(argv[i],buf)<0) { diag(argv[i]); diag(": cannot open\n"); continue; } linect[0] = linect[1] = 0; wordct[0] = wordct[1] = 0; token = 0; while((c=getc(buf))>=0) { if(' '<c&&c<0177) { if(!token++) { if(++wordct[0]==0) wordct[1]++; } } else { if(c=='\n') { if(++linect[0]==0) linect[1]++; } else if(c!=' '&&c!='\t') continue; token = 0; } } printf("%7s ",locv(linect[1],linect[0])); printf("%7s ",locv(wordct[1],wordct[0])); printf("%s\n", argc<=1?"":argv[i]); close(buf[0]); } while(++i<argc); } diag(s) char *s; { while(*s) write(2,s++,1); }