diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-08-24 14:02:51 -0400 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-08-24 14:04:20 -0400 |
commit | 4fedef51b0bdb641432422b93dd5f3886f3e4283 (patch) | |
tree | 3ff61b67df832de5bd6fb6a0af7ce7bcf27ea9a5 | |
parent | 34e416667378a610943f614b97da9b865d622806 (diff) | |
download | rneovim-4fedef51b0bdb641432422b93dd5f3886f3e4283.tar.gz rneovim-4fedef51b0bdb641432422b93dd5f3886f3e4283.tar.bz2 rneovim-4fedef51b0bdb641432422b93dd5f3886f3e4283.zip |
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 vim/vim#4718)
https://github.com/vim/vim/commit/298466629119eda501cfdf7824797f05045e67ca
-rw-r--r-- | src/nvim/eval.c | 1 | ||||
-rw-r--r-- | src/nvim/testdir/test_bufline.vim | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 1570af07d7..0a884fdca2 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -15194,6 +15194,7 @@ static void set_buffer_lines(buf_T *buf, linenr_T lnum_arg, bool append, } } check_cursor_col(); + update_topline(); } if (!is_curbuf) { diff --git a/src/nvim/testdir/test_bufline.vim b/src/nvim/testdir/test_bufline.vim index 1f83e8b776..a924ce0002 100644 --- a/src/nvim/testdir/test_bufline.vim +++ b/src/nvim/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 @@ -112,3 +113,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 |