1: # include "what..c"
   2: struct filans files[NFILES];
   3: char fnames[NAMES];
   4: int relfeed 0;
   5: char *rb[NFEED];
   6: char rbb[200], *rbp rbb;;
   7: 
   8: main(argc,argv)
   9:     char *argv[];
  10: {
  11:     char *s, *t, *xargv[50], *wd[50];
  12:     struct filans *af;
  13:     int xargc 0, nw, nf, i;
  14: while (argc>1 && argv[1][0]=='-')
  15:     {
  16:     switch(argv[1][1])
  17:         {
  18:         case 'r': relfeed=1; break;
  19:         }
  20:     argc--; argv++;
  21:     }
  22: if (argc<=1)
  23:     {
  24:     printf("No query.\n");
  25:     return(0);
  26:     }
  27: nf = doclook(argc,argv,0);
  28: printf("   %d files\n",nf);
  29: if (relfeed && nf>NFEED)
  30:     {
  31:     wrdoc(NFEED, argc, argv, 1);
  32:     nw = freqwd (rb, wd, argc);
  33:     for(i=0; rb[i]; i++)
  34:         unlink(rb[i]);
  35:     }
  36: for(i=0; i<argc; i++)
  37:     xargv[xargc++]=argv[i];
  38: if (relfeed)
  39:     {
  40:     printf("Adding: ");
  41:     for(i=0; i<nw; i++)
  42:         if (!lfind(wd[i], xargc, xargv))
  43:             printf("%s ", xargv[xargc++]=wd[i]);
  44:     printf("\n");
  45:     nf = doclook(xargc, xargv, relfeed? xargc/4 : 0);
  46:     printf("  %d files\n",nf);
  47:     }
  48: shell (nf, comp, exch);
  49: wrdoc(nf, xargc, xargv, 0);
  50: return(0);
  51: }
  52: exch( i1, i2 )
  53: {
  54:     struct filans *p1, *p2;
  55:     struct filans xt;
  56:     p1=files+i1;
  57:     p2=files+i2;
  58:     xt = *p1;
  59:     *p1 = *p2;
  60:     *p2 = xt;
  61: }
  62: comp(i1, i2)
  63: {
  64:     struct filans *p1, *p2;
  65:     p1 = files+i1;
  66:     p2= files+i2;
  67:     if (p1->fdate != p2->fdate)
  68:         return(p2->fdate > p1->fdate);
  69:     return(p2->uid >= p1->uid);
  70: }
  71: wrdoc ( np, argc, argv, relfeed )
  72: {
  73:     struct filans *af;
  74:     char *s, *t, buf[200];
  75:     int eval, k, pid;
  76:     FILE *rf NULL;
  77:     FILE *ans NULL;
  78:     pid=getpid();
  79:     for(af=files; af<files+np; af++)
  80:         {
  81:         t = ctime(&af->fdate);
  82:         getpw(af->uid, s=buf);
  83:         while (*s && *s!=':') s++;
  84:         *s=0;
  85:         printf("%s (%.20s)  %s, %ld bytes\n",af->nm,t+4,buf,af->size);
  86:         if (relfeed)
  87:             {
  88:             k=af-files;
  89:             _assert (k<NFEED);
  90:             sprintf(rb[k]=rbp, "rf%d.%d",pid, k);
  91:             rf = fopen(rb[k], "w");
  92:             while (*rbp++);
  93:             }
  94:         describe(af->nm, argc,argv, rf);
  95:         if (relfeed)
  96:             {
  97:             printf("You like that one?");
  98:             fflush(stdout);
  99:             fgets(buf, 100, stdin);
 100:             switch(buf[0])
 101:                 {
 102:                 case 'y': case 'Y': eval=1; break;
 103:                 case 'n': case 'N': eval = -1; break;
 104:                 default: eval=0; break;
 105:                 }
 106:             fclose(rf);
 107:             if (eval<=0)
 108:                 {
 109:                 unlink(rb[k]);
 110:                 rb[k][0]=0;
 111:                 }
 112:             }
 113:         }
 114:     if (relfeed) rb[np]=0;
 115: }
 116: lfind( wl, n, wds)
 117:     char *wl, *wds[];
 118: {
 119:     int i;
 120: for(i=0; i<n; i++)
 121:     if (str6cmp(wl, wds[i])==0)
 122:         return(1);
 123: return(0);
 124: }
 125: str6cmp(s, t)
 126:     char *s, *t;
 127: {
 128: int i 0, c;
 129: while ( (c= *s++ ) == ( *t++))
 130:     if (c==0 || ++i ==6)
 131:         return(0);
 132: return(1);
 133: }

Defined functions

comp defined in line 62; used 2 times
exch defined in line 52; used 2 times
lfind defined in line 116; used 1 times
  • in line 42
main defined in line 8; never used
str6cmp defined in line 125; used 1 times
wrdoc defined in line 71; used 2 times

Defined variables

files defined in line 2; used 17 times
fnames defined in line 3; used 2 times
rb defined in line 5; used 8 times
rbb defined in line 6; never used
rbp defined in line 6; used 2 times
relfeed defined in line 4; used 8 times
Last modified: 1981-07-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 799
Valid CSS Valid XHTML 1.0 Strict