fix(options): fix 'winborder' accepting multiple string values (#32978)

Problem:  'winborder' accepting multiple string values.
Solution: Use the fallback did_set_str_generic() callback instead of
          did_set_winborder() which calls opt_strings_flags() with
          incorrect last argument.
This commit is contained in:
zeertzjq
2025-03-19 14:17:53 +08:00
committed by GitHub
parent aafbd442b2
commit 190d0241e2
3 changed files with 1 additions and 11 deletions

View File

@ -10190,7 +10190,6 @@ local options = {
},
{
defaults = { if_true = '' },
cb = 'did_set_winborder',
values = { '', 'double', 'single', 'shadow', 'rounded', 'solid', 'none' },
desc = [=[
Defines the default border style of floating windows. The default value

View File

@ -2005,15 +2005,6 @@ const char *did_set_winhighlight(optset_T *args)
return NULL;
}
/// The 'winborder' option is changed.
const char *did_set_winborder(optset_T *args)
{
if (opt_strings_flags(p_winbd, opt_winborder_values, NULL, true) != OK) {
return e_invarg;
}
return NULL;
}
int expand_set_winhighlight(optexpand_T *args, int *numMatches, char ***matches)
{
return expand_set_opt_generic(args, get_highlight_name, numMatches, matches);

View File

@ -75,7 +75,7 @@ let test_values = {
\ 'shada': [['', '''50', '"30'], ['xxx']],
\ 'termpastefilter': [['BS', 'HT', 'FF', 'ESC', 'DEL', 'C0', 'C1', 'C0,C1'],
\ ['xxx', 'C0,C1,xxx']],
\ 'winborder': [['rounded', 'none', 'single', 'solid'], ['xxx']],
\ 'winborder': [['rounded', 'none', 'single', 'solid'], ['xxx', 'none,solid']],
\ 'winhighlight': [['', 'a:b', 'a:', 'a:b,c:d'],
\ ['a', ':', ':b', 'a:b:c', 'a:/', '/:b', ',', 'a:b,,', 'a:b,c']],
\