vim-patch:8.2.2366: when using ":sleep" the cursor is always displayed

Problem:    When using ":sleep" the cursor is always displayed.
Solution:   Do not display the cursor when using ":sleep!". (Jeremy Lerner,
            closes vim/vim#7688)
e2edc2ed4a

Cursor showing/hiding is moved from core to TUI.
":sleep!" behaves the same as ":sleep".
This commit is contained in:
Jan Edmund Lazo
2021-01-16 21:07:25 -05:00
parent abcd982bf0
commit 6a01b3fcc3
4 changed files with 31 additions and 3 deletions

View File

@@ -2455,7 +2455,7 @@ module.cmds = {
},
{
command='sleep',
flags=bit.bor(RANGE, COUNT, EXTRA, TRLBAR, CMDWIN),
flags=bit.bor(BANG, RANGE, COUNT, EXTRA, TRLBAR, CMDWIN),
addr_type='ADDR_OTHER',
func='ex_sleep',
},

View File

@@ -0,0 +1,26 @@
" Test for sleep and sleep! commands
func! s:get_time_ms()
let timestr = reltimestr(reltime())
let dotidx = stridx(timestr, '.')
let sec = str2nr(timestr[:dotidx])
let msec = str2nr(timestr[dotidx + 1:])
return (sec * 1000) + (msec / 1000)
endfunc
func! s:assert_takes_longer(cmd, time_ms)
let start = s:get_time_ms()
execute a:cmd
let end = s:get_time_ms()
call assert_true(end - start >=# a:time_ms)
endfun
func! Test_sleep_bang()
call s:assert_takes_longer('sleep 50m', 50)
call s:assert_takes_longer('sleep! 50m', 50)
call s:assert_takes_longer('sl 50m', 50)
call s:assert_takes_longer('sl! 50m', 50)
call s:assert_takes_longer('1sleep', 1000)
endfunc
" vim: shiftwidth=2 sts=2 expandtab