From 2b6bdbc69780817bf3ef2e00b8ff0c0b8decba9e Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 23 Jan 2026 19:11:28 +0000 Subject: [PATCH] patch 9.1.2105: tests: not enough tests for using plain_vgetc() Problem: Not enough tests for using plain_vgetc(). Solution: Add tests for using plain_vgetc() during various commands. (zeertzjq) closes: #19236 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- src/testdir/test_input.vim | 50 ++++++++++++++++++++++++++++++++++++++ src/version.c | 2 ++ 2 files changed, 52 insertions(+) diff --git a/src/testdir/test_input.vim b/src/testdir/test_input.vim index 3b1e2eb2df..46f5858aeb 100644 --- a/src/testdir/test_input.vim +++ b/src/testdir/test_input.vim @@ -58,4 +58,54 @@ func Test_input_simplify_timedout() bw! endfunc +" Check that and are no-op in the middle of various +" commands as they are ignored by plain_vgetc(). +func Test_input_noop_keys() + for key in ["\", "\"] + 20new + setlocal scrolloff=0 + + let lines = range(1, 100)->mapnew({_, n -> $'line {n}'}) + call setline(1, lines) + let InsertNoopKeys = {s -> key .. split(s, '\zs')->join(key) .. key} + + call feedkeys(InsertNoopKeys("60z\\\"), 'tnix') + call assert_equal(60, line('w0')) + call assert_equal('line 60', getline('.')) + + call feedkeys(InsertNoopKeys("gg20ddi\x5F\"), 'tnix') + call assert_equal(80, line('$')) + call assert_equal('_line 21', getline('.')) + + call feedkeys(InsertNoopKeys("fea\,.\\"), 'tnix') + call assert_equal('_line… 21', getline('.')) + + call feedkeys(InsertNoopKeys("Iabcde\ufghij\u"), 'tnix') + call assert_equal('abcde_line… 21', getline('.')) + call feedkeys("\$2Feg~tj", 'tnix') + call assert_equal('abcdEFGHIj_line… 21', getline('.')) + + let @g = 'FOO' + call feedkeys(InsertNoopKeys("A\g\\g\"), 'tnix') + call assert_equal('abcdEFGHIj_line… 21FOOFOO', getline('.')) + + call feedkeys(InsertNoopKeys("0v10l\\g?!!\"), 'tnix') + call assert_equal('abcdEFGHIj_', @g) + call assert_equal('?!!line… 21FOOFOO', getline('.')) + + let @g = 'BAR' + call feedkeys(InsertNoopKeys("$:\"abc\\\\"), 'tnix') + call assert_equal('"abc21FOOFOO', @:) + call feedkeys(InsertNoopKeys(":\e'\"foo'\\g\"), 'tnix') + call assert_equal('"fooBAR', @:) + + call feedkeys(InsertNoopKeys("z10\"), 'tnix') + call assert_equal(10, winheight(0)) + call feedkeys(InsertNoopKeys("\10+"), 'tnix') + call assert_equal(20, winheight(0)) + + bwipe! + endfor +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 30c54f9f23..1852977ac8 100644 --- a/src/version.c +++ b/src/version.c @@ -734,6 +734,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2105, /**/ 2104, /**/ -- 2.47.3