diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-03-22 13:44:28 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-03-22 13:44:28 +0100 |
commit | 97acfc781bdb7fa2838dc6e0e7f9952ea61bb2fd (patch) | |
tree | 41197a3b39753aae79e6a91fd2396c413a2ebf6b | |
parent | ce436de5a9b94886baf023b3d22193cc68d0e9d1 (diff) | |
download | vim-git-97acfc781bdb7fa2838dc6e0e7f9952ea61bb2fd.tar.gz |
patch 8.2.0424: checking for wrong return valuev8.2.0424
Problem: Checking for wrong return value. (Tom)
Solution: Invert the check and fix the test.
-rw-r--r-- | src/testdir/test_vim9_script.vim | 19 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9execute.c | 2 |
3 files changed, 16 insertions, 7 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index c83012176..9157a1d49 100644 --- 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() diff --git a/src/version.c b/src/version.c index 198c42adf..166c1d488 100644 --- 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, diff --git a/src/vim9execute.c b/src/vim9execute.c index 33b6430a5..9f829d69f 100644 --- 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; } |