]> diplodocus.org Git - nmh/blobdiff - sbr/push.c
Improve installation documentation
[nmh] / sbr / push.c
index 05c3942fecd82e0679f1a001c017957e4f5a3fb4..d77e37548d939f3ff276cf060bf09f790e169e79 100644 (file)
@@ -1,13 +1,13 @@
-
-/*
- * push.c -- push a fork into the background
+/* push.c -- push a fork into the background
  *
- * $Id$
+ * 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/signals.h>
-#include <signal.h>
+#include "m_mktemp.h"
 
 
 void
@@ -22,7 +22,7 @@ push(void)
     switch (pid) {
        case -1:
            /* fork error */
-           advise (NULL, "unable to fork, so can't push...");
+           inform("unable to fork, so can't push...");
            break;
 
        case 0:
@@ -36,8 +36,15 @@ push(void)
            SIGNAL (SIGTTIN, SIG_IGN);
            SIGNAL (SIGTTOU, SIG_IGN);
 #endif
-           freopen ("/dev/null", "r", stdin);
-           freopen ("/dev/null", "w", stdout);
+
+           unregister_for_removal(0);
+
+           if (freopen ("/dev/null", "r", stdin) == NULL) {
+               advise ("stdin", "freopen");
+            }
+           if (freopen ("/dev/null", "w", stdout) == NULL) {
+               advise ("stdout", "freopen");
+            }
            break;
 
        default:
@@ -45,4 +52,3 @@ push(void)
            done (0);
     }
 }
-