Added all of the MH sources, including RCS files, in
[mmh] / docs / historical / mh-6.8.5 / sbr / showfile.c
1 /* showfile.c - invoke lproc */
2
3 #include "../h/mh.h"
4 #include <stdio.h>
5
6
7 showfile (arg, file)
8 register char **arg,
9                *file;
10 {
11     int     isdraft,
12             pid;
13     register int    vecp;
14     char   *vec[MAXARGS];
15
16     m_update ();
17     (void) fflush (stdout);
18
19     if (strcmp (r1bindex (lproc, '/'), "mhl") == 0)
20         lproc = mhlproc;
21
22     switch (pid = vfork ()) {
23         case NOTOK: 
24             advise ("fork", "unable to");
25             return 1;
26
27         case OK: 
28             vecp = 0;
29             vec[vecp++] = r1bindex (lproc, '/');
30             isdraft = 1;
31             if (arg)
32                 while (*arg) {
33                     if (**arg != '-')
34                         isdraft = 0;
35                     vec[vecp++] = *arg++;
36                 }
37             if (isdraft) {
38                 if (strcmp (vec[0], "show") == 0)
39                     vec[vecp++] = "-file";
40                 vec[vecp++] = file;
41             }
42             vec[vecp] = NULL;
43
44             execvp (lproc, vec);
45             fprintf (stderr, "unable to exec ");
46             perror (lproc);
47             _exit (-1);
48
49         default: 
50             return (pidwait (pid, NOTOK) & 0377 ? 1 : 0);
51     }
52 }