interactive: refactor code asking the user for interactive input
There are quite a few code locations (e.g. `git clean --interactive`) where Git asks the user for an answer. In preparation for fixing a bug shared by all of them, and also to DRY up the code, let's refactor it. Please note that most of these callers trimmed white-space both at the beginning and at the end of the answer, instead of trimming only the end (as the caller in `add-patch.c` does). Therefore, technically speaking, we change behavior in this patch. At the same time, it can be argued that this is actually a bug fix. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
9fadedd637
commit
08d383f23e
@ -9,6 +9,7 @@
|
||||
#include "lockfile.h"
|
||||
#include "dir.h"
|
||||
#include "run-command.h"
|
||||
#include "prompt.h"
|
||||
|
||||
static void init_color(struct repository *r, struct add_i_state *s,
|
||||
const char *slot_name, char *dst,
|
||||
@ -289,13 +290,12 @@ static ssize_t list_and_choose(struct add_i_state *s,
|
||||
fputs(singleton ? "> " : ">> ", stdout);
|
||||
fflush(stdout);
|
||||
|
||||
if (strbuf_getline(&input, stdin) == EOF) {
|
||||
if (git_read_line_interactively(&input) == EOF) {
|
||||
putchar('\n');
|
||||
if (immediate)
|
||||
res = LIST_AND_CHOOSE_QUIT;
|
||||
break;
|
||||
}
|
||||
strbuf_trim(&input);
|
||||
|
||||
if (!input.len)
|
||||
break;
|
||||
|
Reference in New Issue
Block a user