annotate src/testdir/test_bufline.vim @ 31160:eff0d98467e3 v9.0.0914

patch 9.0.0914: deletebufline() may move marks in the wrong window Commit: https://github.com/vim/vim/commit/228e422855d43965f2c3319ff0cdc26ea422c10f Author: zeertzjq <zeertzjq@outlook.com> Date: Sun Nov 20 11:13:17 2022 +0000 patch 9.0.0914: deletebufline() may move marks in the wrong window Problem: deletebufline() may move marks in the wrong window. Solution: Find a window for the buffer being changed. (closes https://github.com/vim/vim/issues/11583)
author Bram Moolenaar <Bram@vim.org>
date Sun, 20 Nov 2022 12:15:04 +0100
parents 4ba2890de10d
children 7831da568864
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14043
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
1 " Tests for setbufline(), getbufline(), appendbufline(), deletebufline()
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
12568
440d934bd616 patch 8.0.1162: shared script for tests cannot be included twice
Christian Brabandt <cb@256bit.org>
parents: 12351
diff changeset
3 source shared.vim
17518
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
4 source screendump.vim
17657
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17518
diff changeset
5 source check.vim
12351
4e61b77cd96f patch 8.0.1055: bufline test hangs on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12347
diff changeset
6
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 func Test_setbufline_getbufline()
23788
d12ef361d9de patch 8.2.2435: setline() gives an error for some types
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
8 " similar to Test_set_get_bufline()
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 new
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 let b = bufnr('%')
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 hide
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 call assert_equal(0, setbufline(b, 1, ['foo', 'bar']))
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 call assert_equal(['foo'], getbufline(b, 1))
16668
81be817c9d9a patch 8.1.1336: some eval functionality is not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 16368
diff changeset
14 call assert_equal(['bar'], getbufline(b, '$'))
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 call assert_equal(['foo', 'bar'], getbufline(b, 1, 2))
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 exe "bd!" b
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 call assert_equal([], getbufline(b, 1, 2))
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 split Xtest
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 call setline(1, ['a', 'b', 'c'])
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 let b = bufnr('%')
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 wincmd w
20120
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
23
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
24 call assert_equal(1, setbufline(b, 5, 'x'))
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 call assert_equal(1, setbufline(b, 5, ['x']))
31004
eb145a4d6bf8 patch 9.0.0837: append() reports failure when not appending anything
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
26 call assert_equal(0, setbufline(b, 5, []))
eb145a4d6bf8 patch 9.0.0837: append() reports failure when not appending anything
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
27 call assert_equal(0, setbufline(b, 5, test_null_list()))
20120
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
28
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
29 call assert_equal(1, 'x'->setbufline(bufnr('$') + 1, 1))
17994
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17857
diff changeset
30 call assert_equal(1, ['x']->setbufline(bufnr('$') + 1, 1))
20120
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
31 call assert_equal(1, []->setbufline(bufnr('$') + 1, 1))
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
32 call assert_equal(1, test_null_list()->setbufline(bufnr('$') + 1, 1))
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
33
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
34 call assert_equal(['a', 'b', 'c'], getbufline(b, 1, '$'))
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
35
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36 call assert_equal(0, setbufline(b, 4, ['d', 'e']))
17857
4935244c1128 patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17837
diff changeset
37 call assert_equal(['c'], b->getbufline(3))
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38 call assert_equal(['d'], getbufline(b, 4))
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
39 call assert_equal(['e'], getbufline(b, 5))
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
40 call assert_equal([], getbufline(b, 6))
20178
2fb397573541 patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents: 20120
diff changeset
41 call assert_equal([], getbufline(b, 2, 1))
23788
d12ef361d9de patch 8.2.2435: setline() gives an error for some types
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
42
23875
54b583156d53 patch 8.2.2479: set/getbufline test fails without the job feature
Bram Moolenaar <Bram@vim.org>
parents: 23788
diff changeset
43 if has('job')
54b583156d53 patch 8.2.2479: set/getbufline test fails without the job feature
Bram Moolenaar <Bram@vim.org>
parents: 23788
diff changeset
44 call setbufline(b, 2, [function('eval'), #{key: 123}, test_null_job()])
54b583156d53 patch 8.2.2479: set/getbufline test fails without the job feature
Bram Moolenaar <Bram@vim.org>
parents: 23788
diff changeset
45 call assert_equal(["function('eval')",
54b583156d53 patch 8.2.2479: set/getbufline test fails without the job feature
Bram Moolenaar <Bram@vim.org>
parents: 23788
diff changeset
46 \ "{'key': 123}",
54b583156d53 patch 8.2.2479: set/getbufline test fails without the job feature
Bram Moolenaar <Bram@vim.org>
parents: 23788
diff changeset
47 \ "no process"],
54b583156d53 patch 8.2.2479: set/getbufline test fails without the job feature
Bram Moolenaar <Bram@vim.org>
parents: 23788
diff changeset
48 \ getbufline(b, 2, 4))
54b583156d53 patch 8.2.2479: set/getbufline test fails without the job feature
Bram Moolenaar <Bram@vim.org>
parents: 23788
diff changeset
49 endif
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
50 exe "bwipe! " . b
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
51 endfunc
12347
61a9642297cc patch 8.0.1053: setline() does not work on startup
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
52
12794
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
53 func Test_setbufline_getbufline_fold()
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
54 split Xtest
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
55 setlocal foldmethod=expr foldexpr=0
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
56 let b = bufnr('%')
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
57 new
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
58 call assert_equal(0, setbufline(b, 1, ['foo', 'bar']))
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
59 call assert_equal(['foo'], getbufline(b, 1))
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
60 call assert_equal(['bar'], getbufline(b, 2))
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
61 call assert_equal(['foo', 'bar'], getbufline(b, 1, 2))
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
62 exe "bwipe!" b
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
63 bwipe!
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
64 endfunc
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
65
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
66 func Test_setbufline_getbufline_fold_tab()
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
67 split Xtest
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
68 setlocal foldmethod=expr foldexpr=0
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
69 let b = bufnr('%')
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
70 tab new
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
71 call assert_equal(0, setbufline(b, 1, ['foo', 'bar']))
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
72 call assert_equal(['foo'], getbufline(b, 1))
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
73 call assert_equal(['bar'], getbufline(b, 2))
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
74 call assert_equal(['foo', 'bar'], getbufline(b, 1, 2))
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
75 exe "bwipe!" b
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
76 bwipe!
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
77 endfunc
d4fc8a7dc7d9 patch 8.0.1274: setbufline() fails when using folding
Christian Brabandt <cb@256bit.org>
parents: 12568
diff changeset
78
12347
61a9642297cc patch 8.0.1053: setline() does not work on startup
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
79 func Test_setline_startup()
61a9642297cc patch 8.0.1053: setline() does not work on startup
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
80 let cmd = GetVimCommand('Xscript')
61a9642297cc patch 8.0.1053: setline() does not work on startup
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
81 if cmd == ''
61a9642297cc patch 8.0.1053: setline() does not work on startup
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
82 return
61a9642297cc patch 8.0.1053: setline() does not work on startup
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
83 endif
30110
ba5ca7c7d44c patch 9.0.0391: using separate delete() call instead of writefile() 'D' flag
Bram Moolenaar <Bram@vim.org>
parents: 29875
diff changeset
84 call writefile(['call setline(1, "Hello")', 'silent w Xtest', 'q!'], 'Xscript', 'D')
12347
61a9642297cc patch 8.0.1053: setline() does not work on startup
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
85 call system(cmd)
30158
008808e60963 patch 9.0.0415: on MS-Windows some tests are flaky
Bram Moolenaar <Bram@vim.org>
parents: 30110
diff changeset
86 sleep 50m
12347
61a9642297cc patch 8.0.1053: setline() does not work on startup
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
87 call assert_equal(['Hello'], readfile('Xtest'))
61a9642297cc patch 8.0.1053: setline() does not work on startup
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
88
31004
eb145a4d6bf8 patch 9.0.0837: append() reports failure when not appending anything
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
89 call assert_equal(0, setline(1, []))
eb145a4d6bf8 patch 9.0.0837: append() reports failure when not appending anything
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
90 call assert_equal(0, setline(1, test_null_list()))
eb145a4d6bf8 patch 9.0.0837: append() reports failure when not appending anything
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
91 call assert_equal(0, setline(5, []))
eb145a4d6bf8 patch 9.0.0837: append() reports failure when not appending anything
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
92 call assert_equal(0, setline(6, test_null_list()))
eb145a4d6bf8 patch 9.0.0837: append() reports failure when not appending anything
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
93
12347
61a9642297cc patch 8.0.1053: setline() does not work on startup
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
94 call delete('Xtest')
61a9642297cc patch 8.0.1053: setline() does not work on startup
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
95 endfunc
14039
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
96
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
97 func Test_appendbufline()
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
98 new
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
99 let b = bufnr('%')
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
100 hide
31160
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
101
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
102 new
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
103 call setline(1, ['line1', 'line2', 'line3'])
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
104 normal! 2gggg
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
105 call assert_equal(2, line("''"))
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
106
14039
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
107 call assert_equal(0, appendbufline(b, 0, ['foo', 'bar']))
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
108 call assert_equal(['foo'], getbufline(b, 1))
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
109 call assert_equal(['bar'], getbufline(b, 2))
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
110 call assert_equal(['foo', 'bar'], getbufline(b, 1, 2))
31160
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
111 call assert_equal(0, appendbufline(b, 0, 'baz'))
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
112 call assert_equal(['baz', 'foo', 'bar'], getbufline(b, 1, 3))
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
113
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
114 " appendbufline() in a hidden buffer shouldn't move marks in current window.
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
115 call assert_equal(2, line("''"))
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
116 bwipe!
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
117
14039
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
118 exe "bd!" b
31160
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
119 call assert_equal([], getbufline(b, 1, 3))
14039
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
120
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
121 split Xtest
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
122 call setline(1, ['a', 'b', 'c'])
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
123 let b = bufnr('%')
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
124 wincmd w
20120
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
125
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
126 call assert_equal(1, appendbufline(b, -1, 'x'))
16668
81be817c9d9a patch 8.1.1336: some eval functionality is not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 16368
diff changeset
127 call assert_equal(1, appendbufline(b, -1, ['x']))
20120
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
128 call assert_equal(1, appendbufline(b, -1, []))
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
129 call assert_equal(1, appendbufline(b, -1, test_null_list()))
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
130
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
131 call assert_equal(1, appendbufline(b, 4, 'x'))
14039
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
132 call assert_equal(1, appendbufline(b, 4, ['x']))
31004
eb145a4d6bf8 patch 9.0.0837: append() reports failure when not appending anything
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
133 call assert_equal(0, appendbufline(b, 4, []))
eb145a4d6bf8 patch 9.0.0837: append() reports failure when not appending anything
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
134 call assert_equal(0, appendbufline(b, 4, test_null_list()))
20120
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
135
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
136 call assert_equal(1, appendbufline(1234, 1, 'x'))
14039
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
137 call assert_equal(1, appendbufline(1234, 1, ['x']))
20120
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
138 call assert_equal(1, appendbufline(1234, 1, []))
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
139 call assert_equal(1, appendbufline(1234, 1, test_null_list()))
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
140
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
141 call assert_equal(0, appendbufline(b, 1, []))
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
142 call assert_equal(0, appendbufline(b, 1, test_null_list()))
31004
eb145a4d6bf8 patch 9.0.0837: append() reports failure when not appending anything
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
143 call assert_equal(0, appendbufline(b, 3, []))
eb145a4d6bf8 patch 9.0.0837: append() reports failure when not appending anything
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
144 call assert_equal(0, appendbufline(b, 3, test_null_list()))
20120
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
145
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
146 call assert_equal(['a', 'b', 'c'], getbufline(b, 1, '$'))
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
147
14039
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
148 call assert_equal(0, appendbufline(b, 3, ['d', 'e']))
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
149 call assert_equal(['c'], getbufline(b, 3))
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
150 call assert_equal(['d'], getbufline(b, 4))
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
151 call assert_equal(['e'], getbufline(b, 5))
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
152 call assert_equal([], getbufline(b, 6))
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
153 exe "bwipe! " . b
acb2dc112b06 patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents: 12794
diff changeset
154 endfunc
14043
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
155
14826
75d474a8868a patch 8.1.0425: ml_get error and crash with appendbufline()
Christian Brabandt <cb@256bit.org>
parents: 14043
diff changeset
156 func Test_appendbufline_no_E315()
16720
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
157 let after =<< trim [CODE]
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
158 set stl=%f ls=2
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
159 new
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
160 let buf = bufnr("%")
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
161 quit
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
162 vsp
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
163 exec "buffer" buf
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
164 wincmd w
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
165 call appendbufline(buf, 0, "abc")
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
166 redraw
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
167 while getbufline(buf, 1)[0] =~ "^\\s*$"
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
168 sleep 10m
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
169 endwhile
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
170 au VimLeavePre * call writefile([v:errmsg], "Xerror")
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
171 au VimLeavePre * call writefile(["done"], "Xdone")
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
172 qall!
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
173 [CODE]
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16668
diff changeset
174
14826
75d474a8868a patch 8.1.0425: ml_get error and crash with appendbufline()
Christian Brabandt <cb@256bit.org>
parents: 14043
diff changeset
175 if !RunVim([], after, '--clean')
75d474a8868a patch 8.1.0425: ml_get error and crash with appendbufline()
Christian Brabandt <cb@256bit.org>
parents: 14043
diff changeset
176 return
75d474a8868a patch 8.1.0425: ml_get error and crash with appendbufline()
Christian Brabandt <cb@256bit.org>
parents: 14043
diff changeset
177 endif
75d474a8868a patch 8.1.0425: ml_get error and crash with appendbufline()
Christian Brabandt <cb@256bit.org>
parents: 14043
diff changeset
178 call assert_notmatch("^E315:", readfile("Xerror")[0])
75d474a8868a patch 8.1.0425: ml_get error and crash with appendbufline()
Christian Brabandt <cb@256bit.org>
parents: 14043
diff changeset
179 call assert_equal("done", readfile("Xdone")[0])
75d474a8868a patch 8.1.0425: ml_get error and crash with appendbufline()
Christian Brabandt <cb@256bit.org>
parents: 14043
diff changeset
180 call delete("Xerror")
75d474a8868a patch 8.1.0425: ml_get error and crash with appendbufline()
Christian Brabandt <cb@256bit.org>
parents: 14043
diff changeset
181 call delete("Xdone")
75d474a8868a patch 8.1.0425: ml_get error and crash with appendbufline()
Christian Brabandt <cb@256bit.org>
parents: 14043
diff changeset
182 endfunc
75d474a8868a patch 8.1.0425: ml_get error and crash with appendbufline()
Christian Brabandt <cb@256bit.org>
parents: 14043
diff changeset
183
14043
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
184 func Test_deletebufline()
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
185 new
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
186 let b = bufnr('%')
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
187 call setline(1, ['aaa', 'bbb', 'ccc'])
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
188 hide
31160
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
189
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
190 new
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
191 call setline(1, ['line1', 'line2', 'line3'])
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
192 normal! 2gggg
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
193 call assert_equal(2, line("''"))
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
194
14043
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
195 call assert_equal(0, deletebufline(b, 2))
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
196 call assert_equal(['aaa', 'ccc'], getbufline(b, 1, 2))
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
197 call assert_equal(0, deletebufline(b, 2, 8))
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
198 call assert_equal(['aaa'], getbufline(b, 1, 2))
31160
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
199
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
200 " deletebufline() in a hidden buffer shouldn't move marks in current window.
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
201 call assert_equal(2, line("''"))
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
202 bwipe!
eff0d98467e3 patch 9.0.0914: deletebufline() may move marks in the wrong window
Bram Moolenaar <Bram@vim.org>
parents: 31012
diff changeset
203
14043
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
204 exe "bd!" b
17837
f71ee7b04f0b patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17825
diff changeset
205 call assert_equal(1, b->deletebufline(1))
14043
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
206
16668
81be817c9d9a patch 8.1.1336: some eval functionality is not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 16368
diff changeset
207 call assert_equal(1, deletebufline(-1, 1))
81be817c9d9a patch 8.1.1336: some eval functionality is not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 16368
diff changeset
208
14043
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
209 split Xtest
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
210 call setline(1, ['a', 'b', 'c'])
16668
81be817c9d9a patch 8.1.1336: some eval functionality is not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 16368
diff changeset
211 call cursor(line('$'), 1)
14043
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
212 let b = bufnr('%')
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
213 wincmd w
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
214 call assert_equal(1, deletebufline(b, 4))
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
215 call assert_equal(0, deletebufline(b, 1))
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
216 call assert_equal(['b', 'c'], getbufline(b, 1, 2))
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
217 exe "bwipe! " . b
23893
a433d0070c45 patch 8.2.2489: current buffer is wrong after deletebufline() fails
Bram Moolenaar <Bram@vim.org>
parents: 23875
diff changeset
218
a433d0070c45 patch 8.2.2489: current buffer is wrong after deletebufline() fails
Bram Moolenaar <Bram@vim.org>
parents: 23875
diff changeset
219 edit XbufOne
a433d0070c45 patch 8.2.2489: current buffer is wrong after deletebufline() fails
Bram Moolenaar <Bram@vim.org>
parents: 23875
diff changeset
220 let one = bufnr()
a433d0070c45 patch 8.2.2489: current buffer is wrong after deletebufline() fails
Bram Moolenaar <Bram@vim.org>
parents: 23875
diff changeset
221 call setline(1, ['a', 'b', 'c'])
a433d0070c45 patch 8.2.2489: current buffer is wrong after deletebufline() fails
Bram Moolenaar <Bram@vim.org>
parents: 23875
diff changeset
222 setlocal nomodifiable
a433d0070c45 patch 8.2.2489: current buffer is wrong after deletebufline() fails
Bram Moolenaar <Bram@vim.org>
parents: 23875
diff changeset
223 split XbufTwo
a433d0070c45 patch 8.2.2489: current buffer is wrong after deletebufline() fails
Bram Moolenaar <Bram@vim.org>
parents: 23875
diff changeset
224 let two = bufnr()
a433d0070c45 patch 8.2.2489: current buffer is wrong after deletebufline() fails
Bram Moolenaar <Bram@vim.org>
parents: 23875
diff changeset
225 call assert_fails('call deletebufline(one, 1)', 'E21:')
a433d0070c45 patch 8.2.2489: current buffer is wrong after deletebufline() fails
Bram Moolenaar <Bram@vim.org>
parents: 23875
diff changeset
226 call assert_equal(two, bufnr())
a433d0070c45 patch 8.2.2489: current buffer is wrong after deletebufline() fails
Bram Moolenaar <Bram@vim.org>
parents: 23875
diff changeset
227 bwipe! XbufTwo
a433d0070c45 patch 8.2.2489: current buffer is wrong after deletebufline() fails
Bram Moolenaar <Bram@vim.org>
parents: 23875
diff changeset
228 bwipe! XbufOne
14043
cbad3b3f46b2 patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents: 14039
diff changeset
229 endfunc
17518
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
230
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
231 func Test_appendbufline_redraw()
17657
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17518
diff changeset
232 CheckScreendump
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17518
diff changeset
233
17518
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
234 let lines =<< trim END
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
235 new foo
17825
ce993ba17adb patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
236 let winnr = 'foo'->bufwinnr()
ce993ba17adb patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
237 let buf = bufnr('foo')
17518
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
238 wincmd p
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
239 call appendbufline(buf, '$', range(1,200))
17825
ce993ba17adb patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
240 exe winnr .. 'wincmd w'
17518
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
241 norm! G
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
242 wincmd p
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
243 call deletebufline(buf, 1, '$')
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
244 call appendbufline(buf, '$', 'Hello Vim world...')
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
245 END
30110
ba5ca7c7d44c patch 9.0.0391: using separate delete() call instead of writefile() 'D' flag
Bram Moolenaar <Bram@vim.org>
parents: 29875
diff changeset
246 call writefile(lines, 'XscriptMatchCommon', 'D')
17518
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
247 let buf = RunVimInTerminal('-S XscriptMatchCommon', #{rows: 10})
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
248 call VerifyScreenDump(buf, 'Test_appendbufline_1', {})
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
249
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
250 call StopVimInTerminal(buf)
bfc5a2962f38 patch 8.1.1757: text added with appendbufline() isn't displayed
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
251 endfunc
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
252
28948
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
253 func Test_setbufline_select_mode()
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
254 new
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
255 call setline(1, ['foo', 'bar'])
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
256 call feedkeys("j^v2l\<C-G>", 'nx')
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
257
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
258 let bufnr = bufadd('Xdummy')
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
259 call bufload(bufnr)
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
260 call setbufline(bufnr, 1, ['abc'])
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
261
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
262 call feedkeys("x", 'nx')
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
263 call assert_equal(['foo', 'x'], getline(1, 2))
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
264
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
265 exe "bwipe! " .. bufnr
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
266 bwipe!
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
267 endfunc
b907d4a36318 patch 8.2.4996: setbufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 27626
diff changeset
268
28960
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
269 func Test_deletebufline_select_mode()
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
270 new
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
271 call setline(1, ['foo', 'bar'])
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
272 call feedkeys("j^v2l\<C-G>", 'nx')
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
273
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
274 let bufnr = bufadd('Xdummy')
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
275 call bufload(bufnr)
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
276 call setbufline(bufnr, 1, ['abc', 'def'])
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
277 call deletebufline(bufnr, 1)
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
278
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
279 call feedkeys("x", 'nx')
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
280 call assert_equal(['foo', 'x'], getline(1, 2))
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
281
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
282 exe "bwipe! " .. bufnr
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
283 bwipe!
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
284 endfunc
8207581dd068 patch 8.2.5002: deletebufline() may change Visual selection
Bram Moolenaar <Bram@vim.org>
parents: 28948
diff changeset
285
29875
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
286 func Test_setbufline_startup_nofile()
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
287 let before =<< trim [CODE]
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
288 set shortmess+=F
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
289 file Xresult
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
290 set buftype=nofile
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
291 call setbufline('', 1, 'success')
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
292 [CODE]
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
293 let after =<< trim [CODE]
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
294 set buftype=
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
295 write
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
296 quit
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
297 [CODE]
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
298
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
299 if !RunVim(before, after, '--clean')
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
300 return
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
301 endif
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
302 call assert_equal(['success'], readfile('Xresult'))
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
303 call delete('Xresult')
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
304 endfunc
cb4d95b545f1 patch 9.0.0276: 'buftype' values not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 28960
diff changeset
305
31012
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
306 " Test that setbufline(), appendbufline() and deletebufline() should fail and
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
307 " return 1 when "textlock" is active.
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
308 func Test_change_bufline_with_textlock()
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
309 new
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
310 inoremap <buffer> <expr> <F2> setbufline('', 1, '')
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
311 call assert_fails("normal a\<F2>", 'E565:')
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
312 call assert_equal('1', getline(1))
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
313 inoremap <buffer> <expr> <F2> appendbufline('', 1, '')
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
314 call assert_fails("normal a\<F2>", 'E565:')
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
315 call assert_equal('11', getline(1))
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
316 inoremap <buffer> <expr> <F2> deletebufline('', 1)
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
317 call assert_fails("normal a\<F2>", 'E565:')
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
318 call assert_equal('111', getline(1))
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
319 bwipe!
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
320 endfunc
4ba2890de10d patch 9.0.0841: deletebufline() does not always return 1 on failure
Bram Moolenaar <Bram@vim.org>
parents: 31004
diff changeset
321
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
322 " vim: shiftwidth=2 sts=2 expandtab