interactive: explicitly `fflush` stdout before expecting input

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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
마누엘 2020-04-10 11:27:51 +00:00 коммит произвёл Junio C Hamano
Родитель 08d383f23e
Коммит 1f09aed834
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -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);