]> diplodocus.org Git - nmh/blobdiff - sbr/push.c
Delete mh_xfree(), changing callers to call free(3) instead.
[nmh] / sbr / push.c
index 39c58acc8a093888734c0653b1626f77c411e295..6708db4700a7b19857f43d00984e53fe11f8859a 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * push.c -- push a fork into the background
+/* push.c -- push a fork into the background
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
@@ -9,21 +7,19 @@
 
 #include <h/mh.h>
 #include <h/signals.h>
 
 #include <h/mh.h>
 #include <h/signals.h>
+#include "m_mktemp.h"
 
 
 void
 push(void)
 {
     pid_t pid;
 
 
 void
 push(void)
 {
     pid_t pid;
-    int i;
-
-    for (i = 0; (pid = fork()) == -1 && i < 5; i++)
-       sleep (5);
 
 
+    pid = fork();
     switch (pid) {
        case -1:
            /* fork error */
     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:
            break;
 
        case 0:
@@ -40,8 +36,12 @@ push(void)
 
            unregister_for_removal(0);
 
 
            unregister_for_removal(0);
 
-           freopen ("/dev/null", "r", stdin);
-           freopen ("/dev/null", "w", stdout);
+           if (freopen ("/dev/null", "r", stdin) == NULL) {
+               advise ("stdin", "freopen");
+            }
+           if (freopen ("/dev/null", "w", stdout) == NULL) {
+               advise ("stdout", "freopen");
+            }
            break;
 
        default:
            break;
 
        default:
@@ -49,4 +49,3 @@ push(void)
            done (0);
     }
 }
            done (0);
     }
 }
-