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: }