# HG changeset patch # User Christian Brabandt # Date 1467407704 -7200 # Node ID beab399e38838fc8f5feb8cbc82641bf9a8190bb # Parent bea9958b35a9aac8e49c82c5c9f26dbc61ec74e1 commit https://github.com/vim/vim/commit/2acfbed9dbea990f129535de7ff3df360365130b Author: Bram Moolenaar Date: Fri Jul 1 23:14:02 2016 +0200 patch 7.4.1979 Problem: Getting value of binary option is wrong. (Kent Sibilev) Solution: Fix type cast. Add a test. diff --git a/src/option.c b/src/option.c --- a/src/option.c +++ b/src/option.c @@ -9102,7 +9102,7 @@ get_option_value( if ((int *)varp == &curbuf->b_changed) *numval = curbufIsChanged(); else - *numval = (long) *(varnumber_T *)varp; + *numval = (long) *(int *)varp; } return 1; } diff --git a/src/testdir/test_expr.vim b/src/testdir/test_expr.vim --- a/src/testdir/test_expr.vim +++ b/src/testdir/test_expr.vim @@ -106,3 +106,26 @@ func Test_special_char() " The failure is only visible using valgrind. call assert_fails('echo "\') endfunc + +func Test_option_value() + " boolean + set bri + call assert_equal(1, &bri) + set nobri + call assert_equal(0, &bri) + + " number + set ts=1 + call assert_equal(1, &ts) + set ts=8 + call assert_equal(8, &ts) + + " string + exe "set cedit=\" + call assert_equal("\", &cedit) + set cpo= + call assert_equal("", &cpo) + set cpo=abcdefgi + call assert_equal("abcdefgi", &cpo) + set cpo&vim +endfunc diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -759,6 +759,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1979, +/**/ 1978, /**/ 1977,