Re: [PATCH] RFC: help.autocorrect prompt
From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:49:29
(+cc: Dscho and Heiko) David Barr wrote:
A value of 'prompt' causes git to wait for confirmation before executing the assumed command.
Nice idea.
---
Sign-off?
quoted hunk ↗ jump to hunk
--- a/help.c +++ b/help.c@@ -267,8 +267,12 @@ static struct cmdnames aliases; static int git_unknown_cmd_config(const char *var, const char *value, void *cb) { - if (!strcmp(var, "help.autocorrect")) - autocorrect = git_config_int(var,value); + if (!strcmp(var, "help.autocorrect")) { + if (!strcmp(value, "prompt")) + autocorrect = INT_MAX; + else + autocorrect = git_config_int(var,value);
Any particular significance to INT_MAX rather than, e.g., -1 here? (Just curious; it seems unlikely someone would use INT_MAX and accidentally trip on this.) Not a problem introduced by your patch: should we be checking for out-of-range (e.g., negative) values?
quoted hunk ↗ jump to hunk
@@ -342,7 +346,10 @@ const char *help_unknown_cmd(const char *cmd) "which does not exist.\n" "Continuing under the assumption that you meant '%s'\n", cmd, assumed); - if (autocorrect > 0) { + if (autocorrect == INT_MAX) { + if (strcmp("y", git_getpass("Continue? (y/n) "))) + exit(1);
Funny. :) It might be better to actually always write this prompt to the terminal, rather than popping up a gui $GIT_ASKPASS if the user has set that up. Maybe something like Heiko Voigt's "mingw: make failures to unlike or move raise a question" (9229029, 2010-02-21 from 4msysgit.git): if (!isatty(STDIN_FILENO) || !isatty(STDERR_FILENO)) exit(1); fprintf(stderr, "Continue? (y/n) "); if (!fgets(answer, sizeof(answer), stdin)) exit(1) if (*answer != 'y' && *answer != 'Y') exit(1);
+ } else if (autocorrect > 0) {
fprintf(stderr, "in %0.1f seconds automatically...\n",
(float)autocorrect/10.0);
poll(NULL, 0, autocorrect * 100);Thanks for a pleasant read. Jonathan