Jeff King <peff@xxxxxxxx> writes: > On Sat, Jan 05, 2013 at 09:03:16AM -0500, Jeff King wrote: > ... > The downside is that callers of run_command can no longer > differentiate between a signal received directly by the > sub-process, and one propagated. However, no caller > currently cares, and since we already optimize out some > calls to the shell under the hood, that distinction is not > something that should be relied upon by callers. > > Signed-off-by: Jeff King <peff@xxxxxxxx> > --- Very nicely explained. Thanks. > Documentation/technical/api-run-command.txt | 6 ++---- > editor.c | 2 +- > run-command.c | 2 +- > 3 files changed, 4 insertions(+), 6 deletions(-) > > diff --git a/Documentation/technical/api-run-command.txt b/Documentation/technical/api-run-command.txt > index f18b4f4..5d7d7f2 100644 > --- a/Documentation/technical/api-run-command.txt > +++ b/Documentation/technical/api-run-command.txt > @@ -55,10 +55,8 @@ The functions above do the following: > non-zero. > > . If the program terminated due to a signal, then the return value is the > - signal number - 128, ie. it is negative and so indicates an unusual > - condition; a diagnostic is printed. This return value can be passed to > - exit(2), which will report the same code to the parent process that a > - POSIX shell's $? would report for a program that died from the signal. > + signal number + 128, ie. the same value that a POSIX shell's $? would > + report. A diagnostic is printed. > > > `start_async`:: > diff --git a/editor.c b/editor.c > index 065a7ab..27bdecd 100644 > --- a/editor.c > +++ b/editor.c > @@ -51,7 +51,7 @@ int launch_editor(const char *path, struct strbuf *buffer, const char *const *en > sigchain_push(SIGINT, SIG_IGN); > sigchain_push(SIGQUIT, SIG_IGN); > ret = finish_command(&p); > - sig = ret + 128; > + sig = ret - 128; > sigchain_pop(SIGINT); > sigchain_pop(SIGQUIT); > if (sig == SIGINT || sig == SIGQUIT) > diff --git a/run-command.c b/run-command.c > index 757f263..cfb7274 100644 > --- a/run-command.c > +++ b/run-command.c > @@ -249,7 +249,7 @@ static int wait_or_whine(pid_t pid, const char *argv0) > * mimics the exit code that a POSIX shell would report for > * a program that died from this signal. > */ > - code -= 128; > + code += 128; > } else if (WIFEXITED(status)) { > code = WEXITSTATUS(status); > /* -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html