From: Junio C Hamano Date: Mon, 04 Aug 2008 00:24:01 GMT Subject: Re: [PATCH] Use line buffering for standard output Message-ID: <7vej557hlq.fsf@gitster.siamese.dyndns.org> In-Reply-To: <87hca1ogto.fsf@cup.kalibalik.dk> Anders Melchiorsen writes: > From: Anders Melchiorsen > Date: Mon, 4 Aug 2008 00:35:40 +0200 > Subject: [PATCH] Flush standard output in start_async > > This prevents double output in case stdout is redirected. > > Signed-off-by: Anders Melchiorsen > --- > run-command.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/run-command.c b/run-command.c > index a3b28a6..67be079 100644 > --- a/run-command.c > +++ b/run-command.c > @@ -304,6 +304,9 @@ int start_async(struct async *async) > async->out = pipe_out[0]; > > #ifndef __MINGW32__ > + /* Flush output before fork() to avoid cloning the buffer */ > + fflush(stdout); > + > async->pid = fork(); > if (async->pid < 0) { > error("fork (async) failed: %s", strerror(errno)); I think this with s/stdout/NULL/ would be a reasonable thing to do.