]> diplodocus.org Git - nmh/blob - docs/historical/mh-6.8.5/sbr/showfile.c
Always check that mktemp()/mktemp2() succeeds before trying to
[nmh] / 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 }