diff options
| author | Junio C Hamano <gitster@pobox.com> | 2015-09-03 19:17:49 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2015-09-03 19:17:49 -0700 |
| commit | 6c0850f2dd994baaf64ef580e466706ce17a860f (patch) | |
| tree | 4f4e8bc5af81c97e5aa9769c1e9975e59bb1340a /run-command.c | |
| parent | cbcd3dcaa8e504779523959ccf8771fdb32f2d2a (diff) | |
| parent | f4c3edc0b156362a92bf9de4f0ec794e90a757fc (diff) | |
| download | git-6c0850f2dd994baaf64ef580e466706ce17a860f.tar.xz | |
Merge branch 'jk/long-error-messages' into maint
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 4d73e90fad..0d01671c1f 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]); |
