Mercurial > vim
changeset 16982:301f6deea057 v8.1.1491
patch 8.1.1491: when skipping over code a function call may cause trouble
commit https://github.com/vim/vim/commit/606407384144df73a6154aca1d77e071fe1b7651
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Jun 7 23:15:22 2019 +0200
patch 8.1.1491: when skipping over code a function call may cause trouble
Problem: When skipping over code after an exception was thrown expression
evaluation is aborted after a function call. (Ingo Karkat)
Solution: Do not fail if not executing the expression. (closes #4507)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 07 Jun 2019 23:30:06 +0200 |
parents | 873f8aedfb6c |
children | 03d245d277fe |
files | src/eval.c src/testdir/test_eval_stuff.vim src/version.c |
diffstat | 3 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -4592,7 +4592,7 @@ eval7( /* Stop the expression evaluation when immediately * aborting on error, or when an interrupt occurred or * an exception was thrown but not caught. */ - if (aborting()) + if (evaluate && aborting()) { if (ret == OK) clear_tv(rettv);
--- a/src/testdir/test_eval_stuff.vim +++ b/src/testdir/test_eval_stuff.vim @@ -178,3 +178,12 @@ func Test_scriptversion() call assert_fails('source Xversionscript', 'E999:') call delete('Xversionscript') endfunc + +" Test fix for issue #4507 +func Test_skip_after_throw() + try + throw 'something' + let x = wincol() || &ts + catch /something/ + endtry +endfunc