changeset 19736:4174c4da6ff7 v8.2.0424

patch 8.2.0424: checking for wrong return value Commit: https://github.com/vim/vim/commit/97acfc781bdb7fa2838dc6e0e7f9952ea61bb2fd Author: Bram Moolenaar <Bram@vim.org> Date: Sun Mar 22 13:44:28 2020 +0100 patch 8.2.0424: checking for wrong return value Problem: Checking for wrong return value. (Tom) Solution: Invert the check and fix the test.
author Bram Moolenaar <Bram@vim.org>
date Sun, 22 Mar 2020 13:45:08 +0100
parents d16efe1407c1
children 5591829276ff
files src/testdir/test_vim9_script.vim src/version.c src/vim9execute.c
diffstat 3 files changed, 16 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -943,13 +943,20 @@ def Test_while_loop()
 enddef
 
 def Test_interrupt_loop()
+  let caught = false
   let x = 0
-  while 1
-    x += 1
-    if x == 100
-      feedkeys("\<C-C>", 'Lt')
-    endif
-  endwhile
+  try
+    while 1
+      x += 1
+      if x == 100
+        feedkeys("\<C-C>", 'Lt')
+      endif
+    endwhile
+  catch
+    caught = true
+    assert_equal(100, x)
+  endtry
+  assert_true(caught, 'should have caught an exception')
 enddef
 
 def Test_substitute_cmd()
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    424,
+/**/
     423,
 /**/
     422,
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -487,7 +487,7 @@ call_def_function(
 	{
 	    // Turn CTRL-C into an exception.
 	    got_int = FALSE;
-	    if (throw_exception("Vim:Interrupt", ET_INTERRUPT, NULL) != FAIL)
+	    if (throw_exception("Vim:Interrupt", ET_INTERRUPT, NULL) == FAIL)
 		goto failed;
 	    did_throw = TRUE;
 	}