[PATCH] Add help.autocorrect to enable/disable autocorrecting
It is off by default, to avoid scaring people unless they asked to.
---
Alex Riesen, Tue, Jul 22, 2008 22:37:30 +0200:
Show 15 quoted lines
> Johannes Schindelin, Tue, Jul 22, 2008 22:01:29 +0200:
> > As a convenience, if there is only one candidate, Git continues under
> > the assumption that the user mistyped it. Example:
> >
> > $ git reabse
> > WARNING: You called a Git program named 'reabse', which does
> > not exist.
> > Continuing under the assumption that you meant 'rebase'
> > [...]
>
> Oh, that would make me suspicios (and I hit Ctrl-C fast when I get
> suspicios about what happens to my precious data). Could it be
> configurable? For example, BASH's cdspell is configurable and even off
> by default.
>
Like this, perhaps?
help.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/help.c b/help.c
index 480befe..f08eb9d 100644
--- a/help.c
+++ b/help.c
@@ -28,6 +28,7 @@ enum help_format {
HELP_FORMAT_WEB,
};
+static int autocorrect;
static int show_all = 0;
static enum help_format help_format = HELP_FORMAT_MAN;
static struct option builtin_help_options[] = {
@@ -269,6 +270,8 @@ static int git_help_config(const char *var, const char *value, void *cb)
}
if (!prefixcmp(var, "man."))
return add_man_viewer_info(var, value);
+ if (!strcmp(var, "help.autocorrect"))
+ autocorrect = git_config_bool(var,value);
return git_default_config(var, value, cb);
}
@@ -704,9 +707,10 @@ const char *help_unknown_cmd(const char *cmd)
if (!main_cmds.cnt)
die ("Uh oh. Your system reports no Git commands at all.");
+ git_config(git_help_config, NULL);
best_similarity = similarity(main_cmds.names[0]->name);
- if (main_cmds.cnt < 2 || best_similarity <
- similarity(main_cmds.names[1]->name)) {
+ if (autocorrect && (main_cmds.cnt < 2 ||
+ best_similarity < similarity(main_cmds.names[1]->name))) {
if (!*cwd)
exit(1);
if (chdir(cwd))
--
1.6.0.rc0.48.g6dda.dirty