summaryrefslogtreecommitdiff
path: root/git.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-08-10 22:14:57 -0700
committerJunio C Hamano <gitster@pobox.com>2009-08-10 22:14:57 -0700
commit08ac69685a5b6bea45df1fd62ea1d9b7c0258d0b (patch)
tree3f3ccdcda78c82ed450666d22a0b463cf3eac6b3 /git.c
parent0c4f21e452dca5a705c36ca7e363c1a3b3c2a5b8 (diff)
parent0b91322311b649a4b5f9581fec2dca9e1c2da716 (diff)
downloadgit-08ac69685a5b6bea45df1fd62ea1d9b7c0258d0b.tar.gz
Merge branch 'js/run-command-updates'
* js/run-command-updates: api-run-command.txt: describe error behavior of run_command functions run-command.c: squelch a "use before assignment" warning receive-pack: remove unnecessary run_status report run_command: report failure to execute the program, but optionally don't run_command: encode deadly signal number in the return value run_command: report system call errors instead of returning error codes run_command: return exit code as positive value MinGW: simplify waitpid() emulation macros
Diffstat (limited to 'git.c')
-rw-r--r--git.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/git.c b/git.c
index 807d875ae0..4588a8bac2 100644
--- a/git.c
+++ b/git.c
@@ -416,13 +416,9 @@ static void execv_dashed_external(const char **argv)
* if we fail because the command is not found, it is
* OK to return. Otherwise, we just pass along the status code.
*/
- status = run_command_v_opt(argv, 0);
- if (status != -ERR_RUN_COMMAND_EXEC) {
- if (IS_RUN_COMMAND_ERR(status))
- die("unable to run '%s'", argv[0]);
- exit(-status);
- }
- errno = ENOENT; /* as if we called execvp */
+ status = run_command_v_opt(argv, RUN_SILENT_EXEC_FAILURE);
+ if (status >= 0 || errno != ENOENT)
+ exit(status);
argv[0] = tmp;