changeset 29459:7a2569ab418e v9.0.0071

patch 9.0.0071: command overlaps with printed text in scrollback Commit: https://github.com/vim/vim/commit/ecdc82e74e6a7e73d9067ece1d5eac33abfde5ed Author: zeertzjq <zeertzjq@outlook.com> Date: Mon Jul 25 19:50:57 2022 +0100 patch 9.0.0071: command overlaps with printed text in scrollback Problem: Command overlaps with printed text in scrollback. Solution: Clear until end-of-line and use correct message chunk. (closes #10765, closes #10764)
author Bram Moolenaar <Bram@vim.org>
date Mon, 25 Jul 2022 21:00:03 +0200
parents 6e0dc8a96977
children 816e805436e9
files src/message.c src/testdir/test_messages.vim src/version.c
diffstat 3 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/message.c
+++ b/src/message.c
@@ -2595,6 +2595,7 @@ sb_text_start_cmdline(void)
 sb_text_end_cmdline(void)
 {
     do_clear_sb_text = SB_CLEAR_CMDLINE_DONE;
+    msg_sb_eol();
 }
 
 /*
@@ -2614,7 +2615,7 @@ clear_sb_text(int all)
     {
 	if (last_msgchunk == NULL)
 	    return;
-	lastp = &last_msgchunk->sb_prev;
+	lastp = &msg_sb_start(last_msgchunk)->sb_prev;
     }
 
     while (*lastp != NULL)
--- a/src/testdir/test_messages.vim
+++ b/src/testdir/test_messages.vim
@@ -233,7 +233,8 @@ func Test_message_more()
 
   " Up all the way with 'g'.
   call term_sendkeys(buf, 'g')
-  call WaitForAssert({-> assert_equal('  5 5', term_getline(buf, 5))})
+  call WaitForAssert({-> assert_equal('  4 4', term_getline(buf, 5))})
+  call WaitForAssert({-> assert_equal(':%p#', term_getline(buf, 1))})
   call WaitForAssert({-> assert_equal('-- More --', term_getline(buf, 6))})
 
   " All the way down. Pressing f should do nothing but pressing
--- a/src/version.c
+++ b/src/version.c
@@ -736,6 +736,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    71,
+/**/
     70,
 /**/
     69,