From 3cce36f24f02146986c11cd9ef6381e36952f866 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sun, 4 Sep 2016 14:20:41 -0400 Subject: Implement typo detection for literals. --- parse.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'parse.c') diff --git a/parse.c b/parse.c index e720ba3..b8f79ad 100644 --- a/parse.c +++ b/parse.c @@ -10,6 +10,7 @@ *********************************************************************/ #include "bfs.h" +#include "typo.h" #include #include #include @@ -1499,8 +1500,18 @@ static struct expr *parse_literal(struct parser_state *state) { } } + const struct table_entry *best = NULL; + int best_dist; + for (const struct table_entry *entry = parse_table; entry->arg; ++entry) { + int dist = typo_distance(arg, entry->arg); + if (!best || dist < best_dist) { + best = entry; + best_dist = dist; + } + } + pretty_error(cmdline->stderr_colors, - "error: Unknown argument '%s'.\n", arg); + "error: Unknown argument '-%s'; did you mean '-%s'?\n", arg, best->arg); return NULL; } -- cgit v1.2.3