From: Bruno Haible Date: Sun, 1 Mar 2009 17:12:43 +0000 (+0100) Subject: Omit an error message that the caller can do better. X-Git-Tag: v0.1~6238 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=f3597013e3eb1aa59d16aa6c453fd806859b9898;p=gnulib.git Omit an error message that the caller can do better. --- diff --git a/ChangeLog b/ChangeLog index 55ece94b2..79726a80a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,12 @@ 2009-03-01 Eric Blake + Bruno Haible + + * lib/wait-process.h (wait_subprocess): Describe effect of termsigp on + error messages. + * lib/wait-process.c (wait_subprocess): Omit error message about + deadly signal sent to the child of termsigp != NULL. + +2009-03-01 Eric Blake * lib/wait-process.c (wait_subprocess): Remove unnecessary cast. diff --git a/lib/wait-process.c b/lib/wait-process.c index 45bb4574f..cf55ec19e 100644 --- a/lib/wait-process.c +++ b/lib/wait-process.c @@ -269,7 +269,7 @@ wait_subprocess (pid_t child, const char *progname, if (info.si_status == SIGPIPE && ignore_sigpipe) return 0; # endif - if (exit_on_error || !null_stderr) + if (exit_on_error || (!null_stderr && termsigp == NULL)) error (exit_on_error ? EXIT_FAILURE : 0, 0, _("%s subprocess got fatal signal %d"), progname, info.si_status); @@ -341,7 +341,7 @@ wait_subprocess (pid_t child, const char *progname, if (WTERMSIG (status) == SIGPIPE && ignore_sigpipe) return 0; # endif - if (exit_on_error || !null_stderr) + if (exit_on_error || (!null_stderr && termsigp == NULL)) error (exit_on_error ? EXIT_FAILURE : 0, 0, _("%s subprocess got fatal signal %d"), progname, (int) WTERMSIG (status)); diff --git a/lib/wait-process.h b/lib/wait-process.h index b064c2819..cb24fd71d 100644 --- a/lib/wait-process.h +++ b/lib/wait-process.h @@ -48,9 +48,10 @@ extern "C" { slave process. - If exit_on_error is true, any error will cause the main process to exit with an error status. - - If termsigp is not NULL, *termsig will be set to the signal that + - If termsigp is not NULL: *termsig will be set to the signal that terminated the subprocess (if supported by the platform: not on native - Windows platforms), otherwise 0. + Windows platforms), otherwise 0, and the error message about the signal + that terminated the subprocess will be omitted. Prerequisites: The signal handler for SIGCHLD should not be set to SIG_IGN, otherwise this function will not work. */ extern int wait_subprocess (pid_t child, const char *progname,