annotate src/testdir/test_undo.vim @ 14455:f713e016097d v8.1.0241

patch 8.1.0241: effect of ":tabmove N" is not clear commit https://github.com/vim/vim/commit/7cc596547a582e7bc18d91312eb674906ebdc5c2 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Aug 7 13:14:46 2018 +0200 patch 8.1.0241: effect of ":tabmove N" is not clear Problem: Effect of ":tabmove N" is not clear. Solution: Add a test that shows the behavior. (Christian Brabandt, closes #3288)
author Christian Brabandt <cb@256bit.org>
date Tue, 07 Aug 2018 13:15:04 +0200
parents 9709d783261f
children 83a366325158
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for the undo tree.
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2 " Since this script is sourced we need to explicitly break changes up in
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 " undo-able pieces. Do that by setting 'undolevels'.
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4 " Also tests :earlier and :later.
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 func Test_undotree()
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
7 new
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
8
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
9 normal! Aabc
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 set ul=100
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
11 let d = undotree()
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
12 call assert_equal(1, d.seq_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
13 call assert_equal(1, d.seq_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
14 call assert_equal(0, d.save_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
15 call assert_equal(0, d.save_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
16 call assert_equal(1, len(d.entries))
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
17 call assert_equal(1, d.entries[0].newhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
18 call assert_equal(1, d.entries[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
19 call assert_true(d.entries[0].time <= d.time_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
20
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
21 normal! Adef
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 set ul=100
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
23 let d = undotree()
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
24 call assert_equal(2, d.seq_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
25 call assert_equal(2, d.seq_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
26 call assert_equal(0, d.save_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
27 call assert_equal(0, d.save_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
28 call assert_equal(2, len(d.entries))
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
29 call assert_equal(1, d.entries[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
30 call assert_equal(1, d.entries[1].newhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
31 call assert_equal(2, d.entries[1].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
32 call assert_true(d.entries[1].time <= d.time_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
33
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34 undo
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
35 set ul=100
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36 let d = undotree()
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
37 call assert_equal(2, d.seq_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
38 call assert_equal(1, d.seq_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
39 call assert_equal(0, d.save_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
40 call assert_equal(0, d.save_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
41 call assert_equal(2, len(d.entries))
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
42 call assert_equal(1, d.entries[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
43 call assert_equal(1, d.entries[1].curhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
44 call assert_equal(1, d.entries[1].newhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
45 call assert_equal(2, d.entries[1].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
46 call assert_true(d.entries[1].time == d.time_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
47
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
48 normal! Aghi
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
49 set ul=100
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
50 let d = undotree()
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
51 call assert_equal(3, d.seq_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
52 call assert_equal(3, d.seq_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
53 call assert_equal(0, d.save_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
54 call assert_equal(0, d.save_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
55 call assert_equal(2, len(d.entries))
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
56 call assert_equal(1, d.entries[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
57 call assert_equal(2, d.entries[1].alt[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
58 call assert_equal(1, d.entries[1].newhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
59 call assert_equal(3, d.entries[1].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
60 call assert_true(d.entries[1].time <= d.time_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
61
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
62 undo
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
63 set ul=100
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
64 let d = undotree()
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
65 call assert_equal(3, d.seq_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
66 call assert_equal(1, d.seq_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
67 call assert_equal(0, d.save_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
68 call assert_equal(0, d.save_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
69 call assert_equal(2, len(d.entries))
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
70 call assert_equal(1, d.entries[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
71 call assert_equal(2, d.entries[1].alt[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
72 call assert_equal(1, d.entries[1].curhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
73 call assert_equal(1, d.entries[1].newhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
74 call assert_equal(3, d.entries[1].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
75 call assert_true(d.entries[1].time == d.time_cur)
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
76
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
77 w! Xtest
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
78 let d = undotree()
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
79 call assert_equal(1, d.save_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
80 call assert_equal(1, d.save_last)
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
81 call delete('Xtest')
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
82 bwipe! Xtest
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
83 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
84
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
85 func FillBuffer()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
86 for i in range(1,13)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
87 put=i
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
88 " Set 'undolevels' to split undo.
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
89 exe "setg ul=" . &g:ul
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
90 endfor
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
91 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
92
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
93 func Test_global_local_undolevels()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
94 new one
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
95 set undolevels=5
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
96 call FillBuffer()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
97 " will only undo the last 5 changes, end up with 13 - (5 + 1) = 7 lines
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
98 earlier 10
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
99 call assert_equal(5, &g:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
100 call assert_equal(-123456, &l:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
101 call assert_equal('7', getline('$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
102
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
103 new two
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
104 setlocal undolevels=2
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
105 call FillBuffer()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
106 " will only undo the last 2 changes, end up with 13 - (2 + 1) = 10 lines
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
107 earlier 10
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
108 call assert_equal(5, &g:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
109 call assert_equal(2, &l:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
110 call assert_equal('10', getline('$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
111
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
112 setlocal ul=10
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
113 call assert_equal(5, &g:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
114 call assert_equal(10, &l:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
115
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
116 " Setting local value in "two" must not change local value in "one"
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
117 wincmd p
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
118 call assert_equal(5, &g:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
119 call assert_equal(-123456, &l:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
120
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
121 new three
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
122 setglobal ul=50
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
123 call assert_equal(50, &g:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
124 call assert_equal(-123456, &l:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
125
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
126 " Drop created windows
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
127 set ul&
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
128 new
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
129 only!
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
130 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
131
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
132 func BackOne(expected)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
133 call feedkeys('g-', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
134 call assert_equal(a:expected, getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
135 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
136
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
137 func Test_undo_del_chars()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
138 " Setup a buffer without creating undo entries
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
139 new
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
140 set ul=-1
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
141 call setline(1, ['123-456'])
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
142 set ul=100
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
143 1
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
144 call test_settime(100)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
145
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
146 " Delete three characters and undo with g-
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
147 call feedkeys('x', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
148 call feedkeys('x', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
149 call feedkeys('x', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
150 call assert_equal('-456', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
151 call BackOne('3-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
152 call BackOne('23-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
153 call BackOne('123-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
154 call assert_fails("BackOne('123-456')")
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
155
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
156 :" Delete three other characters and go back in time with g-
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
157 call feedkeys('$x', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
158 call feedkeys('x', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
159 call feedkeys('x', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
160 call assert_equal('123-', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
161 call test_settime(101)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
162
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
163 call BackOne('123-4')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
164 call BackOne('123-45')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
165 " skips '123-456' because it's older
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
166 call BackOne('-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
167 call BackOne('3-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
168 call BackOne('23-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
169 call BackOne('123-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
170 call assert_fails("BackOne('123-456')")
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
171 normal 10g+
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
172 call assert_equal('123-', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
173
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
174 :" Jump two seconds and go some seconds forward and backward
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
175 call test_settime(103)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
176 call feedkeys("Aa\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
177 call feedkeys("Ab\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
178 call feedkeys("Ac\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
179 call assert_equal('123-abc', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
180 earlier 1s
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
181 call assert_equal('123-', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
182 earlier 3s
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
183 call assert_equal('123-456', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
184 later 1s
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
185 call assert_equal('123-', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
186 later 1h
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
187 call assert_equal('123-abc', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
188
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
189 close!
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
190 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
191
10049
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
192 func Test_undolist()
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
193 new
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
194 set ul=100
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
195
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
196 let a = execute('undolist')
10049
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
197 call assert_equal("\nNothing to undo", a)
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
198
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
199 " 1 leaf (2 changes).
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
200 call feedkeys('achange1', 'xt')
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
201 call feedkeys('achange2', 'xt')
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
202 let a = execute('undolist')
10049
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
203 call assert_match("^\nnumber changes when *saved\n *2 *2 .*$", a)
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
204
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
205 " 2 leaves.
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
206 call feedkeys('u', 'xt')
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
207 call feedkeys('achange3\<Esc>', 'xt')
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
208 let a = execute('undolist')
10049
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
209 call assert_match("^\nnumber changes when *saved\n *2 *2 *.*\n *3 *2 .*$", a)
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
210 close!
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
211 endfunc
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
212
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
213 func Test_U_command()
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
214 new
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
215 set ul=100
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
216 call feedkeys("achange1\<Esc>", 'xt')
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
217 call feedkeys("achange2\<Esc>", 'xt')
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
218 norm! U
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
219 call assert_equal('', getline(1))
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
220 norm! U
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
221 call assert_equal('change1change2', getline(1))
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
222 close!
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
223 endfunc
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
224
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
225 func Test_undojoin()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
226 new
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
227 call feedkeys("Goaaaa\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
228 call feedkeys("obbbb\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
229 call assert_equal(['aaaa', 'bbbb'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
230 call feedkeys("u", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
231 call assert_equal(['aaaa'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
232 call feedkeys("obbbb\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
233 undojoin
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
234 " Note: next change must not be as if typed
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
235 call feedkeys("occcc\<Esc>", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
236 call assert_equal(['aaaa', 'bbbb', 'cccc'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
237 call feedkeys("u", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
238 call assert_equal(['aaaa'], getline(2, '$'))
10631
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
239 bwipe!
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
240 endfunc
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
241
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
242 func Test_undojoin_redo()
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
243 new
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
244 call setline(1, ['first line', 'second line'])
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
245 call feedkeys("ixx\<Esc>", 'xt')
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
246 call feedkeys(":undojoin | redo\<CR>", 'xt')
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
247 call assert_equal('xxfirst line', getline(1))
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
248 call assert_equal('second line', getline(2))
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
249 bwipe!
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
250 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
251
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
252 func Test_undo_write()
12779
73eb8a2d7f04 patch 8.0.1267: Test_swap_group may leave file behind
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
253 call delete('Xtest')
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
254 split Xtest
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
255 call feedkeys("ione one one\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
256 w!
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
257 call feedkeys("otwo\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
258 call feedkeys("otwo\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
259 w
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
260 call feedkeys("othree\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
261 call assert_equal(['one one one', 'two', 'two', 'three'], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
262 earlier 1f
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
263 call assert_equal(['one one one', 'two', 'two'], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
264 earlier 1f
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
265 call assert_equal(['one one one'], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
266 earlier 1f
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
267 call assert_equal([''], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
268 later 1f
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
269 call assert_equal(['one one one'], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
270 later 1f
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
271 call assert_equal(['one one one', 'two', 'two'], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
272 later 1f
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
273 call assert_equal(['one one one', 'two', 'two', 'three'], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
274
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
275 close!
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
276 call delete('Xtest')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
277 bwipe! Xtest
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
278 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
279
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
280 func Test_insert_expr()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
281 new
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
282 " calling setline() triggers undo sync
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
283 call feedkeys("oa\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
284 call feedkeys("ob\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
285 set ul=100
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
286 call feedkeys("o1\<Esc>a2\<C-R>=setline('.','1234')\<CR>\<CR>\<Esc>", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
287 call assert_equal(['a', 'b', '120', '34'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
288 call feedkeys("u", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
289 call assert_equal(['a', 'b', '12'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
290 call feedkeys("u", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
291 call assert_equal(['a', 'b'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
292
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
293 call feedkeys("oc\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
294 set ul=100
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
295 call feedkeys("o1\<Esc>a2\<C-R>=setline('.','1234')\<CR>\<CR>\<Esc>", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
296 call assert_equal(['a', 'b', 'c', '120', '34'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
297 call feedkeys("u", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
298 call assert_equal(['a', 'b', 'c', '12'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
299
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
300 call feedkeys("od\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
301 set ul=100
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
302 call feedkeys("o1\<Esc>a2\<C-R>=string(123)\<CR>\<Esc>", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
303 call assert_equal(['a', 'b', 'c', '12', 'd', '12123'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
304 call feedkeys("u", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
305 call assert_equal(['a', 'b', 'c', '12', 'd'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
306
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
307 close!
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
308 endfunc
10518
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
309
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
310 func Test_undofile_earlier()
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
311 " Issue #1254
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
312 " create undofile with timestamps older than Vim startup time.
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
313 let t0 = localtime() - 43200
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
314 call test_settime(t0)
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
315 new Xfile
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
316 call feedkeys("ione\<Esc>", 'xt')
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
317 set ul=100
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
318 call test_settime(t0 + 1)
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
319 call feedkeys("otwo\<Esc>", 'xt')
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
320 set ul=100
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
321 call test_settime(t0 + 2)
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
322 call feedkeys("othree\<Esc>", 'xt')
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
323 set ul=100
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
324 w
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
325 wundo Xundofile
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
326 bwipe!
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
327 " restore normal timestamps.
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
328 call test_settime(0)
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
329 new Xfile
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
330 rundo Xundofile
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
331 earlier 1d
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
332 call assert_equal('', getline(1))
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
333 bwipe!
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
334 call delete('Xfile')
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
335 call delete('Xundofile')
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
336 endfunc
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
337
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
338 " Test for undo working properly when executing commands from a register.
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
339 " Also test this in an empty buffer.
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
340 func Test_cmd_in_reg_undo()
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
341 enew!
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
342 let @a = "Ox\<Esc>jAy\<Esc>kdd"
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
343 edit +/^$ test_undo.vim
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
344 normal @au
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
345 call assert_equal(0, &modified)
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
346 return
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
347 new
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
348 normal @au
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
349 call assert_equal(0, &modified)
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
350 only!
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
351 let @a = ''
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
352 endfunc
13117
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
353
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
354 " This used to cause an illegal memory access
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
355 func Test_undo_append()
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
356 new
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
357 call feedkeys("axx\<Esc>v", 'xt')
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
358 undo
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
359 norm o
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
360 quit
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
361 endfunc
13134
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
362
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
363 func Test_undo_0()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
364 new
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
365 set ul=100
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
366 normal i1
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
367 undo
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
368 normal i2
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
369 undo
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
370 normal i3
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
371
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
372 undo 0
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
373 let d = undotree()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
374 call assert_equal('', getline(1))
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
375 call assert_equal(0, d.seq_cur)
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
376
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
377 redo
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
378 let d = undotree()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
379 call assert_equal('3', getline(1))
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
380 call assert_equal(3, d.seq_cur)
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
381
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
382 undo 2
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
383 undo 0
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
384 let d = undotree()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
385 call assert_equal('', getline(1))
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
386 call assert_equal(0, d.seq_cur)
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
387
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
388 redo
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
389 let d = undotree()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
390 call assert_equal('2', getline(1))
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
391 call assert_equal(2, d.seq_cur)
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
392
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
393 undo 1
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
394 undo 0
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
395 let d = undotree()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
396 call assert_equal('', getline(1))
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
397 call assert_equal(0, d.seq_cur)
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
398
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
399 redo
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
400 let d = undotree()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
401 call assert_equal('1', getline(1))
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
402 call assert_equal(1, d.seq_cur)
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
403
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
404 bwipe!
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
405 endfunc
13202
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
406
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
407 func Test_redo_empty_line()
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
408 new
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
409 exe "norm\x16r\x160"
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
410 exe "norm."
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
411 bwipe!
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
412 endfunc
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
413
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
414 funct Test_undofile()
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
415 " Test undofile() without setting 'undodir'.
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
416 if has('persistent_undo')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
417 call assert_equal(fnamemodify('.Xundofoo.un~', ':p'), undofile('Xundofoo'))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
418 else
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
419 call assert_equal('', undofile('Xundofoo'))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
420 endif
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
421 call assert_equal('', undofile(''))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
422
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
423 " Test undofile() with 'undodir' set to to an existing directory.
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
424 call mkdir('Xundodir')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
425 set undodir=Xundodir
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
426 let cwd = getcwd()
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
427 if has('win32')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
428 " Replace windows drive such as C:... into C%...
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
429 let cwd = substitute(cwd, '^\([A-Z]\):', '\1%', 'g')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
430 endif
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
431 let cwd = substitute(cwd . '/Xundofoo', '/', '%', 'g')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
432 if has('persistent_undo')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
433 call assert_equal('Xundodir/' . cwd, undofile('Xundofoo'))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
434 else
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
435 call assert_equal('', undofile('Xundofoo'))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
436 endif
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
437 call assert_equal('', undofile(''))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
438 call delete('Xundodir', 'd')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
439
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
440 " Test undofile() with 'undodir' set to a non-existing directory.
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
441 call assert_equal('', undofile('Xundofoo'))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
442
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
443 set undodir&
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
444 endfunc