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:
@@ -1401,12 +1401,7 @@ set_buffer_lines(
|
|||||||
if (wp->w_buffer == buf && wp->w_cursor.lnum > append_lnum)
|
if (wp->w_buffer == buf && wp->w_cursor.lnum > append_lnum)
|
||||||
wp->w_cursor.lnum += added;
|
wp->w_cursor.lnum += added;
|
||||||
check_cursor_col();
|
check_cursor_col();
|
||||||
|
update_topline();
|
||||||
#ifdef FEAT_JOB_CHANNEL
|
|
||||||
if (bt_prompt(curbuf) && (State & INSERT))
|
|
||||||
// show the line with the prompt
|
|
||||||
update_topline();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_curbuf)
|
if (!is_curbuf)
|
||||||
|
10
src/testdir/dumps/Test_appendbufline_1.dump
Normal file
10
src/testdir/dumps/Test_appendbufline_1.dump
Normal 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
|
@@ -1,6 +1,7 @@
|
|||||||
" Tests for setbufline(), getbufline(), appendbufline(), deletebufline()
|
" Tests for setbufline(), getbufline(), appendbufline(), deletebufline()
|
||||||
|
|
||||||
source shared.vim
|
source shared.vim
|
||||||
|
source screendump.vim
|
||||||
|
|
||||||
func Test_setbufline_getbufline()
|
func Test_setbufline_getbufline()
|
||||||
new
|
new
|
||||||
@@ -144,3 +145,28 @@ func Test_deletebufline()
|
|||||||
call assert_equal(['b', 'c'], getbufline(b, 1, 2))
|
call assert_equal(['b', 'c'], getbufline(b, 1, 2))
|
||||||
exe "bwipe! " . b
|
exe "bwipe! " . b
|
||||||
endfunc
|
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
|
||||||
|
@@ -777,6 +777,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1757,
|
||||||
/**/
|
/**/
|
||||||
1756,
|
1756,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user