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 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 } 64