0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.3952: first line not redrawn when adding lines to an empty buffer

Problem:    First line not redrawn when adding lines to an empty buffer.
Solution:   Adjust the argument to appended_lines(). (closes #9439,
            closes #9438)
This commit is contained in:
zeertzjq 2021-12-31 12:19:22 +00:00 committed by Bram Moolenaar
parent 04fb916684
commit 1fa3de1ce8
3 changed files with 51 additions and 1 deletions

View File

@ -3359,7 +3359,11 @@ ex_append(exarg_T *eap)
did_undo = TRUE;
ml_append(lnum, theline, (colnr_T)0, FALSE);
appended_lines_mark(lnum + (empty ? 1 : 0), 1L);
if (empty)
// there are no marks below the inserted lines
appended_lines(lnum, 1L);
else
appended_lines_mark(lnum, 1L);
vim_free(theline);
++lnum;

View File

@ -1,6 +1,8 @@
" Tests for various Ex commands.
source check.vim
source shared.vim
source term_util.vim
func Test_ex_delete()
new
@ -128,6 +130,27 @@ func Test_append_cmd()
close!
endfunc
func Test_append_cmd_empty_buf()
CheckRunVimInTerminal
let lines =<< trim END
func Timer(timer)
append
aaaaa
bbbbb
.
endfunc
call timer_start(10, 'Timer')
END
call writefile(lines, 'Xtest_append_cmd_empty_buf')
let buf = RunVimInTerminal('-S Xtest_append_cmd_empty_buf', {'rows': 6})
call WaitForAssert({-> assert_equal('bbbbb', term_getline(buf, 2))})
call WaitForAssert({-> assert_equal('aaaaa', term_getline(buf, 1))})
" clean up
call StopVimInTerminal(buf)
call delete('Xtest_append_cmd_empty_buf')
endfunc
" Test for the :insert command
func Test_insert_cmd()
new
@ -156,6 +179,27 @@ func Test_insert_cmd()
close!
endfunc
func Test_insert_cmd_empty_buf()
CheckRunVimInTerminal
let lines =<< trim END
func Timer(timer)
insert
aaaaa
bbbbb
.
endfunc
call timer_start(10, 'Timer')
END
call writefile(lines, 'Xtest_insert_cmd_empty_buf')
let buf = RunVimInTerminal('-S Xtest_insert_cmd_empty_buf', {'rows': 6})
call WaitForAssert({-> assert_equal('bbbbb', term_getline(buf, 2))})
call WaitForAssert({-> assert_equal('aaaaa', term_getline(buf, 1))})
" clean up
call StopVimInTerminal(buf)
call delete('Xtest_insert_cmd_empty_buf')
endfunc
" Test for the :change command
func Test_change_cmd()
new

View File

@ -749,6 +749,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
3952,
/**/
3951,
/**/