1: # include "refer..c"
   2: corout(in, out, rprog, arg, outlen)
   3:     char *in, *out, *rprog;
   4: {
   5: # define move(x, y) close(y); dup(x); close(x);
   6: int pipev[2], fr1, fr2, fw1, fw2, n;
   7: 
   8: if (strcmp (rprog, "hunt") ==0)
   9:     return(callhunt(in, out, arg, outlen));
  10: if (strcmp (rprog, "deliv")==0)
  11:     return(dodeliv(in, out, arg, outlen));
  12: pipe (pipev); fr1= pipev[0]; fw1 = pipev[1];
  13: pipe (pipev); fr2= pipev[0]; fw2 = pipev[1];
  14: if (fork()==0)
  15:     {
  16:     close (fw1); close (fr2);
  17:     move (fr1, 0);
  18:     move (fw2, 1);
  19:     if (rprog[0]!= '/')
  20:         chdir("/usr/lib/refer");
  21:     execl(rprog, "deliv", arg, 0);
  22:     err ("Can't run %s", rprog);
  23:     }
  24: close(fw2); close(fr1);
  25: write (fw1, in , strlen(in));
  26: close(fw1);
  27: wait(0);
  28: n = read (fr2, out, outlen);
  29: out[n]=0;
  30: close(fr2);
  31: }
  32: callhunt(in, out, arg, outlen)
  33:     char *in, *out, *arg;
  34: {
  35: # define ALEN 50
  36: char *argv[20], abuff[ALEN];
  37: extern int typeindex;
  38: int argc;
  39: extern char one[];
  40: extern int onelen;
  41: argv[0] = "hunt";
  42: argv[1] = "-i";
  43: argv[2] = in;
  44: argv[3] = "-t";
  45: argv[4] = out;
  46: argv[5] = outlen;
  47: argv[6] = "-T";
  48: argv[7] = "-F1";
  49: argv[8] = "-o";
  50: argv[9] = one;
  51: argv[10] = onelen;
  52: argv[11] = abuff; strcpy (abuff,arg);
  53: if (strlen(abuff) > ALEN)
  54:     err("abuff not big enough %d", strlen(abuff));
  55: argc = 6;
  56: huntmain (argc,argv);
  57: return(0);
  58: }
  59: dodeliv(in, out, arg, outlen)
  60:     char *in, *out, *arg;
  61: {
  62: # if D1
  63: fprintf(stderr, "in dodeliv, arg /%s/\n", arg?arg:"");
  64: # endif
  65: if (arg && arg[0])
  66:     chdir(arg);
  67: findline(in, out, outlen, 0L);
  68: restodir();
  69: }

Defined functions

callhunt defined in line 32; used 1 times
  • in line 9
corout defined in line 2; never used
dodeliv defined in line 59; used 1 times
  • in line 11

Defined macros

ALEN defined in line 35; used 2 times
move defined in line 5; used 2 times
Last modified: 1981-07-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 787
Valid CSS Valid XHTML 1.0 Strict