summaryrefslogtreecommitdiff
path: root/run-command.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-02-07 14:41:42 -0800
committerJunio C Hamano <gitster@pobox.com>2013-02-07 14:41:42 -0800
commitb5b56ea40c432f7687398bb012038ae12ac05ad4 (patch)
treea2b2e8582af4c09ebcb6e61d724d1f07d8337a59 /run-command.c
parentf507784d2c956fc73f3791b04cc80e7e0dae0a4d (diff)
parent939296c4a42b0eb22542f0fe2e50b53993489eff (diff)
downloadgit-b5b56ea40c432f7687398bb012038ae12ac05ad4.tar.gz
Merge branch 'sb/run-command-fd-error-reporting'
* sb/run-command-fd-error-reporting: run-command: be more informative about what failed
Diffstat (limited to 'run-command.c')
-rw-r--r--run-command.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/run-command.c b/run-command.c
index 12d4ddb552..07e27ff4c8 100644
--- a/run-command.c
+++ b/run-command.c
@@ -274,6 +274,7 @@ int start_command(struct child_process *cmd)
int need_in, need_out, need_err;
int fdin[2], fdout[2], fderr[2];
int failed_errno = failed_errno;
+ char *str;
/*
* In case of errors we must keep the promise to close FDs
@@ -286,6 +287,7 @@ int start_command(struct child_process *cmd)
failed_errno = errno;
if (cmd->out > 0)
close(cmd->out);
+ str = "standard input";
goto fail_pipe;
}
cmd->in = fdin[1];
@@ -301,6 +303,7 @@ int start_command(struct child_process *cmd)
close_pair(fdin);
else if (cmd->in)
close(cmd->in);
+ str = "standard output";
goto fail_pipe;
}
cmd->out = fdout[0];
@@ -318,9 +321,10 @@ int start_command(struct child_process *cmd)
close_pair(fdout);
else if (cmd->out)
close(cmd->out);
+ str = "standard error";
fail_pipe:
- error("cannot create pipe for %s: %s",
- cmd->argv[0], strerror(failed_errno));
+ error("cannot create %s pipe for %s: %s",
+ str, cmd->argv[0], strerror(failed_errno));
errno = failed_errno;
return -1;
}