зеркало из https://github.com/microsoft/git.git
run-command: Support sending stderr to /dev/null
Some callers may wish to redirect stderr to /dev/null in some contexts, such as if they are executing a command only to get the exit status and don't want users to see whatever output it may produce as a side-effect of computing that exit status. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Родитель
a3b0079c6a
Коммит
b73a439759
|
@ -41,7 +41,7 @@ int start_command(struct child_process *cmd)
|
|||
cmd->close_out = 1;
|
||||
}
|
||||
|
||||
need_err = cmd->err < 0;
|
||||
need_err = !cmd->no_stderr && cmd->err < 0;
|
||||
if (need_err) {
|
||||
if (pipe(fderr) < 0) {
|
||||
if (need_in)
|
||||
|
@ -87,7 +87,9 @@ int start_command(struct child_process *cmd)
|
|||
close(cmd->out);
|
||||
}
|
||||
|
||||
if (need_err) {
|
||||
if (cmd->no_stderr)
|
||||
dup_devnull(2);
|
||||
else if (need_err) {
|
||||
dup2(fderr[1], 2);
|
||||
close_pair(fderr);
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ struct child_process {
|
|||
unsigned close_out:1;
|
||||
unsigned no_stdin:1;
|
||||
unsigned no_stdout:1;
|
||||
unsigned no_stderr:1;
|
||||
unsigned git_cmd:1; /* if this is to be git sub-command */
|
||||
unsigned stdout_to_stderr:1;
|
||||
};
|
||||
|
|
Загрузка…
Ссылка в новой задаче