diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-06-06 16:22:46 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-06-06 16:22:46 +0100 |
commit | 3760bfddc414e4d3e1c4203db8c22e293cf08d09 (patch) | |
tree | 0fb8b02af50f9f58e863f477f07656e3aef01cb5 | |
parent | 44a3f3353e0407e9fffee138125a6927d1c9e7e5 (diff) | |
download | vim-git-3760bfddc414e4d3e1c4203db8c22e293cf08d09.tar.gz |
patch 8.2.5064: no test for what 8.1.0052 fixesv8.2.5064
Problem: No test for what 8.1.0052 fixes.
Solution: Add a test. (closes #10531)
-rw-r--r-- | src/getchar.c | 4 | ||||
-rw-r--r-- | src/testdir/test_mapping.vim | 30 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 34 insertions, 2 deletions
diff --git a/src/getchar.c b/src/getchar.c index 03d90ac87..2747423b1 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -3458,8 +3458,8 @@ vgetorpeek(int advance) * get a character: 3. from the user - get it */ if (typebuf.tb_len == 0) - // timedout may have been set while waiting for a mapping - // that has a <Nop> RHS. + // timedout may have been set if a mapping with empty RHS + // fully matched while longer mappings timed out. timedout = FALSE; if (advance) diff --git a/src/testdir/test_mapping.vim b/src/testdir/test_mapping.vim index 2b5613b88..ace6453f4 100644 --- a/src/testdir/test_mapping.vim +++ b/src/testdir/test_mapping.vim @@ -1685,4 +1685,34 @@ func Test_expr_map_escape_special() nunmap … 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 diff --git a/src/version.c b/src/version.c index dd585c81a..6bdc2541a 100644 --- a/src/version.c +++ b/src/version.c @@ -735,6 +735,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 5064, +/**/ 5063, /**/ 5062, |