home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / compiler / small_c / cb / sources / fnd.c < prev    next >
Encoding:
C/C++ Source or Header  |  1985-08-11  |  959 b   |  41 lines

  1. /*
  2. ** fnd.c -- find patterns in text file
  3. **
  4. ** Copyright 1982 J. E. Hendrix.  All rights reserved.
  5. */
  6. #include <stdio.h>
  7. #include "tools.h"
  8. #define NOCCARGC
  9. #define MAXARG 49
  10. #define MAXLIN1 (MAXLINE+1)
  11. char arg[MAXARG], lin[MAXLIN1], pat[MAXPAT];
  12. int err, argi;
  13. main(argc, argv) int argc, *argv; {
  14.   auxbuf(stdin, 4096);
  15.   err=NO;
  16.   if((getarg(1, arg, MAXARG, argc, argv)==EOF)|(arg[0]=='-'))
  17.     error("usage: FND [~]pattern\n");
  18.   if(arg[0]==NOT) argi=1; else argi=0;
  19.   if(getpat(arg+argi, pat)==ERR) error("pattern too long\n");
  20.   while(fgets(lin, MAXLIN1, stdin)!=NULL) {
  21.     poll(YES);
  22.     trim(lin);
  23.     if(match(lin, pat)) {
  24.       if(argi==0) lout(lin, stdout);
  25.       }
  26.     else if(argi==1) lout(lin, stdout);
  27.     }
  28.   fclose(stdout);
  29.   }
  30.  
  31. getpat(arg, pat) char arg[], pat[]; {
  32.   return(makpat(arg, 0, NULL, pat));
  33.   }
  34.  
  35. #include "pat.c"
  36. #include "error.c"
  37. #include "index.c"
  38. #include "out.c"
  39. #include "trim.c"
  40.  
  41.