1
0
forked from aniani/vim

patch 9.0.2154: The option[] array is not sorted

Problem:  The options[] array is not sorted alphabetically.
Solution: Sort it alphabetically.  Add a test.  Avoid unnecessary loop
          iterations in findoption().

closes: #13648

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
zeertzjq
2023-12-08 21:34:31 +01:00
committed by Christian Brabandt
parent ff0baca865
commit f48558e10a
4 changed files with 91 additions and 84 deletions

View File

@@ -4933,11 +4933,13 @@ findoption(char_u *arg)
opt_idx = quick_tab[26];
else
opt_idx = quick_tab[CharOrdLow(arg[0])];
for ( ; (s = options[opt_idx].fullname) != NULL; opt_idx++)
for (; (s = options[opt_idx].fullname) != NULL && s[0] == arg[0]; opt_idx++)
{
if (STRCMP(arg, s) == 0) // match full name
break;
}
if (s != NULL && s[0] != arg[0])
s = NULL;
if (s == NULL && !is_term_opt)
{
opt_idx = quick_tab[CharOrdLow(arg[0])];