1fabaf753SBram Moolenaar" Tests for various eval things.
2fabaf753SBram Moolenaar
32b6ef856SBram Moolenaarsource view_util.vim
42b6ef856SBram Moolenaar
5fabaf753SBram Moolenaarfunction s:foo() abort
6fabaf753SBram Moolenaar  try
7fabaf753SBram Moolenaar    return [] == 0
8fabaf753SBram Moolenaar  catch
9fabaf753SBram Moolenaar    return 1
10fabaf753SBram Moolenaar  endtry
11fabaf753SBram Moolenaarendfunction
12fabaf753SBram Moolenaar
13fabaf753SBram Moolenaarfunc Test_catch_return_with_error()
14fabaf753SBram Moolenaar  call assert_equal(1, s:foo())
15fabaf753SBram Moolenaarendfunc
162be57331SBram Moolenaar
172be57331SBram Moolenaarfunc Test_nocatch_restore_silent_emsg()
182be57331SBram Moolenaar  silent! try
192be57331SBram Moolenaar    throw 1
202be57331SBram Moolenaar  catch
212be57331SBram Moolenaar  endtry
222b6ef856SBram Moolenaar  echoerr 'wrong again'
232b6ef856SBram Moolenaar  call assert_equal('wrong again', ScreenLine(&lines))
242be57331SBram Moolenaarendfunc
2578a16b0fSBram Moolenaar
2678a16b0fSBram Moolenaarfunc Test_mkdir_p()
2778a16b0fSBram Moolenaar  call mkdir('Xmkdir/nested', 'p')
2878a16b0fSBram Moolenaar  call assert_true(isdirectory('Xmkdir/nested'))
2978a16b0fSBram Moolenaar  try
3078a16b0fSBram Moolenaar    " Trying to make existing directories doesn't error
3178a16b0fSBram Moolenaar    call mkdir('Xmkdir', 'p')
3278a16b0fSBram Moolenaar    call mkdir('Xmkdir/nested', 'p')
3378a16b0fSBram Moolenaar  catch /E739:/
3478a16b0fSBram Moolenaar    call assert_report('mkdir(..., "p") failed for an existing directory')
3578a16b0fSBram Moolenaar  endtry
3678a16b0fSBram Moolenaar  " 'p' doesn't suppress real errors
3778a16b0fSBram Moolenaar  call writefile([], 'Xfile')
38*e2e4075fSBram Moolenaar  call assert_fails('call mkdir("Xfile", "p")', 'E739:')
3978a16b0fSBram Moolenaar  call delete('Xfile')
4078a16b0fSBram Moolenaar  call delete('Xmkdir', 'rf')
4192b83ccfSBram Moolenaar  call assert_equal(0, mkdir(test_null_string()))
42*e2e4075fSBram Moolenaar  call assert_fails('call mkdir([])', 'E730:')
43*e2e4075fSBram Moolenaar  call assert_fails('call mkdir("abc", [], [])', 'E745:')
4478a16b0fSBram Moolenaarendfunc
4567f8ab82SBram Moolenaar
4667f8ab82SBram Moolenaarfunc Test_line_continuation()
4767f8ab82SBram Moolenaar  let array = [5,
4867f8ab82SBram Moolenaar	"\ ignore this
4967f8ab82SBram Moolenaar	\ 6,
5067f8ab82SBram Moolenaar	"\ more to ignore
5167f8ab82SBram Moolenaar	"\ more moreto ignore
5267f8ab82SBram Moolenaar	\ ]
5367f8ab82SBram Moolenaar	"\ and some more
5467f8ab82SBram Moolenaar  call assert_equal([5, 6], array)
5567f8ab82SBram Moolenaarendfunc
5688b53fd0SBram Moolenaar
5788b53fd0SBram Moolenaarfunc Test_E963()
5888b53fd0SBram Moolenaar  " These commands used to cause an internal error prior to vim 8.1.0563
5988b53fd0SBram Moolenaar  let v_e = v:errors
6088b53fd0SBram Moolenaar  let v_o = v:oldfiles
6188b53fd0SBram Moolenaar  call assert_fails("let v:errors=''", 'E963:')
6288b53fd0SBram Moolenaar  call assert_equal(v_e, v:errors)
6388b53fd0SBram Moolenaar  call assert_fails("let v:oldfiles=''", 'E963:')
6488b53fd0SBram Moolenaar  call assert_equal(v_o, v:oldfiles)
6588b53fd0SBram Moolenaarendfunc
66c0f5a78cSBram Moolenaar
67c0f5a78cSBram Moolenaarfunc Test_for_invalid()
68c0f5a78cSBram Moolenaar  call assert_fails("for x in 99", 'E714:')
69c0f5a78cSBram Moolenaar  call assert_fails("for x in 'asdf'", 'E714:')
70c0f5a78cSBram Moolenaar  call assert_fails("for x in {'a': 9}", 'E714:')
71c0f5a78cSBram Moolenaarendfunc
7205500eceSBram Moolenaar
7305500eceSBram Moolenaarfunc Test_readfile_binary()
7405500eceSBram Moolenaar  new
7505500eceSBram Moolenaar  call setline(1, ['one', 'two', 'three'])
7605500eceSBram Moolenaar  setlocal ff=dos
771b04ce2dSBram Moolenaar  silent write XReadfile_bin
781b04ce2dSBram Moolenaar  let lines = 'XReadfile_bin'->readfile()
7905500eceSBram Moolenaar  call assert_equal(['one', 'two', 'three'], lines)
801b04ce2dSBram Moolenaar  let lines = readfile('XReadfile_bin', '', 2)
8105500eceSBram Moolenaar  call assert_equal(['one', 'two'], lines)
821b04ce2dSBram Moolenaar  let lines = readfile('XReadfile_bin', 'b')
8305500eceSBram Moolenaar  call assert_equal(["one\r", "two\r", "three\r", ""], lines)
841b04ce2dSBram Moolenaar  let lines = readfile('XReadfile_bin', 'b', 2)
8505500eceSBram Moolenaar  call assert_equal(["one\r", "two\r"], lines)
8605500eceSBram Moolenaar
8705500eceSBram Moolenaar  bwipe!
881b04ce2dSBram Moolenaar  call delete('XReadfile_bin')
891b04ce2dSBram Moolenaarendfunc
901b04ce2dSBram Moolenaar
911b04ce2dSBram Moolenaarfunc Test_readfile_bom()
921b04ce2dSBram Moolenaar  call writefile(["\ufeffFOO", "FOO\ufeffBAR"], 'XReadfile_bom')
931b04ce2dSBram Moolenaar  call assert_equal(['FOO', 'FOOBAR'], readfile('XReadfile_bom'))
941b04ce2dSBram Moolenaar  call delete('XReadfile_bom')
951b04ce2dSBram Moolenaarendfunc
961b04ce2dSBram Moolenaar
971b04ce2dSBram Moolenaarfunc Test_readfile_max()
981b04ce2dSBram Moolenaar  call writefile(range(1, 4), 'XReadfile_max')
991b04ce2dSBram Moolenaar  call assert_equal(['1', '2'], readfile('XReadfile_max', '', 2))
1001b04ce2dSBram Moolenaar  call assert_equal(['3', '4'], readfile('XReadfile_max', '', -2))
1011b04ce2dSBram Moolenaar  call delete('XReadfile_max')
10205500eceSBram Moolenaarendfunc
1034b9e91f0SBram Moolenaar
1044b9e91f0SBram Moolenaarfunc Test_let_errmsg()
1054b9e91f0SBram Moolenaar  call assert_fails('let v:errmsg = []', 'E730:')
1064b9e91f0SBram Moolenaar  let v:errmsg = ''
1074b9e91f0SBram Moolenaar  call assert_fails('let v:errmsg = []', 'E730:')
1084b9e91f0SBram Moolenaar  let v:errmsg = ''
1094b9e91f0SBram Moolenaarendfunc
1100f248b00SBram Moolenaar
1110f248b00SBram Moolenaarfunc Test_string_concatenation()
1120f248b00SBram Moolenaar  call assert_equal('ab', 'a'.'b')
1130f248b00SBram Moolenaar  call assert_equal('ab', 'a' .'b')
1140f248b00SBram Moolenaar  call assert_equal('ab', 'a'. 'b')
1150f248b00SBram Moolenaar  call assert_equal('ab', 'a' . 'b')
1160f248b00SBram Moolenaar
1170f248b00SBram Moolenaar  call assert_equal('ab', 'a'..'b')
1180f248b00SBram Moolenaar  call assert_equal('ab', 'a' ..'b')
1190f248b00SBram Moolenaar  call assert_equal('ab', 'a'.. 'b')
1200f248b00SBram Moolenaar  call assert_equal('ab', 'a' .. 'b')
1210f248b00SBram Moolenaar
1220f248b00SBram Moolenaar  let a = 'a'
1230f248b00SBram Moolenaar  let b = 'b'
1240f248b00SBram Moolenaar  let a .= b
1250f248b00SBram Moolenaar  call assert_equal('ab', a)
1260f248b00SBram Moolenaar
1270f248b00SBram Moolenaar  let a = 'a'
1280f248b00SBram Moolenaar  let a.=b
1290f248b00SBram Moolenaar  call assert_equal('ab', a)
1300f248b00SBram Moolenaar
1310f248b00SBram Moolenaar  let a = 'a'
1320f248b00SBram Moolenaar  let a ..= b
1330f248b00SBram Moolenaar  call assert_equal('ab', a)
1340f248b00SBram Moolenaar
1350f248b00SBram Moolenaar  let a = 'a'
1360f248b00SBram Moolenaar  let a..=b
1370f248b00SBram Moolenaar  call assert_equal('ab', a)
1382e086612SBram Moolenaar
1392e086612SBram Moolenaar  if has('float')
1402e086612SBram Moolenaar    let a = 'A'
1412e086612SBram Moolenaar    let b = 1.234
1422e086612SBram Moolenaar    call assert_fails('echo a .. b', 'E806:')
1432e086612SBram Moolenaar  endif
1440f248b00SBram Moolenaarendfunc
145558ca4aeSBram Moolenaar
14660a8de28SBram Moolenaar" Test fix for issue #4507
14760a8de28SBram Moolenaarfunc Test_skip_after_throw()
14860a8de28SBram Moolenaar  try
14960a8de28SBram Moolenaar    throw 'something'
15060a8de28SBram Moolenaar    let x = wincol() || &ts
15160a8de28SBram Moolenaar  catch /something/
15260a8de28SBram Moolenaar  endtry
15360a8de28SBram Moolenaarendfunc
15460a8de28SBram Moolenaar
155558ca4aeSBram Moolenaarscriptversion 2
156558ca4aeSBram Moolenaarfunc Test_string_concat_scriptversion2()
15793a4879cSBram Moolenaar  call assert_true(has('vimscript-2'))
158558ca4aeSBram Moolenaar  let a = 'a'
159558ca4aeSBram Moolenaar  let b = 'b'
160558ca4aeSBram Moolenaar
161558ca4aeSBram Moolenaar  call assert_fails('echo a . b', 'E15:')
162558ca4aeSBram Moolenaar  call assert_fails('let a .= b', 'E985:')
163558ca4aeSBram Moolenaar  call assert_fails('let vers = 1.2.3', 'E15:')
164558ca4aeSBram Moolenaar
165558ca4aeSBram Moolenaar  if has('float')
166558ca4aeSBram Moolenaar    let f = .5
167558ca4aeSBram Moolenaar    call assert_equal(0.5, f)
168558ca4aeSBram Moolenaar  endif
169558ca4aeSBram Moolenaarendfunc
170558ca4aeSBram Moolenaar
171558ca4aeSBram Moolenaarscriptversion 1
172558ca4aeSBram Moolenaarfunc Test_string_concat_scriptversion1()
17393a4879cSBram Moolenaar  call assert_true(has('vimscript-1'))
174558ca4aeSBram Moolenaar  let a = 'a'
175558ca4aeSBram Moolenaar  let b = 'b'
176558ca4aeSBram Moolenaar
177558ca4aeSBram Moolenaar  echo a . b
178558ca4aeSBram Moolenaar  let a .= b
179558ca4aeSBram Moolenaar  let vers = 1.2.3
180558ca4aeSBram Moolenaar  call assert_equal('123', vers)
181558ca4aeSBram Moolenaar
182558ca4aeSBram Moolenaar  if has('float')
183558ca4aeSBram Moolenaar    call assert_fails('let f = .5', 'E15:')
184558ca4aeSBram Moolenaar  endif
185558ca4aeSBram Moolenaarendfunc
186558ca4aeSBram Moolenaar
187d2e716e6SBram Moolenaarscriptversion 3
188d2e716e6SBram Moolenaarfunc Test_vvar_scriptversion3()
18993a4879cSBram Moolenaar  call assert_true(has('vimscript-3'))
190d2e716e6SBram Moolenaar  call assert_fails('echo version', 'E121:')
191d2e716e6SBram Moolenaar  call assert_false(exists('version'))
192d2e716e6SBram Moolenaar  let version = 1
193d2e716e6SBram Moolenaar  call assert_equal(1, version)
194d2e716e6SBram Moolenaarendfunc
195d2e716e6SBram Moolenaar
196d2e716e6SBram Moolenaarscriptversion 2
197d2e716e6SBram Moolenaarfunc Test_vvar_scriptversion2()
198d2e716e6SBram Moolenaar  call assert_true(exists('version'))
199d2e716e6SBram Moolenaar  echo version
200d2e716e6SBram Moolenaar  call assert_fails('let version = 1', 'E46:')
201d2e716e6SBram Moolenaar  call assert_equal(v:version, version)
20237df9a44SBram Moolenaar
20337df9a44SBram Moolenaar  call assert_equal(v:version, v:versionlong / 10000)
20437df9a44SBram Moolenaar  call assert_true(v:versionlong > 8011525)
205d2e716e6SBram Moolenaarendfunc
206d2e716e6SBram Moolenaar
20761343f0cSBram Moolenaarfunc Test_dict_access_scriptversion2()
20861343f0cSBram Moolenaar  let l:x = {'foo': 1}
20961343f0cSBram Moolenaar
21061343f0cSBram Moolenaar  call assert_false(0 && l:x.foo)
21161343f0cSBram Moolenaar  call assert_true(1 && l:x.foo)
21261343f0cSBram Moolenaarendfunc
21361343f0cSBram Moolenaar
21460a8de28SBram Moolenaarscriptversion 4
21560a8de28SBram Moolenaarfunc Test_vvar_scriptversion4()
216af914383SBram Moolenaar  call assert_true(has('vimscript-4'))
21760a8de28SBram Moolenaar  call assert_equal(17, 017)
218c17e66c5SBram Moolenaar  call assert_equal(15, 0o17)
219c17e66c5SBram Moolenaar  call assert_equal(15, 0O17)
22060a8de28SBram Moolenaar  call assert_equal(18, 018)
22160a8de28SBram Moolenaar  call assert_equal(64, 0b1'00'00'00)
22260a8de28SBram Moolenaar  call assert_equal(1048576, 0x10'00'00)
223c17e66c5SBram Moolenaar  call assert_equal(32768, 0o10'00'00)
22460a8de28SBram Moolenaar  call assert_equal(1000000, 1'000'000)
225ea8dcf83SBram Moolenaar  call assert_equal("1234", execute("echo 1'234")->trim())
226ea8dcf83SBram Moolenaar  call assert_equal('1  234', execute("echo 1''234")->trim())
227ea8dcf83SBram Moolenaar  call assert_fails("echo 1'''234", 'E115:')
22860a8de28SBram Moolenaarendfunc
22960a8de28SBram Moolenaar
23060a8de28SBram Moolenaarscriptversion 1
23160a8de28SBram Moolenaarfunc Test_vvar_scriptversion1()
23260a8de28SBram Moolenaar  call assert_equal(15, 017)
233c17e66c5SBram Moolenaar  call assert_equal(15, 0o17)
234c17e66c5SBram Moolenaar  call assert_equal(15, 0O17)
23560a8de28SBram Moolenaar  call assert_equal(18, 018)
23660a8de28SBram Moolenaarendfunc
23760a8de28SBram Moolenaar
23860a8de28SBram Moolenaarfunc Test_scriptversion_fail()
239558ca4aeSBram Moolenaar  call writefile(['scriptversion 9'], 'Xversionscript')
240558ca4aeSBram Moolenaar  call assert_fails('source Xversionscript', 'E999:')
241558ca4aeSBram Moolenaar  call delete('Xversionscript')
242558ca4aeSBram Moolenaarendfunc
243b662591eSBram Moolenaar
2449d8d0b5cSBram Moolenaarfunc Test_execute_cmd_with_null()
245b662591eSBram Moolenaar  call assert_fails('execute test_null_list()', 'E730:')
246b662591eSBram Moolenaar  call assert_fails('execute test_null_dict()', 'E731:')
247b662591eSBram Moolenaar  call assert_fails('execute test_null_blob()', 'E976:')
248b662591eSBram Moolenaar  execute test_null_string()
249b662591eSBram Moolenaar  call assert_fails('execute test_null_partial()', 'E729:')
25092b83ccfSBram Moolenaar  call assert_fails('execute test_unknown()', 'E908:')
251b662591eSBram Moolenaar  if has('job')
252b662591eSBram Moolenaar    call assert_fails('execute test_null_job()', 'E908:')
253b662591eSBram Moolenaar    call assert_fails('execute test_null_channel()', 'E908:')
254b662591eSBram Moolenaar  endif
255b662591eSBram Moolenaarendfunc
256f9706e9dSBram Moolenaar
257f9706e9dSBram Moolenaarfunc Test_numbersize()
258f9706e9dSBram Moolenaar  " This will fail on systems without 64 bit int support or when not configured
259f9706e9dSBram Moolenaar  " correctly.
260f9706e9dSBram Moolenaar  call assert_equal(64, v:numbersize)
261f9706e9dSBram Moolenaarendfunc
2628b633135SBram Moolenaar
26390455cfaSBram Moolenaarfunc Assert_reg(name, type, value, valuestr, expr, exprstr)
26490455cfaSBram Moolenaar  call assert_equal(a:type, getregtype(a:name))
26590455cfaSBram Moolenaar  call assert_equal(a:value, getreg(a:name))
26690455cfaSBram Moolenaar  call assert_equal(a:valuestr, string(getreg(a:name, 0, 1)))
26790455cfaSBram Moolenaar  call assert_equal(a:expr, getreg(a:name, 1))
26890455cfaSBram Moolenaar  call assert_equal(a:exprstr, string(getreg(a:name, 1, 1)))
26990455cfaSBram Moolenaarendfunc
27090455cfaSBram Moolenaar
27190455cfaSBram Moolenaarfunc Test_let_register()
27290455cfaSBram Moolenaar  let @" = 'abc'
27390455cfaSBram Moolenaar  call Assert_reg('"', 'v', "abc", "['abc']", "abc", "['abc']")
27490455cfaSBram Moolenaar  let @" = "abc\n"
27590455cfaSBram Moolenaar  call Assert_reg('"', 'V', "abc\n", "['abc']", "abc\n", "['abc']")
27690455cfaSBram Moolenaar  let @" = "abc\<C-m>"
27790455cfaSBram Moolenaar  call Assert_reg('"', 'V', "abc\r\n", "['abc\r']", "abc\r\n", "['abc\r']")
27890455cfaSBram Moolenaar  let @= = '"abc"'
27990455cfaSBram Moolenaar  call Assert_reg('=', 'v', "abc", "['abc']", '"abc"', "['\"abc\"']")
28090455cfaSBram Moolenaarendfunc
28190455cfaSBram Moolenaar
28290455cfaSBram Moolenaarfunc Assert_regput(name, result)
28390455cfaSBram Moolenaar  new
28490455cfaSBram Moolenaar  execute "silent normal! o==\n==\e\"" . a:name . "P"
28590455cfaSBram Moolenaar  call assert_equal(a:result, getline(2, line('$')))
28661fbb337SBram Moolenaar  bwipe!
28790455cfaSBram Moolenaarendfunc
28890455cfaSBram Moolenaar
28990455cfaSBram Moolenaarfunc Test_setreg_basic()
29090455cfaSBram Moolenaar  call setreg('a', 'abcA', 'c')
29190455cfaSBram Moolenaar  call Assert_reg('a', 'v', "abcA", "['abcA']", "abcA", "['abcA']")
29290455cfaSBram Moolenaar  call Assert_regput('a', ['==', '=abcA='])
29390455cfaSBram Moolenaar
29490455cfaSBram Moolenaar  call setreg('A', 'abcAc', 'c')
29590455cfaSBram Moolenaar  call Assert_reg('A', 'v', "abcAabcAc", "['abcAabcAc']", "abcAabcAc", "['abcAabcAc']")
29690455cfaSBram Moolenaar  call Assert_regput('a', ['==', '=abcAabcAc='])
29790455cfaSBram Moolenaar
29890455cfaSBram Moolenaar  call setreg('A', 'abcAl', 'l')
29990455cfaSBram Moolenaar  call Assert_reg('A', 'V', "abcAabcAcabcAl\n", "['abcAabcAcabcAl']", "abcAabcAcabcAl\n", "['abcAabcAcabcAl']")
30090455cfaSBram Moolenaar  call Assert_regput('a', ['==', 'abcAabcAcabcAl', '=='])
30190455cfaSBram Moolenaar
30290455cfaSBram Moolenaar  call setreg('A', 'abcAc2','c')
30390455cfaSBram Moolenaar  call Assert_reg('A', 'v', "abcAabcAcabcAl\nabcAc2", "['abcAabcAcabcAl', 'abcAc2']", "abcAabcAcabcAl\nabcAc2", "['abcAabcAcabcAl', 'abcAc2']")
30490455cfaSBram Moolenaar  call Assert_regput('a', ['==', '=abcAabcAcabcAl', 'abcAc2='])
30590455cfaSBram Moolenaar
30690455cfaSBram Moolenaar  call setreg('b', 'abcB', 'v')
30790455cfaSBram Moolenaar  call Assert_reg('b', 'v', "abcB", "['abcB']", "abcB", "['abcB']")
30890455cfaSBram Moolenaar  call Assert_regput('b', ['==', '=abcB='])
30990455cfaSBram Moolenaar
31090455cfaSBram Moolenaar  call setreg('b', 'abcBc', 'ca')
31190455cfaSBram Moolenaar  call Assert_reg('b', 'v', "abcBabcBc", "['abcBabcBc']", "abcBabcBc", "['abcBabcBc']")
31290455cfaSBram Moolenaar  call Assert_regput('b', ['==', '=abcBabcBc='])
31390455cfaSBram Moolenaar
31490455cfaSBram Moolenaar  call setreg('b', 'abcBb', 'ba')
31590455cfaSBram Moolenaar  call Assert_reg('b', "\<C-V>5", "abcBabcBcabcBb", "['abcBabcBcabcBb']", "abcBabcBcabcBb", "['abcBabcBcabcBb']")
31690455cfaSBram Moolenaar  call Assert_regput('b', ['==', '=abcBabcBcabcBb='])
31790455cfaSBram Moolenaar
31890455cfaSBram Moolenaar  call setreg('b', 'abcBc2','ca')
31990455cfaSBram Moolenaar  call Assert_reg('b', "v", "abcBabcBcabcBb\nabcBc2", "['abcBabcBcabcBb', 'abcBc2']", "abcBabcBcabcBb\nabcBc2", "['abcBabcBcabcBb', 'abcBc2']")
32090455cfaSBram Moolenaar  call Assert_regput('b', ['==', '=abcBabcBcabcBb', 'abcBc2='])
32190455cfaSBram Moolenaar
32290455cfaSBram Moolenaar  call setreg('b', 'abcBb2','b50a')
32390455cfaSBram Moolenaar  call Assert_reg('b', "\<C-V>50", "abcBabcBcabcBb\nabcBc2abcBb2", "['abcBabcBcabcBb', 'abcBc2abcBb2']", "abcBabcBcabcBb\nabcBc2abcBb2", "['abcBabcBcabcBb', 'abcBc2abcBb2']")
32490455cfaSBram Moolenaar  call Assert_regput('b', ['==', '=abcBabcBcabcBb                                    =', ' abcBc2abcBb2'])
32590455cfaSBram Moolenaar
32690455cfaSBram Moolenaar  call setreg('c', 'abcC', 'l')
32790455cfaSBram Moolenaar  call Assert_reg('c', 'V', "abcC\n", "['abcC']", "abcC\n", "['abcC']")
32890455cfaSBram Moolenaar  call Assert_regput('c', ['==', 'abcC', '=='])
32990455cfaSBram Moolenaar
33090455cfaSBram Moolenaar  call setreg('C', 'abcCl', 'l')
33190455cfaSBram Moolenaar  call Assert_reg('C', 'V', "abcC\nabcCl\n", "['abcC', 'abcCl']", "abcC\nabcCl\n", "['abcC', 'abcCl']")
33290455cfaSBram Moolenaar  call Assert_regput('c', ['==', 'abcC', 'abcCl', '=='])
33390455cfaSBram Moolenaar
33490455cfaSBram Moolenaar  call setreg('C', 'abcCc', 'c')
33590455cfaSBram Moolenaar  call Assert_reg('C', 'v', "abcC\nabcCl\nabcCc", "['abcC', 'abcCl', 'abcCc']", "abcC\nabcCl\nabcCc", "['abcC', 'abcCl', 'abcCc']")
33690455cfaSBram Moolenaar  call Assert_regput('c', ['==', '=abcC', 'abcCl', 'abcCc='])
33790455cfaSBram Moolenaar
33890455cfaSBram Moolenaar  call setreg('d', 'abcD', 'V')
33990455cfaSBram Moolenaar  call Assert_reg('d', 'V', "abcD\n", "['abcD']", "abcD\n", "['abcD']")
34090455cfaSBram Moolenaar  call Assert_regput('d', ['==', 'abcD', '=='])
34190455cfaSBram Moolenaar
34290455cfaSBram Moolenaar  call setreg('D', 'abcDb', 'b')
34390455cfaSBram Moolenaar  call Assert_reg('d', "\<C-V>5", "abcD\nabcDb", "['abcD', 'abcDb']", "abcD\nabcDb", "['abcD', 'abcDb']")
34490455cfaSBram Moolenaar  call Assert_regput('d', ['==', '=abcD =', ' abcDb'])
34590455cfaSBram Moolenaar
34690455cfaSBram Moolenaar  call setreg('e', 'abcE', 'b')
34790455cfaSBram Moolenaar  call Assert_reg('e', "\<C-V>4", "abcE", "['abcE']", "abcE", "['abcE']")
34890455cfaSBram Moolenaar  call Assert_regput('e', ['==', '=abcE='])
34990455cfaSBram Moolenaar
35090455cfaSBram Moolenaar  call setreg('E', 'abcEb', 'b')
35190455cfaSBram Moolenaar  call Assert_reg('E', "\<C-V>5", "abcE\nabcEb", "['abcE', 'abcEb']", "abcE\nabcEb", "['abcE', 'abcEb']")
35290455cfaSBram Moolenaar  call Assert_regput('e', ['==', '=abcE =', ' abcEb'])
35390455cfaSBram Moolenaar
35490455cfaSBram Moolenaar  call setreg('E', 'abcEl', 'l')
35590455cfaSBram Moolenaar  call Assert_reg('E', "V", "abcE\nabcEb\nabcEl\n", "['abcE', 'abcEb', 'abcEl']", "abcE\nabcEb\nabcEl\n", "['abcE', 'abcEb', 'abcEl']")
35690455cfaSBram Moolenaar  call Assert_regput('e', ['==', 'abcE', 'abcEb', 'abcEl', '=='])
35790455cfaSBram Moolenaar
35890455cfaSBram Moolenaar  call setreg('f', 'abcF', "\<C-v>")
35990455cfaSBram Moolenaar  call Assert_reg('f', "\<C-V>4", "abcF", "['abcF']", "abcF", "['abcF']")
36090455cfaSBram Moolenaar  call Assert_regput('f', ['==', '=abcF='])
36190455cfaSBram Moolenaar
36290455cfaSBram Moolenaar  call setreg('F', 'abcFc', 'c')
36390455cfaSBram Moolenaar  call Assert_reg('F', "v", "abcF\nabcFc", "['abcF', 'abcFc']", "abcF\nabcFc", "['abcF', 'abcFc']")
36490455cfaSBram Moolenaar  call Assert_regput('f', ['==', '=abcF', 'abcFc='])
36590455cfaSBram Moolenaar
36690455cfaSBram Moolenaar  call setreg('g', 'abcG', 'b10')
36790455cfaSBram Moolenaar  call Assert_reg('g', "\<C-V>10", "abcG", "['abcG']", "abcG", "['abcG']")
36890455cfaSBram Moolenaar  call Assert_regput('g', ['==', '=abcG      ='])
36990455cfaSBram Moolenaar
37090455cfaSBram Moolenaar  call setreg('h', 'abcH', "\<C-v>10")
37190455cfaSBram Moolenaar  call Assert_reg('h', "\<C-V>10", "abcH", "['abcH']", "abcH", "['abcH']")
37290455cfaSBram Moolenaar  call Assert_regput('h', ['==', '=abcH      ='])
37390455cfaSBram Moolenaar
37490455cfaSBram Moolenaar  call setreg('I', 'abcI')
37590455cfaSBram Moolenaar  call Assert_reg('I', "v", "abcI", "['abcI']", "abcI", "['abcI']")
37690455cfaSBram Moolenaar  call Assert_regput('I', ['==', '=abcI='])
37790455cfaSBram Moolenaar
378339d60c8SBram Moolenaar  " Appending NL with setreg()
379339d60c8SBram Moolenaar  call setreg('a', 'abcA2', 'c')
380339d60c8SBram Moolenaar  call setreg('b', 'abcB2', 'v')
381339d60c8SBram Moolenaar  call setreg('c', 'abcC2', 'l')
382339d60c8SBram Moolenaar  call setreg('d', 'abcD2', 'V')
383339d60c8SBram Moolenaar  call setreg('e', 'abcE2', 'b')
384339d60c8SBram Moolenaar  call setreg('f', 'abcF2', "\<C-v>")
385339d60c8SBram Moolenaar  call setreg('g', 'abcG2', 'b10')
386339d60c8SBram Moolenaar  call setreg('h', 'abcH2', "\<C-v>10")
387339d60c8SBram Moolenaar  call setreg('I', 'abcI2')
388339d60c8SBram Moolenaar
389339d60c8SBram Moolenaar  call setreg('A', "\n")
390339d60c8SBram Moolenaar  call Assert_reg('A', 'V', "abcA2\n", "['abcA2']", "abcA2\n", "['abcA2']")
391339d60c8SBram Moolenaar  call Assert_regput('A', ['==', 'abcA2', '=='])
392339d60c8SBram Moolenaar
393339d60c8SBram Moolenaar  call setreg('B', "\n", 'c')
394339d60c8SBram Moolenaar  call Assert_reg('B', 'v', "abcB2\n", "['abcB2', '']", "abcB2\n", "['abcB2', '']")
395339d60c8SBram Moolenaar  call Assert_regput('B', ['==', '=abcB2', '='])
396339d60c8SBram Moolenaar
397339d60c8SBram Moolenaar  call setreg('C', "\n")
398339d60c8SBram Moolenaar  call Assert_reg('C', 'V', "abcC2\n\n", "['abcC2', '']", "abcC2\n\n", "['abcC2', '']")
399339d60c8SBram Moolenaar  call Assert_regput('C', ['==', 'abcC2', '', '=='])
400339d60c8SBram Moolenaar
401339d60c8SBram Moolenaar  call setreg('D', "\n", 'l')
402339d60c8SBram Moolenaar  call Assert_reg('D', 'V', "abcD2\n\n", "['abcD2', '']", "abcD2\n\n", "['abcD2', '']")
403339d60c8SBram Moolenaar  call Assert_regput('D', ['==', 'abcD2', '', '=='])
404339d60c8SBram Moolenaar
405339d60c8SBram Moolenaar  call setreg('E', "\n")
406339d60c8SBram Moolenaar  call Assert_reg('E', 'V', "abcE2\n\n", "['abcE2', '']", "abcE2\n\n", "['abcE2', '']")
407339d60c8SBram Moolenaar  call Assert_regput('E', ['==', 'abcE2', '', '=='])
408339d60c8SBram Moolenaar
409339d60c8SBram Moolenaar  call setreg('F', "\n", 'b')
410339d60c8SBram Moolenaar  call Assert_reg('F', "\<C-V>0", "abcF2\n", "['abcF2', '']", "abcF2\n", "['abcF2', '']")
411339d60c8SBram Moolenaar  call Assert_regput('F', ['==', '=abcF2=', ' '])
412339d60c8SBram Moolenaar
413339d60c8SBram Moolenaar  " Setting lists with setreg()
414339d60c8SBram Moolenaar  call setreg('a', ['abcA3'], 'c')
415339d60c8SBram Moolenaar  call Assert_reg('a', 'v', "abcA3", "['abcA3']", "abcA3", "['abcA3']")
416339d60c8SBram Moolenaar  call Assert_regput('a', ['==', '=abcA3='])
417339d60c8SBram Moolenaar
418339d60c8SBram Moolenaar  call setreg('b', ['abcB3'], 'l')
419339d60c8SBram Moolenaar  call Assert_reg('b', 'V', "abcB3\n", "['abcB3']", "abcB3\n", "['abcB3']")
420339d60c8SBram Moolenaar  call Assert_regput('b', ['==', 'abcB3', '=='])
421339d60c8SBram Moolenaar
422339d60c8SBram Moolenaar  call setreg('c', ['abcC3'], 'b')
423339d60c8SBram Moolenaar  call Assert_reg('c', "\<C-V>5", "abcC3", "['abcC3']", "abcC3", "['abcC3']")
424339d60c8SBram Moolenaar  call Assert_regput('c', ['==', '=abcC3='])
425339d60c8SBram Moolenaar
426339d60c8SBram Moolenaar  call setreg('d', ['abcD3'])
427339d60c8SBram Moolenaar  call Assert_reg('d', 'V', "abcD3\n", "['abcD3']", "abcD3\n", "['abcD3']")
428339d60c8SBram Moolenaar  call Assert_regput('d', ['==', 'abcD3', '=='])
429339d60c8SBram Moolenaar
430339d60c8SBram Moolenaar  call setreg('e', [1, 2, 'abc', 3])
431339d60c8SBram Moolenaar  call Assert_reg('e', 'V', "1\n2\nabc\n3\n", "['1', '2', 'abc', '3']", "1\n2\nabc\n3\n", "['1', '2', 'abc', '3']")
432339d60c8SBram Moolenaar  call Assert_regput('e', ['==', '1', '2', 'abc', '3', '=='])
433339d60c8SBram Moolenaar
434339d60c8SBram Moolenaar  call setreg('f', [1, 2, 3])
435339d60c8SBram Moolenaar  call Assert_reg('f', 'V', "1\n2\n3\n", "['1', '2', '3']", "1\n2\n3\n", "['1', '2', '3']")
436339d60c8SBram Moolenaar  call Assert_regput('f', ['==', '1', '2', '3', '=='])
437339d60c8SBram Moolenaar
438339d60c8SBram Moolenaar  " Appending lists with setreg()
439339d60c8SBram Moolenaar  call setreg('A', ['abcA3c'], 'c')
440339d60c8SBram Moolenaar  call Assert_reg('A', 'v', "abcA3\nabcA3c", "['abcA3', 'abcA3c']", "abcA3\nabcA3c", "['abcA3', 'abcA3c']")
441339d60c8SBram Moolenaar  call Assert_regput('A', ['==', '=abcA3', 'abcA3c='])
442339d60c8SBram Moolenaar
443339d60c8SBram Moolenaar  call setreg('b', ['abcB3l'], 'la')
444339d60c8SBram Moolenaar  call Assert_reg('b', 'V', "abcB3\nabcB3l\n", "['abcB3', 'abcB3l']", "abcB3\nabcB3l\n", "['abcB3', 'abcB3l']")
445339d60c8SBram Moolenaar  call Assert_regput('b', ['==', 'abcB3', 'abcB3l', '=='])
446339d60c8SBram Moolenaar
447339d60c8SBram Moolenaar  call setreg('C', ['abcC3b'], 'lb')
448339d60c8SBram Moolenaar  call Assert_reg('C', "\<C-V>6", "abcC3\nabcC3b", "['abcC3', 'abcC3b']", "abcC3\nabcC3b", "['abcC3', 'abcC3b']")
449339d60c8SBram Moolenaar  call Assert_regput('C', ['==', '=abcC3 =', ' abcC3b'])
450339d60c8SBram Moolenaar
451339d60c8SBram Moolenaar  call setreg('D', ['abcD32'])
452339d60c8SBram Moolenaar  call Assert_reg('D', 'V', "abcD3\nabcD32\n", "['abcD3', 'abcD32']", "abcD3\nabcD32\n", "['abcD3', 'abcD32']")
453339d60c8SBram Moolenaar  call Assert_regput('D', ['==', 'abcD3', 'abcD32', '=='])
454339d60c8SBram Moolenaar
455339d60c8SBram Moolenaar  call setreg('A', ['abcA32'])
456339d60c8SBram Moolenaar  call Assert_reg('A', 'V', "abcA3\nabcA3c\nabcA32\n", "['abcA3', 'abcA3c', 'abcA32']", "abcA3\nabcA3c\nabcA32\n", "['abcA3', 'abcA3c', 'abcA32']")
457339d60c8SBram Moolenaar  call Assert_regput('A', ['==', 'abcA3', 'abcA3c', 'abcA32', '=='])
458339d60c8SBram Moolenaar
459339d60c8SBram Moolenaar  call setreg('B', ['abcB3c'], 'c')
460339d60c8SBram Moolenaar  call Assert_reg('B', 'v', "abcB3\nabcB3l\nabcB3c", "['abcB3', 'abcB3l', 'abcB3c']", "abcB3\nabcB3l\nabcB3c", "['abcB3', 'abcB3l', 'abcB3c']")
461339d60c8SBram Moolenaar  call Assert_regput('B', ['==', '=abcB3', 'abcB3l', 'abcB3c='])
462339d60c8SBram Moolenaar
463339d60c8SBram Moolenaar  call setreg('C', ['abcC3l'], 'l')
464339d60c8SBram Moolenaar  call Assert_reg('C', 'V', "abcC3\nabcC3b\nabcC3l\n", "['abcC3', 'abcC3b', 'abcC3l']", "abcC3\nabcC3b\nabcC3l\n", "['abcC3', 'abcC3b', 'abcC3l']")
465339d60c8SBram Moolenaar  call Assert_regput('C', ['==', 'abcC3', 'abcC3b', 'abcC3l', '=='])
466339d60c8SBram Moolenaar
467339d60c8SBram Moolenaar  call setreg('D', ['abcD3b'], 'b')
468339d60c8SBram Moolenaar  call Assert_reg('D', "\<C-V>6", "abcD3\nabcD32\nabcD3b", "['abcD3', 'abcD32', 'abcD3b']", "abcD3\nabcD32\nabcD3b", "['abcD3', 'abcD32', 'abcD3b']")
469339d60c8SBram Moolenaar  call Assert_regput('D', ['==', '=abcD3 =', ' abcD32', ' abcD3b'])
470339d60c8SBram Moolenaar
471339d60c8SBram Moolenaar  " Appending lists with NL with setreg()
472339d60c8SBram Moolenaar  call setreg('A', ["\n", 'abcA3l2'], 'l')
473339d60c8SBram Moolenaar  call Assert_reg('A', "V", "abcA3\nabcA3c\nabcA32\n\n\nabcA3l2\n", "['abcA3', 'abcA3c', 'abcA32', '\n', 'abcA3l2']", "abcA3\nabcA3c\nabcA32\n\n\nabcA3l2\n", "['abcA3', 'abcA3c', 'abcA32', '\n', 'abcA3l2']")
474339d60c8SBram Moolenaar  call Assert_regput('A', ['==', 'abcA3', 'abcA3c', 'abcA32', "\n", 'abcA3l2', '=='])
475339d60c8SBram Moolenaar
476339d60c8SBram Moolenaar  call setreg('B', ["\n", 'abcB3c2'], 'c')
477339d60c8SBram Moolenaar  call Assert_reg('B', "v", "abcB3\nabcB3l\nabcB3c\n\n\nabcB3c2", "['abcB3', 'abcB3l', 'abcB3c', '\n', 'abcB3c2']", "abcB3\nabcB3l\nabcB3c\n\n\nabcB3c2", "['abcB3', 'abcB3l', 'abcB3c', '\n', 'abcB3c2']")
478339d60c8SBram Moolenaar  call Assert_regput('B', ['==', '=abcB3', 'abcB3l', 'abcB3c', "\n", 'abcB3c2='])
479339d60c8SBram Moolenaar
480339d60c8SBram Moolenaar  call setreg('C', ["\n", 'abcC3b2'], 'b')
481339d60c8SBram Moolenaar  call Assert_reg('C', "7", "abcC3\nabcC3b\nabcC3l\n\n\nabcC3b2", "['abcC3', 'abcC3b', 'abcC3l', '\n', 'abcC3b2']", "abcC3\nabcC3b\nabcC3l\n\n\nabcC3b2", "['abcC3', 'abcC3b', 'abcC3l', '\n', 'abcC3b2']")
482339d60c8SBram Moolenaar  call Assert_regput('C', ['==', '=abcC3  =', ' abcC3b', ' abcC3l', " \n", ' abcC3b2'])
483339d60c8SBram Moolenaar
484339d60c8SBram Moolenaar  call setreg('D', ["\n", 'abcD3b50'],'b50')
485339d60c8SBram Moolenaar  call Assert_reg('D', "50", "abcD3\nabcD32\nabcD3b\n\n\nabcD3b50", "['abcD3', 'abcD32', 'abcD3b', '\n', 'abcD3b50']", "abcD3\nabcD32\nabcD3b\n\n\nabcD3b50", "['abcD3', 'abcD32', 'abcD3b', '\n', 'abcD3b50']")
486339d60c8SBram Moolenaar  call Assert_regput('D', ['==', '=abcD3                                             =', ' abcD32', ' abcD3b', " \n", ' abcD3b50'])
487339d60c8SBram Moolenaar
488339d60c8SBram Moolenaar  " Setting lists with NLs with setreg()
489339d60c8SBram Moolenaar  call setreg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4-4-2"])
490339d60c8SBram Moolenaar  call Assert_reg('a', "V", "abcA4-0\n\n\nabcA4-2\n\n\nabcA4-3\nabcA4-4\nabcA4-4-2\n", "['abcA4-0', '\n', 'abcA4-2\n', '\nabcA4-3', 'abcA4-4\nabcA4-4-2']", "abcA4-0\n\n\nabcA4-2\n\n\nabcA4-3\nabcA4-4\nabcA4-4-2\n", "['abcA4-0', '\n', 'abcA4-2\n', '\nabcA4-3', 'abcA4-4\nabcA4-4-2']")
491339d60c8SBram Moolenaar  call Assert_regput('a', ['==', 'abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4-4-2", '=='])
492339d60c8SBram Moolenaar
493339d60c8SBram Moolenaar  call setreg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\nabcB4c-4-2"], 'c')
494339d60c8SBram Moolenaar  call Assert_reg('b', "v", "abcB4c-0\n\n\nabcB4c-2\n\n\nabcB4c-3\nabcB4c-4\nabcB4c-4-2", "['abcB4c-0', '\n', 'abcB4c-2\n', '\nabcB4c-3', 'abcB4c-4\nabcB4c-4-2']", "abcB4c-0\n\n\nabcB4c-2\n\n\nabcB4c-3\nabcB4c-4\nabcB4c-4-2", "['abcB4c-0', '\n', 'abcB4c-2\n', '\nabcB4c-3', 'abcB4c-4\nabcB4c-4-2']")
495339d60c8SBram Moolenaar  call Assert_regput('b', ['==', '=abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\nabcB4c-4-2="])
496339d60c8SBram Moolenaar
497339d60c8SBram Moolenaar  call setreg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\nabcC4l-4-2"], 'l')
498339d60c8SBram Moolenaar  call Assert_reg('c', "V", "abcC4l-0\n\n\nabcC4l-2\n\n\nabcC4l-3\nabcC4l-4\nabcC4l-4-2\n", "['abcC4l-0', '\n', 'abcC4l-2\n', '\nabcC4l-3', 'abcC4l-4\nabcC4l-4-2']", "abcC4l-0\n\n\nabcC4l-2\n\n\nabcC4l-3\nabcC4l-4\nabcC4l-4-2\n", "['abcC4l-0', '\n', 'abcC4l-2\n', '\nabcC4l-3', 'abcC4l-4\nabcC4l-4-2']")
499339d60c8SBram Moolenaar  call Assert_regput('c', ['==', 'abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\nabcC4l-4-2", '=='])
500339d60c8SBram Moolenaar
501339d60c8SBram Moolenaar  call setreg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\nabcD4b-4-2"], 'b')
502339d60c8SBram Moolenaar  call Assert_reg('d', "19", "abcD4b-0\n\n\nabcD4b-2\n\n\nabcD4b-3\nabcD4b-4\nabcD4b-4-2", "['abcD4b-0', '\n', 'abcD4b-2\n', '\nabcD4b-3', 'abcD4b-4\nabcD4b-4-2']", "abcD4b-0\n\n\nabcD4b-2\n\n\nabcD4b-3\nabcD4b-4\nabcD4b-4-2", "['abcD4b-0', '\n', 'abcD4b-2\n', '\nabcD4b-3', 'abcD4b-4\nabcD4b-4-2']")
503339d60c8SBram Moolenaar  call Assert_regput('d', ['==', '=abcD4b-0           =', " \n", " abcD4b-2\n", " \nabcD4b-3", " abcD4b-4\nabcD4b-4-2"])
504339d60c8SBram Moolenaar
505339d60c8SBram Moolenaar  call setreg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4b10-4\nabcE4b10-4-2"], 'b10')
506339d60c8SBram Moolenaar  call Assert_reg('e', "10", "abcE4b10-0\n\n\nabcE4b10-2\n\n\nabcE4b10-3\nabcE4b10-4\nabcE4b10-4-2", "['abcE4b10-0', '\n', 'abcE4b10-2\n', '\nabcE4b10-3', 'abcE4b10-4\nabcE4b10-4-2']", "abcE4b10-0\n\n\nabcE4b10-2\n\n\nabcE4b10-3\nabcE4b10-4\nabcE4b10-4-2", "['abcE4b10-0', '\n', 'abcE4b10-2\n', '\nabcE4b10-3', 'abcE4b10-4\nabcE4b10-4-2']")
507339d60c8SBram Moolenaar  call Assert_regput('e', ['==', '=abcE4b10-0=', " \n", " abcE4b10-2\n", " \nabcE4b10-3", " abcE4b10-4\nabcE4b10-4-2"])
508339d60c8SBram Moolenaar
509339d60c8SBram Moolenaar  " Search and expressions
510339d60c8SBram Moolenaar  call setreg('/', ['abc/'])
511339d60c8SBram Moolenaar  call Assert_reg('/', 'v', "abc/", "['abc/']", "abc/", "['abc/']")
512339d60c8SBram Moolenaar  call Assert_regput('/', ['==', '=abc/='])
513339d60c8SBram Moolenaar
514339d60c8SBram Moolenaar  call setreg('/', ["abc/\n"])
515339d60c8SBram Moolenaar  call Assert_reg('/', 'v', "abc/\n", "['abc/\n']", "abc/\n", "['abc/\n']")
516339d60c8SBram Moolenaar  call Assert_regput('/', ['==', "=abc/\n="])
517339d60c8SBram Moolenaar
518339d60c8SBram Moolenaar  call setreg('=', ['"abc/"'])
519339d60c8SBram Moolenaar  call Assert_reg('=', 'v', "abc/", "['abc/']", '"abc/"', "['\"abc/\"']")
520339d60c8SBram Moolenaar
521339d60c8SBram Moolenaar  call setreg('=', ["\"abc/\n\""])
522339d60c8SBram Moolenaar  call Assert_reg('=', 'v', "abc/\n", "['abc/\n']", "\"abc/\n\"", "['\"abc/\n\"']")
523339d60c8SBram Moolenaar
524339d60c8SBram Moolenaar  " System clipboard
525339d60c8SBram Moolenaar  if has('clipboard')
526339d60c8SBram Moolenaar    new | only!
527339d60c8SBram Moolenaar    call setline(1, ['clipboard contents', 'something else'])
528339d60c8SBram Moolenaar    " Save and restore system clipboard.
529339d60c8SBram Moolenaar    " If no connection to X-Server is possible, test should succeed.
530339d60c8SBram Moolenaar    let _clipreg = ['*', getreg('*'), getregtype('*')]
531339d60c8SBram Moolenaar    let _clipopt = &cb
532339d60c8SBram Moolenaar    let &cb='unnamed'
533339d60c8SBram Moolenaar    1y
534339d60c8SBram Moolenaar    call Assert_reg('*', 'V', "clipboard contents\n", "['clipboard contents']", "clipboard contents\n", "['clipboard contents']")
535339d60c8SBram Moolenaar    tabdo :windo :echo "hi"
536339d60c8SBram Moolenaar    2y
537339d60c8SBram Moolenaar    call Assert_reg('*', 'V', "something else\n", "['something else']", "something else\n", "['something else']")
538339d60c8SBram Moolenaar    let &cb=_clipopt
539339d60c8SBram Moolenaar    call call('setreg', _clipreg)
540339d60c8SBram Moolenaar    enew!
541339d60c8SBram Moolenaar  endif
542339d60c8SBram Moolenaar
54308f4157cSBram Moolenaar  " Error cases
54408f4157cSBram Moolenaar  call assert_fails('call setreg()', 'E119:')
54508f4157cSBram Moolenaar  call assert_fails('call setreg(1)', 'E119:')
54608f4157cSBram Moolenaar  call assert_fails('call setreg(1, 2, 3, 4)', 'E118:')
54708f4157cSBram Moolenaar  call assert_fails('call setreg([], 2)', 'E730:')
54808f4157cSBram Moolenaar  call assert_fails('call setreg(1, 2, [])', 'E730:')
54908f4157cSBram Moolenaar  call assert_fails('call setreg("/", ["1", "2"])', 'E883:')
55008f4157cSBram Moolenaar  call assert_fails('call setreg("=", ["1", "2"])', 'E883:')
55108f4157cSBram Moolenaar  call assert_fails('call setreg(1, ["", "", [], ""])', 'E730:')
55208f4157cSBram Moolenaarendfunc
55390455cfaSBram Moolenaar
554ae95a394SBram Moolenaarfunc Test_curly_assignment()
555ae95a394SBram Moolenaar  let s:svar = 'svar'
556ae95a394SBram Moolenaar  let g:gvar = 'gvar'
557ae95a394SBram Moolenaar  let lname = 'gvar'
558ae95a394SBram Moolenaar  let gname = 'gvar'
559ae95a394SBram Moolenaar  let {'s:'.lname} = {'g:'.gname}
560ae95a394SBram Moolenaar  call assert_equal('gvar', s:gvar)
561ae95a394SBram Moolenaar  let s:gvar = ''
562ae95a394SBram Moolenaar  let { 's:'.lname } = { 'g:'.gname }
563ae95a394SBram Moolenaar  call assert_equal('gvar', s:gvar)
564ae95a394SBram Moolenaar  let s:gvar = ''
565ae95a394SBram Moolenaar  let { 's:' . lname } = { 'g:' . gname }
566ae95a394SBram Moolenaar  call assert_equal('gvar', s:gvar)
567ae95a394SBram Moolenaar  let s:gvar = ''
568ae95a394SBram Moolenaar  let { 's:' .. lname } = { 'g:' .. gname }
569ae95a394SBram Moolenaar  call assert_equal('gvar', s:gvar)
570ae95a394SBram Moolenaar
571ae95a394SBram Moolenaar  unlet s:svar
572ae95a394SBram Moolenaar  unlet s:gvar
573ae95a394SBram Moolenaar  unlet g:gvar
574ae95a394SBram Moolenaarendfunc
575ae95a394SBram Moolenaar
5768b633135SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
577