mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
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.
e723c42836
This commit is contained in:
parent
7d7691e85f
commit
090008f311
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user