diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2023-06-02 08:48:49 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-02 08:48:49 +0800 |
| commit | 9f3c4c152664b21593636a59ce21e74ab7000b20 (patch) | |
| tree | 7e169b08d198fe6f4b0115c9c130aebdff89af9f /test | |
| parent | a0375b68c1803e7453071a20b28249020abe7260 (diff) | |
| download | rneovim-9f3c4c152664b21593636a59ce21e74ab7000b20.tar.gz rneovim-9f3c4c152664b21593636a59ce21e74ab7000b20.tar.bz2 rneovim-9f3c4c152664b21593636a59ce21e74ab7000b20.zip | |
vim-patch:9.0.1597: cursor ends up below the window after a put (#23873)
Problem: Cursor ends up below the window after a put.
Solution: Mark w_crow and w_botline invalid when changing the cursor line.
(closes vim/vim#12465)
https://github.com/vim/vim/commit/8509014adda188ee8bdf6a2e123fbf15a91b29d2
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'test')
| -rw-r--r-- | test/functional/legacy/put_spec.lua | 25 | ||||
| -rw-r--r-- | test/old/testdir/test_put.vim | 18 |
2 files changed, 43 insertions, 0 deletions
diff --git a/test/functional/legacy/put_spec.lua b/test/functional/legacy/put_spec.lua index e83fde774a..4a42a1c8a3 100644 --- a/test/functional/legacy/put_spec.lua +++ b/test/functional/legacy/put_spec.lua @@ -70,4 +70,29 @@ describe('put', function() | ]]) end) + + -- oldtest: Test_put_in_last_displayed_line() + it('in last displayed line', function() + local screen = Screen.new(75, 10) + screen:attach() + source([[ + autocmd CursorMoved * eval line('w$') + let @a = 'x'->repeat(&columns * 2 - 2) + eval range(&lines)->setline(1) + call feedkeys('G"ap') + ]]) + + screen:expect([[ + 2 | + 3 | + 4 | + 5 | + 6 | + 7 | + 8 | + 9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx^x | + | + ]]) + end) end) diff --git a/test/old/testdir/test_put.vim b/test/old/testdir/test_put.vim index 212a979b4a..6c4bd28386 100644 --- a/test/old/testdir/test_put.vim +++ b/test/old/testdir/test_put.vim @@ -266,5 +266,23 @@ func Test_put_other_window() call StopVimInTerminal(buf) endfunc +func Test_put_in_last_displayed_line() + CheckRunVimInTerminal + + let lines =<< trim END + vim9script + autocmd CursorMoved * eval line('w$') + @a = 'x'->repeat(&columns * 2 - 2) + range(&lines)->setline(1) + feedkeys('G"ap') + END + call writefile(lines, 'Xtest_put_last_line', 'D') + let buf = RunVimInTerminal('-S Xtest_put_last_line', #{rows: 10}) + + call VerifyScreenDump(buf, 'Test_put_in_last_displayed_line_1', {}) + + call StopVimInTerminal(buf) +endfunc + " vim: shiftwidth=2 sts=2 expandtab |