diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-08-25 14:57:06 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-08-25 14:57:06 -0700 |
commit | 1302c9f514686e32065130ec9a80eb0db224e819 (patch) | |
tree | a9891d1a8906165ccabc6e005da5eb4fda1306d7 /run-command.c | |
parent | b590720f2cd3638930847f5abf646275caf8d334 (diff) | |
parent | f4c3edc0b156362a92bf9de4f0ec794e90a757fc (diff) | |
download | git-1302c9f514686e32065130ec9a80eb0db224e819.tar.gz |
Merge branch 'jk/long-error-messages'
The codepath to produce error messages had a hard-coded limit to
the size of the message, primarily to avoid memory allocation while
calling die().
* jk/long-error-messages:
vreportf: avoid intermediate buffer
vreportf: report to arbitrary filehandles
Diffstat (limited to 'run-command.c')
-rw-r--r-- | run-command.c | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/run-command.c b/run-command.c index 28e1d55cb9..3277cf797e 100644 --- a/run-command.c +++ b/run-command.c @@ -200,7 +200,6 @@ static int execv_shell_cmd(const char **argv) #endif #ifndef GIT_WINDOWS_NATIVE -static int child_err = 2; static int child_notifier = -1; static void notify_parent(void) @@ -212,17 +211,6 @@ static void notify_parent(void) */ xwrite(child_notifier, "", 1); } - -static NORETURN void die_child(const char *err, va_list params) -{ - vwritef(child_err, "fatal: ", err, params); - exit(128); -} - -static void error_child(const char *err, va_list params) -{ - vwritef(child_err, "error: ", err, params); -} #endif static inline void set_cloexec(int fd) @@ -362,11 +350,10 @@ fail_pipe: * in subsequent call paths use the parent's stderr. */ if (cmd->no_stderr || need_err) { - child_err = dup(2); + int child_err = dup(2); set_cloexec(child_err); + set_error_handle(fdopen(child_err, "w")); } - set_die_routine(die_child); - set_error_routine(error_child); close(notify_pipe[0]); set_cloexec(notify_pipe[1]); |