run-command: Redirect stderr to a pipe before redirecting stdout to stderr
authorChristian Couder <chriscool@tuxfamily.org>
Wed, 5 Mar 2008 07:35:16 +0000 (08:35 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 5 Mar 2008 20:18:03 +0000 (12:18 -0800)
commitce2cf27adc434c11cd1e91bcacf00297efd8cc92
tree73afc63de75c771f92f2135414b4218986598806
parentc95b3ad9ea310ec89e31a21edecaaf2c374e2c46
run-command: Redirect stderr to a pipe before redirecting stdout to stderr

With this patch, in the 'start_command' function after forking
we now take care of stderr in the child process before stdout.

This way if 'start_command' is called with a 'child_process'
argument like this:

.err = -1;
.stdout_to_stderr = 1;

then stderr will be redirected to a pipe before stdout is
redirected to stderr. So we can now get the process' stdout
from the pipe (as well as its stderr).

Earlier such a call would have redirected stdout to stderr
before stderr was itself redirected, and therefore stdout
would not have followed stderr, which would not have been
very useful anyway.

Update documentation in 'api-run-command.txt' accordingly.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Acked-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/technical/api-run-command.txt
run-command.c