diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-09-08 15:27:21 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-09-08 15:27:21 +0200 |
commit | 4544bd2f247425c9dd743c76618dd70f53c72538 (patch) | |
tree | 9940de2ec12998f428a1d4fdb048c610f66895a9 /src/testdir | |
parent | fca068b977b1dc07b269e8c3e0ff7aa638357eff (diff) | |
download | vim-git-4544bd2f247425c9dd743c76618dd70f53c72538.tar.gz |
patch 8.1.2008: error for invalid range when using listener and undov8.1.2008
Problem: Error for invalid range when using listener and undo. (Paul Jolly)
Solution: Do not change the cursor before the lines are restored.
(closes #4908)
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test_listener.vim | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/testdir/test_listener.vim b/src/testdir/test_listener.vim index 3aadeaa96..8c265be2d 100644 --- a/src/testdir/test_listener.vim +++ b/src/testdir/test_listener.vim @@ -234,7 +234,7 @@ func Test_listener_garbage_collect() new let id = listener_add(function('MyListener', [{}]), bufnr('')) call test_garbagecollect_now() - " must not crach caused by invalid memory access + " must not crash caused by invalid memory access normal ia call assert_true(v:true) @@ -268,3 +268,25 @@ func Test_listener_caches_buffer_line() iunmap <CR> set nocindent endfunc + +" Verify the fix for issue #4908 +func Test_listener_undo_line_number() + function DoIt() + " NOP + endfunction + function EchoChanges(bufnr, start, end, added, changes) + call DoIt() + endfunction + + new + let lid = listener_add("EchoChanges") + call setline(1, ['a', 'b', 'c']) + set undolevels& " start new undo block + call feedkeys("ggcG\<Esc>", 'xt') + undo + + bwipe! + delfunc DoIt + delfunc EchoChanges + call listener_remove(lid) +endfunc |