[PATCH v2 2/2] Explicitly `fflush` stdout before expecting interactive input
- From
- 마누엘 via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Apr 10, 2020, 11:27 UTC
- Message-ID
- <d3949e42004f31e8741fad08352f782b4b8536eb.1586518072.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.755.v2.git.git.1586518072.gitgitgadget@gmail.com>
From: =?UTF-8?q?=EB=A7=88=EB=88=84=EC=97=98?= <nalla@hamal.uberspace.de>
At least one interactive command writes a prompt to `stdout` and then reads user input on `stdin`: `git clean --interactive`. If the prompt is left in the buffer, the user will not realize the program is waiting for their input.
So let's just flush `stdout` before reading the user's input.
Signed-off-by: 마누엘 <nalla@hamal.uberspace.de> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> --- prompt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/prompt.c b/prompt.c index 098dcfb7cf9..5ded21a017f 100644 --- a/prompt.c +++ b/prompt.c @@ -77,8 +77,10 @@ char *git_prompt(const char *prompt, int flags) int git_read_line_interactively(struct strbuf *line) { - int ret = strbuf_getline_lf(line, stdin); + int ret; + fflush(stdout); + ret = strbuf_getline_lf(line, stdin); if (ret != EOF) strbuf_trim_trailing_newline(line);
-- gitgitgadget