mirror of
https://github.com/vim/vim.git
synced 2025-07-24 10:45:12 -04:00
patch 8.2.0629: setting a boolean option to v:false does not work
Problem: Setting a boolean option to v:false does not work. Solution: Do not use the string representation of the value. (Christian Brabandt, closes #5974)
This commit is contained in:
parent
e71ebb46a2
commit
65d032c779
@ -1251,13 +1251,15 @@ ex_let_one(
|
|||||||
int opt_type;
|
int opt_type;
|
||||||
long numval;
|
long numval;
|
||||||
char_u *stringval = NULL;
|
char_u *stringval = NULL;
|
||||||
char_u *s;
|
char_u *s = NULL;
|
||||||
|
|
||||||
c1 = *p;
|
c1 = *p;
|
||||||
*p = NUL;
|
*p = NUL;
|
||||||
|
|
||||||
n = (long)tv_get_number(tv);
|
n = (long)tv_get_number(tv);
|
||||||
s = tv_get_string_chk(tv); // != NULL if number or string
|
// avoid setting a string option to the text "v:false" or similar.
|
||||||
|
if (tv->v_type != VAR_BOOL && tv->v_type != VAR_SPECIAL)
|
||||||
|
s = tv_get_string_chk(tv); // != NULL if number or string
|
||||||
if (s != NULL && op != NULL && *op != '=')
|
if (s != NULL && op != NULL && *op != '=')
|
||||||
{
|
{
|
||||||
opt_type = get_option_value(arg, &numval,
|
opt_type = get_option_value(arg, &numval,
|
||||||
@ -1289,7 +1291,8 @@ ex_let_one(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (s != NULL)
|
if (s != NULL || tv->v_type == VAR_BOOL
|
||||||
|
|| tv->v_type == VAR_SPECIAL)
|
||||||
{
|
{
|
||||||
set_option_value(arg, n, s, opt_flags);
|
set_option_value(arg, n, s, opt_flags);
|
||||||
arg_end = p;
|
arg_end = p;
|
||||||
|
@ -899,4 +899,18 @@ func Test_opt_num_op()
|
|||||||
set shiftwidth&
|
set shiftwidth&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for setting option values using v:false and v:true
|
||||||
|
func Test_opt_boolean()
|
||||||
|
set number&
|
||||||
|
set number
|
||||||
|
call assert_equal(1, &nu)
|
||||||
|
set nonu
|
||||||
|
call assert_equal(0, &nu)
|
||||||
|
let &nu = v:true
|
||||||
|
call assert_equal(1, &nu)
|
||||||
|
let &nu = v:false
|
||||||
|
call assert_equal(0, &nu)
|
||||||
|
set number&
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -746,6 +746,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
629,
|
||||||
/**/
|
/**/
|
||||||
628,
|
628,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user