From: Bram Moolenaar Date: Sat, 19 Mar 2016 17:52:29 +0000 (+0100) Subject: patch 7.4.1606 X-Git-Tag: v7.4.1606 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=953cc7fb139dc2ba8590f8b03a095b63f4e1208f;p=thirdparty%2Fvim.git patch 7.4.1606 Problem: Having type() handle a Funcref that is or isn't a partial differently causes problems for existing scripts. Solution: Make type() return the same value. (Thinca) --- diff --git a/src/eval.c b/src/eval.c index a2288f9f27..69969fe609 100644 --- a/src/eval.c +++ b/src/eval.c @@ -20398,6 +20398,7 @@ f_type(typval_T *argvars, typval_T *rettv) { case VAR_NUMBER: n = 0; break; case VAR_STRING: n = 1; break; + case VAR_PARTIAL: case VAR_FUNC: n = 2; break; case VAR_LIST: n = 3; break; case VAR_DICT: n = 4; break; @@ -20411,7 +20412,6 @@ f_type(typval_T *argvars, typval_T *rettv) break; case VAR_JOB: n = 8; break; case VAR_CHANNEL: n = 9; break; - case VAR_PARTIAL: n = 10; break; case VAR_UNKNOWN: EMSG2(_(e_intern2), "f_type(UNKNOWN)"); n = -1; diff --git a/src/testdir/test_viml.vim b/src/testdir/test_viml.vim index 0120d21216..10869f36a9 100644 --- a/src/testdir/test_viml.vim +++ b/src/testdir/test_viml.vim @@ -942,6 +942,7 @@ func Test_type() call assert_equal(0, type(0)) call assert_equal(1, type("")) call assert_equal(2, type(function("tr"))) + call assert_equal(2, type(function("tr", [8]))) call assert_equal(3, type([])) call assert_equal(4, type({})) call assert_equal(5, type(0.0)) diff --git a/src/version.c b/src/version.c index 2c4d24d070..29d4d592b4 100644 --- a/src/version.c +++ b/src/version.c @@ -748,6 +748,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1606, /**/ 1605, /**/