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 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.
struct cmdnames aliases;
};
+#define AUTOCORRECT_SHOW (-4)
#define AUTOCORRECT_PROMPT (-3)
#define AUTOCORRECT_NEVER (-2)
#define AUTOCORRECT_IMMEDIATELY (-1)
case 1:
return AUTOCORRECT_IMMEDIATELY;
case 0:
- return AUTOCORRECT_NEVER;
+ return AUTOCORRECT_SHOW;
default: /* other random text */
break;
}
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,
test_cmp expect actual
'
-test_expect_success 'autocorrect showing candidates' '
- git config help.autocorrect 0 &&
+for show in false no off 0
+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