X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/dd259aa56c8f8d816bc7b295cb5ad4ea80b1a8ab..ff30f98e6a1ea1de5ed4ea69cc3552440ee7f26c:/sbr/push.c diff --git a/sbr/push.c b/sbr/push.c index 39c58acc..5417f390 100644 --- a/sbr/push.c +++ b/sbr/push.c @@ -1,29 +1,28 @@ - -/* - * 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 * complete copyright information. */ -#include -#include +#include "h/mh.h" +#include "push.h" +#include "error.h" +#include "h/signals.h" +#include "h/done.h" +#include "m_mktemp.h" 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 */ - advise (NULL, "unable to fork, so can't push..."); + inform("unable to fork, so can't push..."); break; case 0: @@ -40,8 +39,12 @@ push(void) 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: @@ -49,4 +52,3 @@ push(void) done (0); } } -