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