Commit | Line | Data |
---|---|---|
06ec93c8 EA |
1 | # include "stdio.h" |
2 | # include "../hdr/macros.h" | |
3 | ||
4 | SCCSID(@(#)what.c 4.1); | |
5 | ||
6 | char pattern[] "@(#)"; | |
7 | char opattern[] "~|^`"; | |
8 | ||
9 | ||
10 | main(argc,argv) | |
11 | int argc; | |
12 | register char **argv; | |
13 | { | |
14 | register int i; | |
15 | register FILE *iop; | |
16 | ||
17 | if (argc < 2) | |
18 | dowhat(stdin); | |
19 | else | |
20 | for (i = 1; i < argc; i++) { | |
21 | if ((iop = fopen(argv[i],"r")) == NULL) | |
22 | fprintf(stderr,"can't open %s (26)\n",argv[i]); | |
23 | else { | |
24 | printf("%s:\n",argv[i]); | |
25 | dowhat(iop); | |
26 | } | |
27 | } | |
28 | } | |
29 | ||
30 | ||
31 | dowhat(iop) | |
32 | register FILE *iop; | |
33 | { | |
34 | register int c; | |
35 | ||
36 | while ((c = getc(iop)) != EOF) { | |
37 | if (c == pattern[0]) | |
38 | trypat(iop, &pattern[1]); | |
39 | else if (c == opattern[0]) | |
40 | trypat(iop, &opattern[1]); | |
41 | } | |
42 | fclose(iop); | |
43 | } | |
44 | ||
45 | ||
46 | trypat(iop,pat) | |
47 | register FILE *iop; | |
48 | register char *pat; | |
49 | { | |
50 | register int c; | |
51 | ||
52 | for (; *pat; pat++) | |
53 | if ((c = getc(iop)) != *pat) | |
54 | break; | |
55 | if (!*pat) { | |
56 | putchar('\t'); | |
57 | while ((c = getc(iop)) != EOF && c && !any(c,"\">\n")) | |
58 | putchar(c); | |
59 | putchar('\n'); | |
60 | } | |
61 | else if (c != EOF) | |
62 | ungetc(c, iop); | |
63 | } |