From: Bram Moolenaar Date: Mon, 25 Jan 2016 19:22:54 +0000 (+0100) Subject: patch 7.4.1178 X-Git-Tag: v7.4.1178 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=767d8c1a1ae762ecf47297c168b8c23caf05d30a;p=vim patch 7.4.1178 Problem: empty() doesn't work for the new special variables. Solution: Make empty() work. (Damien) --- diff --git a/src/eval.c b/src/eval.c index d08269fc9..359956be1 100644 --- a/src/eval.c +++ b/src/eval.c @@ -10578,6 +10578,10 @@ f_empty(argvars, rettv) n = argvars[0].vval.v_dict == NULL || argvars[0].vval.v_dict->dv_hashtab.ht_used == 0; break; + case VAR_SPECIAL: + n = argvars[0].vval.v_number != VVAL_TRUE; + break; + default: EMSG2(_(e_intern2), "f_empty()"); n = 0; diff --git a/src/testdir/test_viml.vim b/src/testdir/test_viml.vim index f32331a61..6b2b6b988 100644 --- a/src/testdir/test_viml.vim +++ b/src/testdir/test_viml.vim @@ -987,6 +987,11 @@ func Test_type() call assert_equal(v:true, eval(string(v:true))) call assert_equal(v:none, eval(string(v:none))) call assert_equal(v:null, eval(string(v:null))) + + call assert_true(empty(v:false)) + call assert_false(empty(v:true)) + call assert_true(empty(v:null)) + call assert_true(empty(v:none)) endfunc "------------------------------------------------------------------------------- diff --git a/src/version.c b/src/version.c index 298372e83..0a0bc1d17 100644 --- a/src/version.c +++ b/src/version.c @@ -746,6 +746,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1178, /**/ 1177, /**/