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