diff options
| author | Junio C Hamano <gitster@pobox.com> | 2025-02-12 10:08:55 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-02-12 10:08:55 -0800 |
| commit | 2d7a874493df07d76d7f1294e72b807ff936cd55 (patch) | |
| tree | 7d32346b7484f8184806ffc025dad9200bdc0ad3 | |
| parent | 39de0ffbe33fbb6498a3027207deb3a5d30ff678 (diff) | |
| parent | e4542d8b35788c355164794457d46667378e9354 (diff) | |
| download | git-2d7a874493df07d76d7f1294e72b807ff936cd55.tar.gz | |
Merge branch 'da/help-autocorrect-one-fix'
"git -c help.autocorrect=0 psuh" shows the suggested typofix,
unlike the previous attempt in the base topic.
* da/help-autocorrect-one-fix:
help: add "show" as a valid configuration value
help: show the suggested command when help.autocorrect is false
| -rw-r--r-- | Documentation/config/help.txt | 4 | ||||
| -rw-r--r-- | help.c | 8 | ||||
| -rwxr-xr-x | t/t9003-help-autocorrect.sh | 17 |
3 files changed, 18 insertions, 11 deletions
diff --git a/Documentation/config/help.txt b/Documentation/config/help.txt index a4c6079af8..b369589cec 100644 --- a/Documentation/config/help.txt +++ b/Documentation/config/help.txt @@ -11,12 +11,12 @@ help.autoCorrect:: If git detects typos and can identify exactly one valid command similar to the error, git will try to suggest the correct command or even run the suggestion automatically. Possible config values are: - - 0: show the suggested command (default). + - 0, "false", "off", "no", "show": show the suggested command (default). - 1, "true", "on", "yes", "immediate": run the suggested command immediately. - positive number > 1: run the suggested command after specified deciseconds (0.1 sec). - - "false", "off", "no", "never": don't run or show any suggested command. + - "never": don't run or show any suggested command. - "prompt": show the suggestion and prompt for confirmation to run the command. @@ -552,6 +552,7 @@ struct help_unknown_cmd_config { struct cmdnames aliases; }; +#define AUTOCORRECT_SHOW (-4) #define AUTOCORRECT_PROMPT (-3) #define AUTOCORRECT_NEVER (-2) #define AUTOCORRECT_IMMEDIATELY (-1) @@ -562,7 +563,7 @@ static int parse_autocorrect(const char *value) case 1: return AUTOCORRECT_IMMEDIATELY; case 0: - return AUTOCORRECT_NEVER; + return AUTOCORRECT_SHOW; default: /* other random text */ break; } @@ -573,6 +574,8 @@ static int parse_autocorrect(const char *value) return AUTOCORRECT_NEVER; if (!strcmp(value, "immediate")) return AUTOCORRECT_IMMEDIATELY; + if (!strcmp(value, "show")) + return AUTOCORRECT_SHOW; return 0; } @@ -713,7 +716,8 @@ char *help_unknown_cmd(const char *cmd) n++) ; /* still counting */ } - if (cfg.autocorrect && n == 1 && SIMILAR_ENOUGH(best_similarity)) { + if (cfg.autocorrect && cfg.autocorrect != AUTOCORRECT_SHOW && n == 1 && + SIMILAR_ENOUGH(best_similarity)) { char *assumed = xstrdup(main_cmds.names[0]->name); fprintf_ln(stderr, diff --git a/t/t9003-help-autocorrect.sh b/t/t9003-help-autocorrect.sh index 85a5074b5e..8da318d2b5 100755 --- a/t/t9003-help-autocorrect.sh +++ b/t/t9003-help-autocorrect.sh @@ -28,15 +28,18 @@ test_expect_success 'setup' ' test_cmp expect actual ' -test_expect_success 'autocorrect showing candidates' ' - git config help.autocorrect 0 && +for show in false no off 0 show +do + test_expect_success 'autocorrect showing candidates' ' + git config help.autocorrect $show && - test_must_fail git lfg 2>actual && - grep "^ lgf" actual && + test_must_fail git lfg 2>actual && + grep "^ lgf" actual && - test_must_fail git distimdist 2>actual && - grep "^ distimdistim" actual -' + test_must_fail git distimdist 2>actual && + grep "^ distimdistim" actual + ' +done for immediate in -1 immediate do |
