1 # include "stdio.h"
2 # include "../hdr/macros.h"
3
4 SCCSID(@(#)what.c 4.2);
5
6 char *pattern = "@(#)";
7 char *opattern = "~|^`";
8
9
main(argc,argv)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
dowhat(iop)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
trypat(iop,pat)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 }
64