BSD 4_2 release
[unix-history] / usr / src / usr.bin / refer / glue3.c
index d98a334..88eb680 100644 (file)
@@ -1,69 +1,84 @@
-# include "refer..c"
+#ifndef lint
+static char *sccsid = "@(#)glue3.c     4.1 (Berkeley) 5/6/83";
+#endif
+
+#include "refer..c"
+#define move(x, y) close(y); dup(x); close(x);
+
 corout(in, out, rprog, arg, outlen)
 corout(in, out, rprog, arg, outlen)
-       char *in, *out, *rprog;
+char *in, *out, *rprog;
 {
 {
-# define move(x, y) close(y); dup(x); close(x);
-int pipev[2], fr1, fr2, fw1, fw2, n;
+       int pipev[2], fr1, fr2, fw1, fw2, n;
 
 
-if (strcmp (rprog, "hunt") ==0)
-       return(callhunt(in, out, arg, outlen));
-if (strcmp (rprog, "deliv")==0)
-       return(dodeliv(in, out, arg, outlen));
-pipe (pipev); fr1= pipev[0]; fw1 = pipev[1];
-pipe (pipev); fr2= pipev[0]; fw2 = pipev[1];
-if (fork()==0)
+       if (strcmp (rprog, "hunt") ==0)
+               return(callhunt(in, out, arg, outlen));
+       if (strcmp (rprog, "deliv")==0)
+               return(dodeliv(in, out, arg, outlen));
+       pipe (pipev); 
+       fr1= pipev[0]; 
+       fw1 = pipev[1];
+       pipe (pipev); 
+       fr2= pipev[0]; 
+       fw2 = pipev[1];
+       if (fork()==0)
        {
        {
-       close (fw1); close (fr2);
-       move (fr1, 0);
-       move (fw2, 1);
-       if (rprog[0]!= '/')
-               chdir("/usr/lib/refer");
-       execl(rprog, "deliv", arg, 0);
-       err ("Can't run %s", rprog);
+               close (fw1); 
+               close (fr2);
+               move (fr1, 0);
+               move (fw2, 1);
+               if (rprog[0]!= '/')
+                       chdir("/usr/lib/refer");
+               execl(rprog, "deliv", arg, 0);
+               err ("Can't run %s", rprog);
        }
        }
-close(fw2); close(fr1);
-write (fw1, in , strlen(in));
-close(fw1);
-wait(0);
-n = read (fr2, out, outlen);
-out[n]=0;
-close(fr2);
+       close(fw2); 
+       close(fr1);
+       write (fw1, in , strlen(in));
+       close(fw1);
+       wait(0);
+       n = read (fr2, out, outlen);
+       out[n]=0;
+       close(fr2);
 }
 }
+
+# define ALEN 50
+
 callhunt(in, out, arg, outlen)
 callhunt(in, out, arg, outlen)
-       char *in, *out, *arg;
+char *in, *out, *arg;
 {
 {
-# define ALEN 50
-char *argv[20], abuff[ALEN];
-extern int typeindex;
-int argc;
-extern char one[];
-extern int onelen;
-argv[0] = "hunt";
-argv[1] = "-i";
-argv[2] = in;
-argv[3] = "-t";
-argv[4] = out;
-argv[5] = (char *)outlen;
-argv[6] = "-T";
-argv[7] = "-F1";
-argv[8] = "-o";
-argv[9] = one;
-argv[10] = (char *)onelen;
-argv[11] = abuff; strcpy (abuff,arg);
-if (strlen(abuff) > ALEN)
-       err("abuff not big enough %d", strlen(abuff));
-argc = 6;
-huntmain (argc,argv);
-return(0);
+       char *argv[20], abuff[ALEN];
+       extern int typeindex;
+       int argc;
+       extern char one[];
+       extern int onelen;
+       argv[0] = "hunt";
+       argv[1] = "-i";
+       argv[2] = in;
+       argv[3] = "-t";
+       argv[4] = out;
+       argv[5] = outlen;
+       argv[6] = "-T";
+       argv[7] = "-F1";
+       argv[8] = "-o";
+       argv[9] = one;
+       argv[10] = onelen;
+       argv[11] = abuff; 
+       strcpy (abuff,arg);
+       if (strlen(abuff) > ALEN)
+               err("abuff not big enough %d", strlen(abuff));
+       argc = 6;
+       huntmain (argc,argv);
+       return(0);
 }
 }
+
 dodeliv(in, out, arg, outlen)
 dodeliv(in, out, arg, outlen)
-       char *in, *out, *arg;
+char *in, *out, *arg;
 {
 # if D1
 {
 # if D1
-fprintf(stderr, "in dodeliv, arg /%s/\n", arg?arg:"");
+       fprintf(stderr, "in dodeliv, arg /%s/\n", arg?arg:"");
 # endif
 # endif
-if (arg && arg[0])
-       chdir(arg);
-findline(in, out, outlen, 0L);
-restodir();
+       if (arg && arg[0])
+               chdir(arg);
+       findline(in, out, outlen, 0L);
+       restodir();
 }
 }