diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-08-27 21:56:06 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-08-27 21:56:06 +0200 |
commit | d20070274c47668560e02db184e1f8e456c3c326 (patch) | |
tree | b63afa5a15e57fe459ba5da10249d195255f6d00 /src | |
parent | ea7a08a53ea0e8b4fe1592d9ae4d8f581fef46f8 (diff) | |
download | vim-git-d20070274c47668560e02db184e1f8e456c3c326.tar.gz |
patch 8.1.1932: ml_get errors after using append()v8.1.1932
Problem: Ml_get errors after using append(). (Alex Genco)
Solution: Do not update the cursor twice. (closes #1737)
Diffstat (limited to 'src')
-rw-r--r-- | src/evalfunc.c | 8 | ||||
-rw-r--r-- | src/testdir/test_functions.vim | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 18 insertions, 1 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index 498e87f0d..882bf0925 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -1440,8 +1440,14 @@ set_buffer_lines( tabpage_T *tp; appended_lines_mark(append_lnum, added); + + // Only adjust the cursor for buffers other than the current, unless it + // is the current window. For curbuf and other windows it has been + // done in mark_adjust_internal(). FOR_ALL_TAB_WINDOWS(tp, wp) - if (wp->w_buffer == buf && wp->w_cursor.lnum > append_lnum) + if (wp->w_buffer == buf + && (wp->w_buffer != curbuf || wp == curwin) + && wp->w_cursor.lnum > append_lnum) wp->w_cursor.lnum += added; check_cursor_col(); update_topline(); diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim index 027700be7..1352eaa5d 100644 --- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -705,6 +705,15 @@ func Test_mode() set complete& endfunc +func Test_append() + enew! + split + call append(0, ["foo"]) + split + only + undo +endfunc + func Test_getbufvar() let bnr = bufnr('%') let b:var_num = '1234' diff --git a/src/version.c b/src/version.c index 9c8ff7099..412ae926f 100644 --- a/src/version.c +++ b/src/version.c @@ -762,6 +762,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1932, +/**/ 1931, /**/ 1930, |