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
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1491,
+/**/
     1490,
 /**/
     1489,