# HG changeset patch # User Christian Brabandt # Date 1453834805 -3600 # Node ID 3d8e4e0d71278854332d14365f29fa1b052d48a6 # Parent c9daa07abf34c53ca927b50150e11df4483b5337 commit https://github.com/vim/vim/commit/6650a694547eb744afa060ec62dd8270e99db9f2 Author: Bram Moolenaar Date: Tue Jan 26 19:59:10 2016 +0100 patch 7.4.1181 Problem: free_tv() can't handle special variables. (Damien) Solution: Add the variable type. diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -21608,6 +21608,7 @@ free_tv(varp) case VAR_FLOAT: #endif case VAR_UNKNOWN: + case VAR_SPECIAL: break; default: EMSG2(_(e_intern2), "free_tv()"); diff --git a/src/testdir/test_viml.vim b/src/testdir/test_viml.vim --- a/src/testdir/test_viml.vim +++ b/src/testdir/test_viml.vim @@ -1005,6 +1005,16 @@ func Test_type() call assert_false(empty(v:true)) call assert_true(empty(v:null)) call assert_true(empty(v:none)) + + func ChangeYourMind() + try + return v:true + finally + return 'something else' + endtry + endfunc + + call ChangeYourMind() endfunc "------------------------------------------------------------------------------- diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1181, +/**/ 1180, /**/ 1179,