Mercurial > vim
diff src/option.c @ 33897:7777043c9393 v9.0.2154
patch 9.0.2154: The option[] array is not sorted
Commit: https://github.com/vim/vim/commit/f48558e10a08a1a483e25ef847bbceeac6b44561
Author: zeertzjq <zeertzjq@outlook.com>
Date: Fri Dec 8 21:34:31 2023 +0100
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>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 10 Dec 2023 15:16:32 +0100 |
parents | 2f9090601258 |
children | 1629cc65d78d |
line wrap: on
line diff
--- a/src/option.c +++ b/src/option.c @@ -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])];