aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Edmund Lazo <janedmundlazo@hotmail.com>2018-08-09 13:23:04 -0400
committerJan Edmund Lazo <janedmundlazo@hotmail.com>2018-08-09 13:30:42 -0400
commit4e963f24621a31feb0d27146714b3e00fbcb1676 (patch)
tree95715d3d862a30802212ae9a73d0d53e479d60e4 /src
parentcb7bdf5f920df089adab8a74d2522440ad2d1490 (diff)
downloadrneovim-4e963f24621a31feb0d27146714b3e00fbcb1676.tar.gz
rneovim-4e963f24621a31feb0d27146714b3e00fbcb1676.tar.bz2
rneovim-4e963f24621a31feb0d27146714b3e00fbcb1676.zip
vim-patch:8.0.1290: seq_cur of undotree() wrong after undo
Problem: seq_cur of undotree() wrong after undo. Solution: Get the actual sequence number instead of decrementing the current one. (Ozaki Kiichi, closes vim/vim#2319) https://github.com/vim/vim/commit/80eaddd3a0bc47cb14168964678420cfe03a2502
Diffstat (limited to 'src')
-rw-r--r--src/nvim/testdir/test_undo.vim78
1 files changed, 69 insertions, 9 deletions
diff --git a/src/nvim/testdir/test_undo.vim b/src/nvim/testdir/test_undo.vim
index 2bc6073d52..38610f8002 100644
--- a/src/nvim/testdir/test_undo.vim
+++ b/src/nvim/testdir/test_undo.vim
@@ -4,22 +4,82 @@
" Also tests :earlier and :later.
func Test_undotree()
- exe "normal Aabc\<Esc>"
+ new
+
+ normal! Aabc
+ set ul=100
+ let d = undotree()
+ call assert_equal(1, d.seq_last)
+ call assert_equal(1, d.seq_cur)
+ call assert_equal(0, d.save_last)
+ call assert_equal(0, d.save_cur)
+ call assert_equal(1, len(d.entries))
+ call assert_equal(1, d.entries[0].newhead)
+ call assert_equal(1, d.entries[0].seq)
+ call assert_true(d.entries[0].time <= d.time_cur)
+
+ normal! Adef
+ set ul=100
+ let d = undotree()
+ call assert_equal(2, d.seq_last)
+ call assert_equal(2, d.seq_cur)
+ call assert_equal(0, d.save_last)
+ call assert_equal(0, d.save_cur)
+ call assert_equal(2, len(d.entries))
+ call assert_equal(1, d.entries[0].seq)
+ call assert_equal(1, d.entries[1].newhead)
+ call assert_equal(2, d.entries[1].seq)
+ call assert_true(d.entries[1].time <= d.time_cur)
+
+ undo
set ul=100
- exe "normal Adef\<Esc>"
+ let d = undotree()
+ call assert_equal(2, d.seq_last)
+ call assert_equal(1, d.seq_cur)
+ call assert_equal(0, d.save_last)
+ call assert_equal(0, d.save_cur)
+ call assert_equal(2, len(d.entries))
+ call assert_equal(1, d.entries[0].seq)
+ call assert_equal(1, d.entries[1].curhead)
+ call assert_equal(1, d.entries[1].newhead)
+ call assert_equal(2, d.entries[1].seq)
+ call assert_true(d.entries[1].time == d.time_cur)
+
+ normal! Aghi
set ul=100
+ let d = undotree()
+ call assert_equal(3, d.seq_last)
+ call assert_equal(3, d.seq_cur)
+ call assert_equal(0, d.save_last)
+ call assert_equal(0, d.save_cur)
+ call assert_equal(2, len(d.entries))
+ call assert_equal(1, d.entries[0].seq)
+ call assert_equal(2, d.entries[1].alt[0].seq)
+ call assert_equal(1, d.entries[1].newhead)
+ call assert_equal(3, d.entries[1].seq)
+ call assert_true(d.entries[1].time <= d.time_cur)
+
undo
+ set ul=100
let d = undotree()
- call assert_true(d.seq_last > 0)
- call assert_true(d.seq_cur > 0)
- call assert_true(d.seq_cur < d.seq_last)
- call assert_true(len(d.entries) > 0)
- " TODO: check more members of d
+ call assert_equal(3, d.seq_last)
+ call assert_equal(1, d.seq_cur)
+ call assert_equal(0, d.save_last)
+ call assert_equal(0, d.save_cur)
+ call assert_equal(2, len(d.entries))
+ call assert_equal(1, d.entries[0].seq)
+ call assert_equal(2, d.entries[1].alt[0].seq)
+ call assert_equal(1, d.entries[1].curhead)
+ call assert_equal(1, d.entries[1].newhead)
+ call assert_equal(3, d.entries[1].seq)
+ call assert_true(d.entries[1].time == d.time_cur)
w! Xtest
- call assert_equal(d.save_last + 1, undotree().save_last)
+ let d = undotree()
+ call assert_equal(1, d.save_cur)
+ call assert_equal(1, d.save_last)
call delete('Xtest')
- bwipe Xtest
+ bwipe! Xtest
endfunc
func FillBuffer()