diff options
author | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-10-16 00:02:10 -0400 |
---|---|---|
committer | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-10-16 00:03:13 -0400 |
commit | 090008f3110fa48e7e09fefc950e60c384aff70d (patch) | |
tree | b7009faed1b1bc49f006c48ad3b72f60b7b4c1a3 | |
parent | 7d7691e85f2b6f74ffd7ab6394ebe27e4e07a031 (diff) | |
download | rneovim-090008f3110fa48e7e09fefc950e60c384aff70d.tar.gz rneovim-090008f3110fa48e7e09fefc950e60c384aff70d.tar.bz2 rneovim-090008f3110fa48e7e09fefc950e60c384aff70d.zip |
vim-patch:8.0.1067: try/catch in timer does not prevent it from being stopped
Problem: Using try/catch in timer does not prevent it from being stopped.
Solution: Reset the exception context and use did_emsg instead of
called_emsg.
https://github.com/vim/vim/commit/e723c42836d971180d1bf9f98916966c5543fff1
-rw-r--r-- | src/nvim/testdir/test_timers.vim | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_timers.vim b/src/nvim/testdir/test_timers.vim index 45e456b591..da61751bf4 100644 --- a/src/nvim/testdir/test_timers.vim +++ b/src/nvim/testdir/test_timers.vim @@ -189,6 +189,24 @@ func Test_input_in_timer() call assert_equal('hello', g:val) endfunc +func FuncWithCaughtError(timer) + let g:call_count += 1 + try + doesnotexist + catch + " nop + endtry +endfunc + +func Test_timer_catch_error() + let g:call_count = 0 + let timer = timer_start(10, 'FuncWithCaughtError', {'repeat': 4}) + " Timer will not be stopped. + call WaitFor('g:call_count == 4') + sleep 50m + call assert_equal(4, g:call_count) +endfunc + func FeedAndPeek(timer) call test_feedinput('a') call getchar(1) |