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:
Jan Edmund Lazo 2018-10-16 00:02:10 -04:00
parent 7d7691e85f
commit 090008f311

View File

@ -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)