]> diplodocus.org Git - nmh/blobdiff - sbr/showfile.c
scansbr.c: Move interface to own file.
[nmh] / sbr / showfile.c
index c7223c21398efd1d9020f3dc6d0f9a77ada9efae..7daadaeda6d84bc1ccd343f49e23a98f4ed75b7e 100644 (file)
@@ -1,21 +1,25 @@
-
-/*
- * showfile.c -- invoke the `lproc' command
+/* showfile.c -- invoke the `lproc' command
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
  * complete copyright information.
  */
 
-#include <h/mh.h>
+#include "h/mh.h"
+#include "showfile.h"
+#include "r1bindex.h"
+#include "context_save.h"
+#include "arglist.h"
+#include "error.h"
 
 
 int
 showfile (char **arg, char *file)
 {
     pid_t pid;
-    int isdraft, vecp;
+    int vecp;
     char **vec, *program;
+    int retval = 1;
 
     context_save();    /* save the context file */
     fflush(stdout);
@@ -28,20 +32,20 @@ showfile (char **arg, char *file)
     if (!strcmp (r1bindex (lproc, '/'), "mhl"))
        lproc = mhlproc;
 
-    switch (pid = vfork()) {
+    switch (pid = fork()) {
     case -1:
        /* fork error */
        advise ("fork", "unable to");
-       return 1;
+       break;
 
     case 0:
        /* child */
        vec = argsplit(lproc, &program, &vecp);
-       isdraft = 1;
+       bool isdraft = true;
        if (arg) {
            while (*arg) {
                if (**arg != '-')
-                   isdraft = 0;
+                   isdraft = false;
                vec[vecp++] = *arg++;
            }
        }
@@ -55,12 +59,12 @@ showfile (char **arg, char *file)
        execvp (program, vec);
        fprintf (stderr, "unable to exec ");
        perror (lproc);
-       _exit (-1);
+       _exit(1);
 
     default:
        /* parent */
-       return (pidwait (pid, -1) & 0377 ? 1 : 0);
+       retval = pidwait (pid, -1) & 0377 ? 1 : 0;
     }
 
-    return 1;  /* NOT REACHED */
+    return retval;
 }