12156Seric # include "stdio.h"
22156Seric # include "../hdr/macros.h"
32156Seric
4*33390Sbostic SCCSID(@(#)what.c 4.2);
52156Seric
6*33390Sbostic char *pattern = "@(#)";
7*33390Sbostic char *opattern = "~|^`";
82156Seric
92156Seric
main(argc,argv)102156Seric main(argc,argv)
112156Seric int argc;
122156Seric register char **argv;
132156Seric {
142156Seric register int i;
152156Seric register FILE *iop;
162156Seric
172156Seric if (argc < 2)
182156Seric dowhat(stdin);
192156Seric else
202156Seric for (i = 1; i < argc; i++) {
212156Seric if ((iop = fopen(argv[i],"r")) == NULL)
222156Seric fprintf(stderr,"can't open %s (26)\n",argv[i]);
232156Seric else {
242156Seric printf("%s:\n",argv[i]);
252156Seric dowhat(iop);
262156Seric }
272156Seric }
282156Seric }
292156Seric
302156Seric
dowhat(iop)312156Seric dowhat(iop)
322156Seric register FILE *iop;
332156Seric {
342156Seric register int c;
352156Seric
362156Seric while ((c = getc(iop)) != EOF) {
372156Seric if (c == pattern[0])
382156Seric trypat(iop, &pattern[1]);
392156Seric else if (c == opattern[0])
402156Seric trypat(iop, &opattern[1]);
412156Seric }
422156Seric fclose(iop);
432156Seric }
442156Seric
452156Seric
trypat(iop,pat)462156Seric trypat(iop,pat)
472156Seric register FILE *iop;
482156Seric register char *pat;
492156Seric {
502156Seric register int c;
512156Seric
522156Seric for (; *pat; pat++)
532156Seric if ((c = getc(iop)) != *pat)
542156Seric break;
552156Seric if (!*pat) {
562156Seric putchar('\t');
572156Seric while ((c = getc(iop)) != EOF && c && !any(c,"\">\n"))
582156Seric putchar(c);
592156Seric putchar('\n');
602156Seric }
612156Seric else if (c != EOF)
622156Seric ungetc(c, iop);
632156Seric }
64