git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/2] prompt.h: clarify the non-use of git_prompt

From
Firmin Martin <firminmartin24@gmail.com>
Date
May 13, 2021, 21:41 UTC
Message-ID
<20210513214152.34792-2-firminmartin24@gmail.com>
In-Reply-To
<20210513214152.34792-1-firminmartin24@gmail.com>

It's really tempting to use git_prompt to prompt user for input, but in most of the case, we must not [1]. Reflect this as a comment in prompt.h.

[1]: https://lore.kernel.org/git/YJTH+sTP%2FO5Nxtp9@coredump.intra.peff.net/
Reported-by: Jeff King <peff@peff.net>
Signed-off-by: Firmin Martin <firminmartin24@gmail.com>
---
 prompt.h | 10 ++++++++++
 1 file changed, 10 insertions(+)
diff --git a/prompt.h b/prompt.h
index e294e93541..90eb3f08a3 100644
--- a/prompt.h
+++ b/prompt.h
@@ -4,6 +4,16 @@
 #define PROMPT_ASKPASS (1<<0)
 #define PROMPT_ECHO    (1<<1)
 
+/*
+ * This function should not be used for regular prompts (i.e., asking user for
+ * confirmation or picking an option from an interactive menu) as it only
+ * accepts input from /dev/tty, thus making it impossible to test with the
+ * current test suite.  Please instead use git_read_line_interactively for that
+ * purpose.  See 97387c8bdd (am: read interactive input from stdin, 2019-05-20)
+ * for historical context.
+ *
+ */
+
 char *git_prompt(const char *prompt, int flags);
 
 int git_read_line_interactively(struct strbuf *line);
-- 
2.31.1.443.g67a420f573
Previous: Firmin MartinNext: Junio C Hamano
Message 2 of 7 in “Refactor some prompts”
  1. 0/2 Refactor some promptsFirmin Martin, May 13, 2021
  2. 1/2 prompt.h: clarify the non-use of git_promptFirmin Martin, May 13, 2021
  3. Junio C HamanoMay 13, 2021
  4. Junio C HamanoMay 13, 2021
  5. Jeff KingMay 15, 2021
  6. 2/2 builtin: use git_read_line_interactively to promptFirmin Martin, May 13, 2021
  7. Junio C HamanoMay 13, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.