run-command: Allow stderr to be a caller supplied pipe
Like .out, .err may now be set to a file descriptor > 0, which is a writable pipe/socket/file that the child's stderr will be redirected into. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
2b26e0e189
commit
4f41b61148
@ -94,6 +94,9 @@ fail_pipe:
|
||||
else if (need_err) {
|
||||
dup2(fderr[1], 2);
|
||||
close_pair(fderr);
|
||||
} else if (cmd->err > 1) {
|
||||
dup2(cmd->err, 2);
|
||||
close(cmd->err);
|
||||
}
|
||||
|
||||
if (cmd->no_stdout)
|
||||
@ -156,6 +159,9 @@ fail_pipe:
|
||||
} else if (need_err) {
|
||||
s2 = dup(2);
|
||||
dup2(fderr[1], 2);
|
||||
} else if (cmd->err > 2) {
|
||||
s2 = dup(2);
|
||||
dup2(cmd->err, 2);
|
||||
}
|
||||
|
||||
if (cmd->no_stdout) {
|
||||
@ -228,6 +234,8 @@ fail_pipe:
|
||||
|
||||
if (need_err)
|
||||
close(fderr[1]);
|
||||
else if (cmd->err)
|
||||
close(cmd->err);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user