[PATCH 1/4] teach wait_or_whine a "quiet" mode
From: Jeff King <hidden>
Date: 2016-06-15 22:50:57
Subsystem:
the rest · Maintainer:
Linus Torvalds
The wait_or_whine function will complain to stderr in a few
cases:
1. We fail to actually waitpid() correctly.
2. The child died of a signal.
3. The child returned exit code 127, indicating a missing
command to exec after forking.
We already have a silent_exec_failure flag to silence (3).
Let's convert that into a "quiet" flag to also silence (2).
This shouldn't result in signal failure being silent for
existing users of silent_exec_failure, since they already
will need to be checking the return code and complaining for
the case of a non-zero exit code.
For (1), it probably makes sense to always complain about a
failure to correctly wait, so let's not quiet that.
Signed-off-by: Jeff King <redacted>
---
run-command.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/run-command.c b/run-command.c
index 0d95340..0d5626a 100644
--- a/run-command.c
+++ b/run-command.c@@ -240,7 +240,7 @@ fail_pipe: return 0; } -static int wait_or_whine(pid_t pid, const char *argv0, int silent_exec_failure) +static int wait_or_whine(pid_t pid, const char *argv0, int quiet) { int status, code = -1; pid_t waiting;
@@ -256,7 +256,8 @@ static int wait_or_whine(pid_t pid, const char *argv0, int silent_exec_failure) error("waitpid is confused (%s)", argv0); } else if (WIFSIGNALED(status)) { code = WTERMSIG(status); - error("%s died of signal %d", argv0, code); + if (!quiet) + error("%s died of signal %d", argv0, code); /* * This return value is chosen so that code & 0xff * mimics the exit code that a POSIX shell would report for
@@ -271,7 +272,7 @@ static int wait_or_whine(pid_t pid, const char *argv0, int silent_exec_failure) if (code == 127) { code = -1; failed_errno = ENOENT; - if (!silent_exec_failure) + if (!quiet) error("cannot run %s: %s", argv0, strerror(ENOENT)); }
--
1.7.4.13.g8566c