date and time created 82/05/19 17:17:01 by rrh
[unix-history] / usr / src / local / sccscmds / sccscmds.ok / cmd / what.c
CommitLineData
06ec93c8
EA
1# include "stdio.h"
2# include "../hdr/macros.h"
3
4SCCSID(@(#)what.c 4.1);
5
6char pattern[] "@(#)";
7char opattern[] "~|^`";
8
9
10main(argc,argv)
11int argc;
12register 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
31dowhat(iop)
32register 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
46trypat(iop,pat)
47register FILE *iop;
48register 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}