vim-patch:8.2.3768: timer_info() has the wrong repeat value in a timer callback

Problem:    timer_info() has the wrong repeat value in a timer callback.
Solution:   Do not add one to the repeat value when in the callback.
            (closes vim/vim#9294)

95b2dd0c00

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
zeertzjq 2023-04-25 21:52:27 +08:00
parent 255e547e18
commit cc6845db94

View File

@ -94,6 +94,13 @@ func Test_timer_info()
call assert_equal([], timer_info(id)) call assert_equal([], timer_info(id))
call assert_fails('call timer_info("abc")', 'E39:') call assert_fails('call timer_info("abc")', 'E39:')
" check repeat count inside the callback
let g:timer_repeat = []
let tid = timer_start(10, {tid -> execute("call add(g:timer_repeat, timer_info(tid)[0].repeat)")}, #{repeat: 3})
sleep 100m
call assert_equal([2, 1, 0], g:timer_repeat)
unlet g:timer_repeat
endfunc endfunc
func Test_timer_stopall() func Test_timer_stopall()