aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-07-26 07:30:33 +0800
committerGitHub <noreply@github.com>2022-07-26 07:30:33 +0800
commitfe159d23fdcc0e93d454bdfdb80e05e2941d7f07 (patch)
tree4af297ea380165a44f2404ed601f50424a310111 /src
parent3ded2ab55a1d894234163f82ced026e1423c9915 (diff)
downloadrneovim-fe159d23fdcc0e93d454bdfdb80e05e2941d7f07.tar.gz
rneovim-fe159d23fdcc0e93d454bdfdb80e05e2941d7f07.tar.bz2
rneovim-fe159d23fdcc0e93d454bdfdb80e05e2941d7f07.zip
vim-patch:9.0.0071: command overlaps with printed text in scrollback (#19505)
Problem: Command overlaps with printed text in scrollback. Solution: Clear until end-of-line and use correct message chunk. (closes vim/vim#10765, closes vim/vim#10764) https://github.com/vim/vim/commit/ecdc82e74e6a7e73d9067ece1d5eac33abfde5ed N/A patches for version.c: vim-patch:9.0.0070: using utfc_ptr2char_len() when length is negative Problem: Using utfc_ptr2char_len() when length is negative. Solution: Check value of length. (closes vim/vim#10760) https://github.com/vim/vim/commit/4dc513a22c017b3061287deac74fa55f70a3214c
Diffstat (limited to 'src')
-rw-r--r--src/nvim/message.c3
-rw-r--r--src/nvim/testdir/test_messages.vim3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/nvim/message.c b/src/nvim/message.c
index 2c96613bb3..3a6c690ff6 100644
--- a/src/nvim/message.c
+++ b/src/nvim/message.c
@@ -2548,6 +2548,7 @@ void sb_text_start_cmdline(void)
void sb_text_end_cmdline(void)
{
do_clear_sb_text = SB_CLEAR_CMDLINE_DONE;
+ msg_sb_eol();
}
/// Clear any text remembered for scrolling back.
@@ -2564,7 +2565,7 @@ void 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) {
diff --git a/src/nvim/testdir/test_messages.vim b/src/nvim/testdir/test_messages.vim
index 5670368936..4be5a1b076 100644
--- a/src/nvim/testdir/test_messages.vim
+++ b/src/nvim/testdir/test_messages.vim
@@ -175,7 +175,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