blob: ebe187410285e6808c67d40d8547016e7e97c207 [file] [log] [blame]
Bram Moolenaar5a50c222014-04-02 22:17:10 +02001Test for various eval features. vim: set ft=vim :
2
Bram Moolenaarfabaf752017-12-23 17:26:11 +01003NOTE: Do not add more here, use new style test test_eval_stuff.vim
4
Bram Moolenaar5c27fd12015-01-27 14:09:37 +01005Note: system clipboard is saved, changed and restored.
Bram Moolenaarb7cb42b2014-04-02 19:55:10 +02006
Bram Moolenaar4ac163a2015-01-27 22:52:15 +01007clipboard contents
8something else
9
Bram Moolenaarb7cb42b2014-04-02 19:55:10 +020010STARTTEST
11:so small.vim
Bram Moolenaar5a50c222014-04-02 22:17:10 +020012:set encoding=latin1
13:set noswapfile
14:lang C
15:fun AppendRegContents(reg)
Bram Moolenaar4ac163a2015-01-27 22:52:15 +010016 call AppendRegParts(a:reg, getregtype(a:reg), getreg(a:reg), string(getreg(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1)))
17:endfun
18:fun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
19 call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:reg, a:type, a:cont, a:strcont, a:cont1, a:strcont1))
Bram Moolenaar5a50c222014-04-02 22:17:10 +020020endfun
21:command -nargs=? AR :call AppendRegContents(<q-args>)
22:fun SetReg(...)
23 call call('setreg', a:000)
24 call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))
25 call AppendRegContents(a:1)
26 if a:1 isnot# '='
27 execute "silent normal! Go==\n==\e\"".a:1."P"
28 endif
29endfun
Bram Moolenaar5a50c222014-04-02 22:17:10 +020030:fun Test()
Bram Moolenaar5a50c222014-04-02 22:17:10 +020031$put ='{{{1 Appending NL with setreg()'
32call setreg('a', 'abcA2', 'c')
33call setreg('b', 'abcB2', 'v')
34call setreg('c', 'abcC2', 'l')
35call setreg('d', 'abcD2', 'V')
36call setreg('e', 'abcE2', 'b')
37call setreg('f', 'abcF2', "\<C-v>")
38call setreg('g', 'abcG2', 'b10')
39call setreg('h', 'abcH2', "\<C-v>10")
40call setreg('I', 'abcI2')
41
42call SetReg('A', "\n")
43call SetReg('B', "\n", 'c')
44call SetReg('C', "\n")
45call SetReg('D', "\n", 'l')
46call SetReg('E', "\n")
47call SetReg('F', "\n", 'b')
48
49$put ='{{{1 Setting lists with setreg()'
50call SetReg('a', ['abcA3'], 'c')
51call SetReg('b', ['abcB3'], 'l')
52call SetReg('c', ['abcC3'], 'b')
53call SetReg('d', ['abcD3'])
Bram Moolenaar7d647822014-04-05 21:28:56 +020054call SetReg('e', [1, 2, 'abc', 3])
55call SetReg('f', [1, 2, 3])
Bram Moolenaar5a50c222014-04-02 22:17:10 +020056
57$put ='{{{1 Appending lists with setreg()'
58call SetReg('A', ['abcA3c'], 'c')
59call SetReg('b', ['abcB3l'], 'la')
60call SetReg('C', ['abcC3b'], 'lb')
61call SetReg('D', ['abcD32'])
62
63call SetReg('A', ['abcA32'])
64call SetReg('B', ['abcB3c'], 'c')
65call SetReg('C', ['abcC3l'], 'l')
66call SetReg('D', ['abcD3b'], 'b')
67
68$put ='{{{1 Appending lists with NL with setreg()'
69call SetReg('A', ["\n", 'abcA3l2'], 'l')
70call SetReg('B', ["\n", 'abcB3c2'], 'c')
71call SetReg('C', ["\n", 'abcC3b2'], 'b')
72call SetReg('D', ["\n", 'abcD3b50'],'b50')
73
74$put ='{{{1 Setting lists with NLs with setreg()'
75call SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4-4-2"])
76call SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\nabcB4c-4-2"], 'c')
77call SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\nabcC4l-4-2"], 'l')
78call SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\nabcD4b-4-2"], 'b')
79call SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4b10-4\nabcE4b10-4-2"], 'b10')
80
81$put ='{{{1 Search and expressions'
82call SetReg('/', ['abc/'])
83call SetReg('/', ["abc/\n"])
84call SetReg('=', ['"abc/"'])
85call SetReg('=', ["\"abc/\n\""])
Bram Moolenaar5c27fd12015-01-27 14:09:37 +010086$put ='{{{1 System clipboard'
Bram Moolenaar4ac163a2015-01-27 22:52:15 +010087if has('clipboard')
Bram Moolenaar5c27fd12015-01-27 14:09:37 +010088" Save and restore system clipboard.
89" If no connection to X-Server is possible, test should succeed.
Bram Moolenaare08dd4e2015-02-03 16:07:47 +010090let _clipreg = ['*', getreg('*'), getregtype('*')]
Bram Moolenaar4ac163a2015-01-27 22:52:15 +010091let _clipopt = &cb
Bram Moolenaare08dd4e2015-02-03 16:07:47 +010092let &cb='unnamed'
Bram Moolenaarfabaf752017-12-23 17:26:11 +0100937y
Bram Moolenaare08dd4e2015-02-03 16:07:47 +010094AR *
Bram Moolenaar4ac163a2015-01-27 22:52:15 +010095tabdo :windo :echo "hi"
Bram Moolenaarfabaf752017-12-23 17:26:11 +0100968y
Bram Moolenaare08dd4e2015-02-03 16:07:47 +010097AR *
Bram Moolenaar4ac163a2015-01-27 22:52:15 +010098let &cb=_clipopt
99call call('setreg', _clipreg)
100else
Bram Moolenaare08dd4e2015-02-03 16:07:47 +0100101 call AppendRegParts('*', 'V', "clipboard contents\n", "['clipboard contents']", "clipboard contents\n", "['clipboard contents']")
102 call AppendRegParts('*', 'V', "something else\n", "['something else']", "something else\n", "['something else']")
Bram Moolenaar4ac163a2015-01-27 22:52:15 +0100103endif
Bram Moolenaar5a50c222014-04-02 22:17:10 +0200104endfun
Bram Moolenaarb7cb42b2014-04-02 19:55:10 +0200105:"
Bram Moolenaar5a50c222014-04-02 22:17:10 +0200106:call Test()
Bram Moolenaarb7cb42b2014-04-02 19:55:10 +0200107:"
Bram Moolenaar5a50c222014-04-02 22:17:10 +0200108:delfunction SetReg
109:delfunction AppendRegContents
Bram Moolenaar5a50c222014-04-02 22:17:10 +0200110:delfunction Test
111:delcommand AR
112:call garbagecollect(1)
113:"
114:/^start:/+1,$wq! test.out
115:" vim: et ts=4 isk-=\: fmr=???,???
116:call getchar()
Bram Moolenaarb7cb42b2014-04-02 19:55:10 +0200117ENDTEST
118
Bram Moolenaar5a50c222014-04-02 22:17:10 +0200119start: