1
0
forked from aniani/vim

patch 8.1.1757: text added with appendbufline() isn't displayed

Problem:    Text added with appendbufline() to another buffer isn't displayed.
Solution:   Update topline. (partly by Christian Brabandt, closes #4718)
This commit is contained in:
Bram Moolenaar 2019-07-27 17:39:15 +02:00
parent 1417c766f5
commit 2984666291
4 changed files with 39 additions and 6 deletions

View File

@ -1401,12 +1401,7 @@ set_buffer_lines(
if (wp->w_buffer == buf && wp->w_cursor.lnum > append_lnum)
wp->w_cursor.lnum += added;
check_cursor_col();
#ifdef FEAT_JOB_CHANNEL
if (bt_prompt(curbuf) && (State & INSERT))
// show the line with the prompt
update_topline();
#endif
update_topline();
}
if (!is_curbuf)

View File

@ -0,0 +1,10 @@
| +0&#ffffff0@74
|H|e|l@1|o| |V|i|m| |w|o|r|l|d|.@2| @56
|~+0#4040ff13&| @73
|~| @73
|f+1#0000000&|o@1| |[|+|]| @49|1|,|0|-|1| @9|A|l@1
> +0&&@74
|~+0#4040ff13&| @73
|~| @73
|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1
|-+0&&@1|N|o| |l|i|n|e|s| |i|n| |b|u|f@1|e|r|-@1| @52

View File

@ -1,6 +1,7 @@
" Tests for setbufline(), getbufline(), appendbufline(), deletebufline()
source shared.vim
source screendump.vim
func Test_setbufline_getbufline()
new
@ -144,3 +145,28 @@ func Test_deletebufline()
call assert_equal(['b', 'c'], getbufline(b, 1, 2))
exe "bwipe! " . b
endfunc
func Test_appendbufline_redraw()
if !CanRunVimInTerminal()
throw 'Skipped: cannot make screendumps'
endif
let lines =<< trim END
new foo
let winnr=bufwinnr('foo')
let buf=bufnr('foo')
wincmd p
call appendbufline(buf, '$', range(1,200))
exe winnr. 'wincmd w'
norm! G
wincmd p
call deletebufline(buf, 1, '$')
call appendbufline(buf, '$', 'Hello Vim world...')
END
call writefile(lines, 'XscriptMatchCommon')
let buf = RunVimInTerminal('-S XscriptMatchCommon', #{rows: 10})
call term_wait(buf)
call VerifyScreenDump(buf, 'Test_appendbufline_1', {})
call StopVimInTerminal(buf)
call delete('XscriptMatchCommon')
endfunc

View File

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