mirror of
https://github.com/vim/vim.git
synced 2025-09-29 04:34:16 -04:00
patch 8.0.0003
Problem: getwinvar() returns wrong Value of boolean and number options, especially non big endian systems. (James McCoy) Solution: Cast the pointer to long or int. (closes #1060)
This commit is contained in:
@@ -12363,8 +12363,10 @@ get_winbuf_options(int bufopt)
|
|||||||
{
|
{
|
||||||
if (opt->flags & P_STRING)
|
if (opt->flags & P_STRING)
|
||||||
dict_add_nr_str(d, opt->fullname, 0L, *(char_u **)varp);
|
dict_add_nr_str(d, opt->fullname, 0L, *(char_u **)varp);
|
||||||
|
else if (opt->flags & P_NUM)
|
||||||
|
dict_add_nr_str(d, opt->fullname, *(long *)varp, NULL);
|
||||||
else
|
else
|
||||||
dict_add_nr_str(d, opt->fullname, *varp, NULL);
|
dict_add_nr_str(d, opt->fullname, *(int *)varp, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -87,9 +87,17 @@ function Test_get_buf_options()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
function Test_get_win_options()
|
function Test_get_win_options()
|
||||||
|
if has('folding')
|
||||||
|
set foldlevel=999
|
||||||
|
endif
|
||||||
|
set list
|
||||||
let opts = getwinvar(1, '&')
|
let opts = getwinvar(1, '&')
|
||||||
call assert_equal(v:t_dict, type(opts))
|
call assert_equal(v:t_dict, type(opts))
|
||||||
call assert_equal(0, opts.linebreak)
|
call assert_equal(0, opts.linebreak)
|
||||||
|
call assert_equal(1, opts.list)
|
||||||
|
if has('folding')
|
||||||
|
call assert_equal(999, opts.foldlevel)
|
||||||
|
endif
|
||||||
if has('signs')
|
if has('signs')
|
||||||
call assert_equal('auto', opts.signcolumn)
|
call assert_equal('auto', opts.signcolumn)
|
||||||
endif
|
endif
|
||||||
@@ -97,7 +105,12 @@ function Test_get_win_options()
|
|||||||
let opts = gettabwinvar(1, 1, '&')
|
let opts = gettabwinvar(1, 1, '&')
|
||||||
call assert_equal(v:t_dict, type(opts))
|
call assert_equal(v:t_dict, type(opts))
|
||||||
call assert_equal(0, opts.linebreak)
|
call assert_equal(0, opts.linebreak)
|
||||||
|
call assert_equal(1, opts.list)
|
||||||
if has('signs')
|
if has('signs')
|
||||||
call assert_equal('auto', opts.signcolumn)
|
call assert_equal('auto', opts.signcolumn)
|
||||||
endif
|
endif
|
||||||
|
set list&
|
||||||
|
if has('folding')
|
||||||
|
set foldlevel=0
|
||||||
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
@@ -764,6 +764,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 */
|
||||||
|
/**/
|
||||||
|
3,
|
||||||
/**/
|
/**/
|
||||||
2,
|
2,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user