aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorlonerover <pathfinder1644@yahoo.com>2017-07-15 21:02:15 +0800
committerlonerover <pathfinder1644@yahoo.com>2017-07-19 11:48:10 +0800
commitb98ea04226d5ae7f2d8f9650101f87a848145ca4 (patch)
treece03edf98f3e701eb67b48a40e1fe79ea61a0b03 /src
parent26124b480028354d7d81d93c0e45ca516effdaa6 (diff)
downloadrneovim-b98ea04226d5ae7f2d8f9650101f87a848145ca4.tar.gz
rneovim-b98ea04226d5ae7f2d8f9650101f87a848145ca4.tar.bz2
rneovim-b98ea04226d5ae7f2d8f9650101f87a848145ca4.zip
vim-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 vim/vim#1060) https://github.com/vim/vim/commit/789a5c0e3d27f09456678f0cfb6c1bd2d8ab4a35
Diffstat (limited to 'src')
-rw-r--r--src/nvim/option.c5
-rw-r--r--src/nvim/testdir/test_bufwintabinfo.vim13
-rw-r--r--src/nvim/version.c2
3 files changed, 18 insertions, 2 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c
index 37b37e2859..40fae18aaf 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -7039,8 +7039,11 @@ dict_T *get_winbuf_options(const int bufopt)
if (opt->flags & P_STRING) {
tv_dict_add_str(d, opt->fullname, strlen(opt->fullname),
*(const char **)varp);
+ } else if (opt->flags & P_NUM) {
+ tv_dict_add_nr(d, opt->fullname, strlen(opt->fullname),
+ *(long *)varp);
} else {
- tv_dict_add_nr(d, opt->fullname, strlen(opt->fullname), *varp);
+ tv_dict_add_nr(d, opt->fullname, strlen(opt->fullname), *(int *)varp);
}
}
}
diff --git a/src/nvim/testdir/test_bufwintabinfo.vim b/src/nvim/testdir/test_bufwintabinfo.vim
index 5c916e2dd7..1c9350c416 100644
--- a/src/nvim/testdir/test_bufwintabinfo.vim
+++ b/src/nvim/testdir/test_bufwintabinfo.vim
@@ -87,9 +87,17 @@ function Test_get_buf_options()
endfunc
function Test_get_win_options()
+ if has('folding')
+ set foldlevel=999
+ endif
+ set list
let opts = getwinvar(1, '&')
call assert_equal(v:t_dict, type(opts))
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')
call assert_equal('auto', opts.signcolumn)
endif
@@ -97,7 +105,12 @@ function Test_get_win_options()
let opts = gettabwinvar(1, 1, '&')
call assert_equal(v:t_dict, type(opts))
call assert_equal(0, opts.linebreak)
+ call assert_equal(1, opts.list)
if has('signs')
call assert_equal('auto', opts.signcolumn)
endif
+ set list&
+ if has('folding')
+ set foldlevel=0
+ endif
endfunc
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 2200c5e04a..a7d6885b4c 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -726,7 +726,7 @@ static const int included_patches[] = {
6,
// 5 NA
4,
- // 3,
+ 3,
2,
1,
0