summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-07-27 17:39:15 +0200
committerBram Moolenaar <Bram@vim.org>2019-07-27 17:39:15 +0200
commit298466629119eda501cfdf7824797f05045e67ca (patch)
tree44a6c3979fb2891d69246db76cf9bc1cc48c9e84
parent1417c766f55e5959b31da488417b7d9b141404af (diff)
downloadvim-git-298466629119eda501cfdf7824797f05045e67ca.tar.gz
patch 8.1.1757: text added with appendbufline() isn't displayedv8.1.1757
Problem: Text added with appendbufline() to another buffer isn't displayed. Solution: Update topline. (partly by Christian Brabandt, closes #4718)
-rw-r--r--src/evalfunc.c7
-rw-r--r--src/testdir/dumps/Test_appendbufline_1.dump10
-rw-r--r--src/testdir/test_bufline.vim26
-rw-r--r--src/version.c2
4 files changed, 39 insertions, 6 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 685e2f1e4..c0b6788c2 100644
--- 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)
diff --git a/src/testdir/dumps/Test_appendbufline_1.dump b/src/testdir/dumps/Test_appendbufline_1.dump
new file mode 100644
index 000000000..470256dfd
--- /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
diff --git a/src/testdir/test_bufline.vim b/src/testdir/test_bufline.vim
index dbcd2e0fd..eb46104a8 100644
--- 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
diff --git a/src/version.c b/src/version.c
index b036b3aae..5444c772a 100644
--- 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,