diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-12-05 18:43:28 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-12-05 18:43:28 +0100 |
commit | 88b53fd0521d1e62df17a8a1f2181425e9d4854c (patch) | |
tree | 4ae0406155992905321b8d4fe89bc33e15730720 /src | |
parent | 74ea88c170f65afa50b2b97e37806d13b4e24cd7 (diff) | |
download | vim-git-88b53fd0521d1e62df17a8a1f2181425e9d4854c.tar.gz |
patch 8.1.0564: setting v:errors to wrong type still possiblev8.1.0564
Problem: Setting v:errors to wrong type still possible.
Solution: Return after giving an error message. (Christian Brabandt)
Diffstat (limited to 'src')
-rw-r--r-- | src/eval.c | 3 | ||||
-rw-r--r-- | src/testdir/test_eval_stuff.vim | 10 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 15 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c index 1dae2bfba..8839e0572 100644 --- a/src/eval.c +++ b/src/eval.c @@ -7568,7 +7568,10 @@ set_var( return; } else if (v->di_tv.v_type != tv->v_type) + { EMSG2(_("E963: setting %s to value with wrong type"), name); + return; + } } clear_tv(&v->di_tv); diff --git a/src/testdir/test_eval_stuff.vim b/src/testdir/test_eval_stuff.vim index bcf45cc78..a1aa78878 100644 --- a/src/testdir/test_eval_stuff.vim +++ b/src/testdir/test_eval_stuff.vim @@ -53,3 +53,13 @@ func Test_line_continuation() "\ and some more call assert_equal([5, 6], array) endfunc + +func Test_E963() + " These commands used to cause an internal error prior to vim 8.1.0563 + let v_e = v:errors + let v_o = v:oldfiles + call assert_fails("let v:errors=''", 'E963:') + call assert_equal(v_e, v:errors) + call assert_fails("let v:oldfiles=''", 'E963:') + call assert_equal(v_o, v:oldfiles) +endfunc diff --git a/src/version.c b/src/version.c index 474c96b96..bc442425a 100644 --- a/src/version.c +++ b/src/version.c @@ -793,6 +793,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 564, +/**/ 563, /**/ 562, |