0
0
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:
Bram Moolenaar
2016-09-12 19:51:11 +02:00
parent b56e7ff0db
commit 789a5c0e3d
3 changed files with 18 additions and 1 deletions

View File

@@ -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);
} }
} }
} }

View File

@@ -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

View File

@@ -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,
/**/ /**/