+2009-03-01 Eric Blake <ebb9@byu.net>
+ Bruno Haible <bruno@clisp.org>
+
+ * 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 <ebb9@byu.net>
* lib/wait-process.c (wait_subprocess): Remove unnecessary cast.
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);
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));
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,