Junio C Hamano <gitster@xxxxxxxxx> writes: > I have a strong objection against the above phrasing. > > If we are asking user for interactive input, this SHOULD be used, > especially if we might be reading the data to work on from the > standard input and we may need to ask the user to interactively > instruct us what to do to that data. The only plausible reason that > we may want to avoid it and instead prefer the (misnamed) > read_line_interactively() to read whatever from the standard input > (which may not be "interactive" at all, which is why I said > "misnamed") is because our test framework does not use setsid (and > setsid(1) may not be universally available) with pty to emulate tty > input, isn't it? > >> char *git_prompt(const char *prompt, int flags); >> >> int git_read_line_interactively(struct strbuf *line); So, here is an alternative that nudges users away from this helper, but with honesty. I also suggest a better name for that misnamed "interactively" function in the comment, but will leave it as an exercise to readers to come up with a patch to rename the function. /* * Give prompt to the user and accept interactive input from the * controlling terminal (/dev/tty). This function can be used even * when the standard input is being used to feed us real data to * operate on, as we open /dev/tty ourselves for user interaction. * * In a codepath that never uses the standard input for real data, * consider using git_read_line_from_standard_input() instead, as it * is easier to write tests for (our test framework currently does not * make it easy to simulate end-user input coming from /dev/tty). */