changeset 17518:bfc5a2962f38 v8.1.1757

patch 8.1.1757: text added with appendbufline() isn't displayed commit https://github.com/vim/vim/commit/298466629119eda501cfdf7824797f05045e67ca Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jul 27 17:39:15 2019 +0200 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 https://github.com/vim/vim/issues/4718)
author Bram Moolenaar <Bram@vim.org>
date Sat, 27 Jul 2019 17:45:08 +0200
parents 965cea692a12
children 88eefa30af20
files src/evalfunc.c src/testdir/dumps/Test_appendbufline_1.dump src/testdir/test_bufline.vim src/version.c
diffstat 4 files changed, 39 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -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)
new file mode 100644
--- /dev/null
+++ b/src/testdir/dumps/Test_appendbufline_1.dump
@@ -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
--- a/src/testdir/test_bufline.vim
+++ b/src/testdir/test_bufline.vim
@@ -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
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1757,
+/**/
     1756,
 /**/
     1755,