1: # include "signal.h"
   2: # include "refer..c"
   3: main(argc,argv)
   4:     char *argv[];
   5: {
   6: char line[LLINE], *s;
   7: int nodeflt =0;
   8: 
   9: signals();
  10: while (argv[1][0] == '-')
  11:     {
  12:     switch(argv[1][1])
  13:         {
  14:         case 'e':
  15:             endpush++; break;
  16:         case 'l':
  17:             labels++;
  18:             s = argv[1]+2;
  19:             nmlen = atoi(s);
  20:             while (*s)
  21:                 if (*s++ == ',')
  22:                     break;
  23:             dtlen = atoi(s);
  24:             break;
  25:         case 'k':
  26:             keywant = (argv[1][2] ? argv[1][2] : 'L');
  27:             labels++;
  28:             break;
  29:         case 's':
  30:             sort++;
  31:             if (argv[1][2])
  32:                 keystr= argv[1]+2;
  33:             break;
  34:         case 'p':
  35:             argc--; argv++;
  36:             *search++ = argv[1];
  37:             if (search-data>NSERCH)
  38:                 err("too many -p options (%d)", NSERCH);
  39:             break;
  40:         case 'n':
  41:             nodeflt=1;
  42:             break;
  43:         case 'b':
  44:             bare = (argv[1][2] == '1') ? 1 : 2;
  45:             break;
  46:         case 'c':
  47:             smallcaps = argv[1]+2;
  48:             break;
  49:         case 'a':
  50:             authrev = atoi (argv[1]+2);
  51:             if (authrev<=0)
  52:                 authrev = 1000;
  53:             break;
  54:         }
  55:     argc--; argv++;
  56:     }
  57: if (nodeflt==0)
  58:     *search++ = "/usr/dict/papers/Ind";
  59: 
  60: if (sort)
  61:     endpush=1;
  62: if (endpush)
  63:     {
  64:     sprintf(tfile, "/tmp/rj%da", getpid());
  65:     fo = fopen(tfile, "w");
  66:     if (fo==NULL)
  67:         {
  68:         fo = ftemp;
  69:         fprintf(stderr,"Can't open scratch file");
  70:         }
  71:     sep = 002; /* separate records without confusing sort..*/
  72:     }
  73: 
  74: 
  75: if (sort && !labels)
  76:     {
  77:     sprintf(ofile,"/tmp/rj%db", getpid());
  78:     ftemp = fopen(ofile, "w");
  79:     if (ftemp==NULL)
  80:         {
  81:         fprintf(stderr, "Can't open scratch file\n");
  82:         exit(1);
  83:         }
  84:     }
  85: 
  86: do
  87:     {
  88:     if (argc>1)
  89:         {
  90:         fclose(in);
  91:         Iline=0;
  92:         in = fopen(Ifile=argv[1], "r");
  93:         argc--; argv++;
  94:         if (in==NULL)
  95:             {
  96:             err("Can't read %s", Ifile);
  97:             continue;
  98:             }
  99:         }
 100:     while (input(line))
 101:         {
 102:         Iline++;
 103: # ifdef D1
 104:         fprintf(stderr, "line %.20s\n",line);
 105: # endif
 106:         if (!prefix(".[", line))
 107:             output(line);
 108:         else
 109:             doref(line);
 110: # if D1
 111:         fprintf(stderr, "past output/doref\n");
 112: # endif
 113:         }
 114:     }
 115:     while (argc>1);
 116: if (endpush && fo!=NULL)
 117:     dumpold();
 118: output("", ftemp);
 119: if (sort && !labels)
 120:     recopy(ofile);
 121: clfgrep();
 122: cleanup();
 123: exit(0);
 124: }
 125: 
 126: extern int intr();
 127: signals()
 128: {
 129:     int oldint;
 130: oldint = signal(SIGINT, &intr);
 131: if (oldint==1)
 132:     signal (SIGINT, 1);
 133: signal (SIGHUP, &intr);
 134: signal (SIGPIPE, &intr);
 135: signal (SIGTERM, &intr);
 136: }
 137: 
 138: intr()
 139: {
 140:     int oldsig;
 141: signal(SIGINT, 1);
 142: cleanup();
 143: exit(1);
 144: }
 145: cleanup()
 146: {
 147: if (tfile[0]) unlink(tfile);
 148: if (gfile[0]) unlink(gfile);
 149: if (ofile[0]) unlink(ofile);
 150: if (hidenam[0]) unlink(hidenam);
 151: }

Defined functions

cleanup defined in line 145; used 2 times
intr defined in line 138; used 5 times
main defined in line 3; never used
signals defined in line 127; used 1 times
  • in line 9
Last modified: 1981-07-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1003
Valid CSS Valid XHTML 1.0 Strict