src: Must suffix-match at least 3 characters to be a option candidate

This commit is contained in:
Tatsuhiro Tsujikawa 2014-01-13 23:29:10 +09:00
parent 8c6f3d1054
commit a54c5bef54
1 changed files with 4 additions and 2 deletions

View File

@ -324,12 +324,14 @@ void show_candidates(const char *unkopt, option *options)
if(*unkopt == '\0') {
return;
}
auto unkoptlen = strlen(unkopt);
auto cands = std::vector<std::pair<int, const char*>>();
for(size_t i = 0; options[i].name != nullptr; ++i) {
// Use cost 0 for prefix or suffix match
if(istartsWith(options[i].name, unkopt) ||
(unkoptlen >= 3 &&
iendsWith(options[i].name, options[i].name + strlen(options[i].name),
unkopt, unkopt + strlen(unkopt))) {
unkopt, unkopt + unkoptlen))) {
cands.emplace_back(0, options[i].name);
continue;
}