Re: [PATCH] Use line buffering for standard output
Anders Melchiorsen <mail@cup.kalibalik.dk> writes:
Show 25 quoted lines
> From: Anders Melchiorsen <mail@cup.kalibalik.dk>
> 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 <mail@cup.kalibalik.dk>
> ---
> 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.