1*2156Seric # include "stdio.h" 2*2156Seric # include "../hdr/macros.h" 3*2156Seric 4*2156Seric SCCSID(@(#)what.c 4.1); 5*2156Seric 6*2156Seric char pattern[] "@(#)"; 7*2156Seric char opattern[] "~|^`"; 8*2156Seric 9*2156Seric 10*2156Seric main(argc,argv) 11*2156Seric int argc; 12*2156Seric register char **argv; 13*2156Seric { 14*2156Seric register int i; 15*2156Seric register FILE *iop; 16*2156Seric 17*2156Seric if (argc < 2) 18*2156Seric dowhat(stdin); 19*2156Seric else 20*2156Seric for (i = 1; i < argc; i++) { 21*2156Seric if ((iop = fopen(argv[i],"r")) == NULL) 22*2156Seric fprintf(stderr,"can't open %s (26)\n",argv[i]); 23*2156Seric else { 24*2156Seric printf("%s:\n",argv[i]); 25*2156Seric dowhat(iop); 26*2156Seric } 27*2156Seric } 28*2156Seric } 29*2156Seric 30*2156Seric 31*2156Seric dowhat(iop) 32*2156Seric register FILE *iop; 33*2156Seric { 34*2156Seric register int c; 35*2156Seric 36*2156Seric while ((c = getc(iop)) != EOF) { 37*2156Seric if (c == pattern[0]) 38*2156Seric trypat(iop, &pattern[1]); 39*2156Seric else if (c == opattern[0]) 40*2156Seric trypat(iop, &opattern[1]); 41*2156Seric } 42*2156Seric fclose(iop); 43*2156Seric } 44*2156Seric 45*2156Seric 46*2156Seric trypat(iop,pat) 47*2156Seric register FILE *iop; 48*2156Seric register char *pat; 49*2156Seric { 50*2156Seric register int c; 51*2156Seric 52*2156Seric for (; *pat; pat++) 53*2156Seric if ((c = getc(iop)) != *pat) 54*2156Seric break; 55*2156Seric if (!*pat) { 56*2156Seric putchar('\t'); 57*2156Seric while ((c = getc(iop)) != EOF && c && !any(c,"\">\n")) 58*2156Seric putchar(c); 59*2156Seric putchar('\n'); 60*2156Seric } 61*2156Seric else if (c != EOF) 62*2156Seric ungetc(c, iop); 63*2156Seric } 64