#-h- wcnt.r 1347 asc 08-may-80 11:26:28 #-h- main 283 asc 08-may-80 11:26:19 #--------------------------------------------------------------------- # include symbol definitions # include symbols #--------------------------------------------------------------------- ## main - calling routine for wcnt # call initr4 # call wcnt # call endr4 # end #-h- wcnts 595 asc 08-may-80 11:26:20 ## wcnt - count (character) words in input file(s) # subroutine wcnt subroutine main character getch character c, buf(MAXLINE) integer int, wc, i integer open, getarg, wcount wc = 0 for (i=1; getarg(i,buf,MAXLINE)!=EOF; i=i+1) { if (buf(1) == QMARK & buf(2) == EOS) call error('usage: wcnt [file ...].') if (buf(1) == MINUS & buf(2) == EOS) int = STDIN else { int = open(buf,READ) if (int == ERR) call cant(buf) } wc = wc + wcount(int) if (int != STDIN) call close(int) } if (i==1) wc = wcount(STDIN) call putdec(wc, 1) call putc(NEWLINE) return end #-h- wcount 322 asc 08-may-80 11:26:20 ## wcount - count (character) words in file -int- integer function wcount(int) character getch character c integer inword wcount = 0 inword = NO while (getch(c,int) != EOF) if (c == BLANK | c == NEWLINE | c == TAB) inword = NO else if (inword == NO) { inword = YES wcount = wcount + 1 } return end