From e21bf2c4314840dba4f45c6e7bbc96a6fc0a8f61 Mon Sep 17 00:00:00 2001 From: David Aguilar Date: Sat, 1 Feb 2025 13:33:18 -0800 Subject: help: show the suggested command when help.autocorrect is false Make the handling of false boolean values for help.autocorrect consistent with the handling of value 0 by showing the suggested commands but not running them. Suggested-by: Junio C Hamano Signed-off-by: David Aguilar Signed-off-by: Junio C Hamano --- help.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'help.c') diff --git a/help.c b/help.c index 7148963e46..55425c0d97 100644 --- a/help.c +++ b/help.c @@ -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; } @@ -713,7 +714,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, -- cgit v1.2.3 From e4542d8b35788c355164794457d46667378e9354 Mon Sep 17 00:00:00 2001 From: David Aguilar Date: Sat, 1 Feb 2025 13:33:19 -0800 Subject: help: add "show" as a valid configuration value Add a literal value for showing the suggested autocorrection for consistency with the rest of the help.autocorrect options. Signed-off-by: David Aguilar Signed-off-by: Junio C Hamano --- Documentation/config/help.txt | 2 +- help.c | 2 ++ t/t9003-help-autocorrect.sh | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'help.c') diff --git a/Documentation/config/help.txt b/Documentation/config/help.txt index 676ba3a55f..b369589cec 100644 --- a/Documentation/config/help.txt +++ b/Documentation/config/help.txt @@ -11,7 +11,7 @@ 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, "false", "off", "no": 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 diff --git a/help.c b/help.c index 55425c0d97..8d91afe851 100644 --- a/help.c +++ b/help.c @@ -574,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; } diff --git a/t/t9003-help-autocorrect.sh b/t/t9003-help-autocorrect.sh index 5ebfc00f52..8da318d2b5 100755 --- a/t/t9003-help-autocorrect.sh +++ b/t/t9003-help-autocorrect.sh @@ -28,7 +28,7 @@ test_expect_success 'setup' ' test_cmp expect actual ' -for show in false no off 0 +for show in false no off 0 show do test_expect_success 'autocorrect showing candidates' ' git config help.autocorrect $show && -- cgit v1.2.3