Patch 9.0.1279
Problem: Display shows lines scrolled down erroneously. (Yishai Lerner)
Solution: Do not change "wl_lnum" at index zero. (closes #11938)
Files: src/change.c, src/testdir/test_move.vim,
src/testdir/dumps/Test_move_undo_1.dump,
src/testdir/dumps/Test_move_undo_2.dump
*** ../vim-9.0.1278/src/change.c 2023-01-17 19:48:02.759310921 +0000
--- src/change.c 2023-02-04 13:53:32.492972951 +0000
***************
*** 611,617 ****
{
if (wp->w_lines[i].wl_lnum >= lnum)
{
! if (wp->w_lines[i].wl_lnum < lnume)
{
// line included in change
wp->w_lines[i].wl_valid = FALSE;
--- 611,619 ----
{
if (wp->w_lines[i].wl_lnum >= lnum)
{
! // Do not change wl_lnum at index zero, it is used to
! // compare with w_topline. Invalidate it instead.
! if (wp->w_lines[i].wl_lnum < lnume || i == 0)
{
// line included in change
wp->w_lines[i].wl_valid = FALSE;
*** ../vim-9.0.1278/src/testdir/test_move.vim 2020-09-04 20:11:04.000000000
+0100
--- src/testdir/test_move.vim 2023-02-04 13:56:31.572802520 +0000
***************
*** 1,5 ****
--- 1,8 ----
" Test the ":move" command.
+ source check.vim
+ source screendump.vim
+
func Test_move()
enew!
call append(0, ['line 1', 'line 2', 'line 3'])
***************
*** 43,46 ****
--- 46,70 ----
%bwipeout!
endfunc
+ func Test_move_undo()
+ CheckRunVimInTerminal
+
+ let lines =<< trim END
+ call setline(1, ['First', 'Second', 'Third', 'Fourth'])
+ END
+ call writefile(lines, 'Xtest_move_undo.vim', 'D')
+ let buf = RunVimInTerminal('-S Xtest_move_undo.vim', #{rows: 10, cols: 60,
statusoff: 2})
+
+ call term_sendkeys(buf, "gg:move +1\<CR>")
+ call VerifyScreenDump(buf, 'Test_move_undo_1', {})
+
+ " here the display would show the last few lines scrolled down
+ call term_sendkeys(buf, "u")
+ call term_sendkeys(buf, ":\<Esc>")
+ call VerifyScreenDump(buf, 'Test_move_undo_2', {})
+
+ call StopVimInTerminal(buf)
+ endfunc
+
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-9.0.1278/src/testdir/dumps/Test_move_undo_1.dump 2023-02-04
13:57:11.708764717 +0000
--- src/testdir/dumps/Test_move_undo_1.dump 2023-02-04 13:51:40.985080879
+0000
***************
*** 0 ****
--- 1,10 ----
+ |S+0&#ffffff0|e|c|o|n|d| @53
+ >F|i|r|s|t| @54
+ |T|h|i|r|d| @54
+ |F|o|u|r|t|h| @53
+ |~+0#4040ff13&| @58
+ |~| @58
+ |~| @58
+ |~| @58
+ |~| @58
+ |:+0#0000000&|m|o|v|e| |+|1| @33|2|,|1| @10|A|l@1|
*** ../vim-9.0.1278/src/testdir/dumps/Test_move_undo_2.dump 2023-02-04
13:57:11.712764713 +0000
--- src/testdir/dumps/Test_move_undo_2.dump 2023-02-04 13:51:42.137079755
+0000
***************
*** 0 ****
--- 1,10 ----
+ >F+0&#ffffff0|i|r|s|t| @54
+ |S|e|c|o|n|d| @53
+ |T|h|i|r|d| @54
+ |F|o|u|r|t|h| @53
+ |~+0#4040ff13&| @58
+ |~| @58
+ |~| @58
+ |~| @58
+ |~| @58
+ | +0#0000000&@41|1|,|1| @10|A|l@1|
*** ../vim-9.0.1278/src/version.c 2023-02-04 12:12:32.146272420 +0000
--- src/version.c 2023-02-04 13:44:46.909501345 +0000
***************
*** 697,698 ****
--- 697,700 ----
{ /* Add new patch number below this line */
+ /**/
+ 1279,
/**/
--
Do not trust atoms, they make up everything.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/20230204135822.A09CA1C0A8B%40moolenaar.net.