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)
|
call assert_equal('hello', g:val)
|
||||||
endfunc
|
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)
|
func FeedAndPeek(timer)
|
||||||
call test_feedinput('a')
|
call test_feedinput('a')
|
||||||
call getchar(1)
|
call getchar(1)
|
||||||
|
Loading…
Reference in New Issue
Block a user