0
0
mirror of https://github.com/vim/vim.git synced 2025-09-26 04:04:07 -04:00

patch 8.2.5064: no test for what 8.1.0052 fixes

Problem:    No test for what 8.1.0052 fixes.
Solution:   Add a test. (closes #10531)
This commit is contained in:
zeertzjq
2022-06-06 16:22:46 +01:00
committed by Bram Moolenaar
parent 44a3f3353e
commit 3760bfddc4
3 changed files with 34 additions and 2 deletions

View File

@@ -3458,8 +3458,8 @@ vgetorpeek(int advance)
* get a character: 3. from the user - get it * get a character: 3. from the user - get it
*/ */
if (typebuf.tb_len == 0) if (typebuf.tb_len == 0)
// timedout may have been set while waiting for a mapping // timedout may have been set if a mapping with empty RHS
// that has a <Nop> RHS. // fully matched while longer mappings timed out.
timedout = FALSE; timedout = FALSE;
if (advance) if (advance)

View File

@@ -1685,4 +1685,34 @@ func Test_expr_map_escape_special()
nunmap nunmap
endfunc endfunc
" Testing for mapping after an <Nop> mapping is triggered on timeout.
" Test for what patch 8.1.0052 fixes.
func Test_map_after_timed_out_nop()
CheckRunVimInTerminal
let lines =<< trim END
set timeout timeoutlen=400
inoremap ab TEST
inoremap a <Nop>
END
call writefile(lines, 'Xtest_map_after_timed_out_nop')
let buf = RunVimInTerminal('-S Xtest_map_after_timed_out_nop', #{rows: 6})
" Enter Insert mode
call term_sendkeys(buf, 'i')
" Wait for the "a" mapping to timeout
call term_sendkeys(buf, 'a')
call term_wait(buf, 500)
" Send "a" and wait for a period shorter than 'timeoutlen'
call term_sendkeys(buf, 'a')
call term_wait(buf, 100)
" Send "b", should trigger the "ab" mapping
call term_sendkeys(buf, 'b')
call WaitForAssert({-> assert_equal("TEST", term_getline(buf, 1))})
" clean up
call StopVimInTerminal(buf)
call delete('Xtest_map_after_timed_out_nop')
endfunc
" vim: shiftwidth=2 sts=2 expandtab " vim: shiftwidth=2 sts=2 expandtab

View File

@@ -734,6 +734,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
5064,
/**/ /**/
5063, 5063,
/**/ /**/