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 d08269f..359956b 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -10578,6 +10578,10 @@
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 f32331a..6b2b6b9 100644
--- a/src/testdir/test_viml.vim
+++ b/src/testdir/test_viml.vim
@@ -987,6 +987,11 @@
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 298372e..0a0bc1d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1178,
+/**/
1177,
/**/
1176,