From 03680d10066f85887c1198925a7b297b27435919 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Sun, 23 Mar 2014 17:22:26 -0400 Subject: [PATCH] cli: Flush stdout before fork()ing to run hooks Without this flush, if stdout is block buffered (which will happen if it's a pipe or a file, for example) and the hook also writes to stdout, then notmuch new's output will appear *after* the hook output. This situation may be a little esoteric, but it's good practice to flush before you fork anyway. --- hooks.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hooks.c b/hooks.c index 44ee4198..662629a9 100644 --- a/hooks.c +++ b/hooks.c @@ -50,6 +50,9 @@ notmuch_run_hook (const char *db_path, const char *hook) goto DONE; } + /* Flush any buffered output before forking. */ + fflush (stdout); + pid = fork(); if (pid == -1) { fprintf (stderr, "Error: %s hook fork failed: %s\n", hook, -- 2.26.2