annotate src/testdir/test_maparg.vim @ 24986:fa31a0ea09e1 v8.2.3030

patch 8.2.3030: Coverity reports a memory leak Commit: https://github.com/vim/vim/commit/cb54bc65625abad9a0af501acac5c70fba17e2cc Author: Dominique Pelle <dominique.pelle@gmail.com> Date: Mon Jun 21 20:15:37 2021 +0200 patch 8.2.3030: Coverity reports a memory leak Problem: Coverity reports a memory leak. Solution: Fix the leak and a few typos. (Dominique Pell?, closes https://github.com/vim/vim/issues/8418)
author Bram Moolenaar <Bram@vim.org>
date Mon, 21 Jun 2021 20:30:04 +0200
parents db2b4e867d06
children ea2b4cb4515b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20506
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
1 " Tests for maparg(), mapcheck() and mapset().
11651
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2 " Also test utf8 map with a 0x80 byte.
17930
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
3 " Also test mapcheck()
11651
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4
20506
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
5 func s:SID()
11651
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 return str2nr(matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze_SID$'))
20506
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
7 endfunc
11651
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8
20516
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
9 func Test_maparg()
11651
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 new
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 set cpo-=<
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 set encoding=utf8
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 " Test maparg() with a string result
14700
0a3b9ecf7cb8 patch 8.1.0362: cannot get the script line number when executing a function
Christian Brabandt <cb@256bit.org>
parents: 13986
diff changeset
14 let sid = s:SID()
0a3b9ecf7cb8 patch 8.1.0362: cannot get the script line number when executing a function
Christian Brabandt <cb@256bit.org>
parents: 13986
diff changeset
15 let lnum = expand('<sflnum>')
11651
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 map foo<C-V> is<F4>foo
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 vnoremap <script> <buffer> <expr> <silent> bar isbar
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 call assert_equal("is<F4>foo", maparg('foo<C-V>'))
19870
658248b68f7c patch 8.2.0491: cannot recognize a <script> mapping using maparg()
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
19 call assert_equal({'silent': 0, 'noremap': 0, 'script': 0, 'lhs': 'foo<C-V>',
20522
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
20 \ 'lhsraw': "foo\x80\xfc\x04V", 'lhsrawalt': "foo\x16",
14700
0a3b9ecf7cb8 patch 8.1.0362: cannot get the script line number when executing a function
Christian Brabandt <cb@256bit.org>
parents: 13986
diff changeset
21 \ 'mode': ' ', 'nowait': 0, 'expr': 0, 'sid': sid, 'lnum': lnum + 1,
20522
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
22 \ 'rhs': 'is<F4>foo', 'buffer': 0},
14700
0a3b9ecf7cb8 patch 8.1.0362: cannot get the script line number when executing a function
Christian Brabandt <cb@256bit.org>
parents: 13986
diff changeset
23 \ maparg('foo<C-V>', '', 0, 1))
20522
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
24 call assert_equal({'silent': 1, 'noremap': 1, 'script': 1, 'lhs': 'bar',
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
25 \ 'lhsraw': 'bar', 'mode': 'v',
14700
0a3b9ecf7cb8 patch 8.1.0362: cannot get the script line number when executing a function
Christian Brabandt <cb@256bit.org>
parents: 13986
diff changeset
26 \ 'nowait': 0, 'expr': 1, 'sid': sid, 'lnum': lnum + 2,
20522
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
27 \ 'rhs': 'isbar', 'buffer': 1},
17930
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
28 \ 'bar'->maparg('', 0, 1))
14700
0a3b9ecf7cb8 patch 8.1.0362: cannot get the script line number when executing a function
Christian Brabandt <cb@256bit.org>
parents: 13986
diff changeset
29 let lnum = expand('<sflnum>')
11651
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 map <buffer> <nowait> foo bar
20522
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
31 call assert_equal({'silent': 0, 'noremap': 0, 'script': 0, 'lhs': 'foo',
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
32 \ 'lhsraw': 'foo', 'mode': ' ',
14700
0a3b9ecf7cb8 patch 8.1.0362: cannot get the script line number when executing a function
Christian Brabandt <cb@256bit.org>
parents: 13986
diff changeset
33 \ 'nowait': 1, 'expr': 0, 'sid': sid, 'lnum': lnum + 1, 'rhs': 'bar',
20522
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
34 \ 'buffer': 1},
11651
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 \ maparg('foo', '', 0, 1))
17522
e17cbc3e545d patch 8.1.1759: no mode char for terminal mapping from maparg()
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
36 let lnum = expand('<sflnum>')
e17cbc3e545d patch 8.1.1759: no mode char for terminal mapping from maparg()
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
37 tmap baz foo
20522
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
38 call assert_equal({'silent': 0, 'noremap': 0, 'script': 0, 'lhs': 'baz',
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
39 \ 'lhsraw': 'baz', 'mode': 't',
17522
e17cbc3e545d patch 8.1.1759: no mode char for terminal mapping from maparg()
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
40 \ 'nowait': 0, 'expr': 0, 'sid': sid, 'lnum': lnum + 1, 'rhs': 'foo',
20522
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
41 \ 'buffer': 0},
17522
e17cbc3e545d patch 8.1.1759: no mode char for terminal mapping from maparg()
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
42 \ maparg('baz', 't', 0, 1))
11651
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
43
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
44 map abc x<char-114>x
13986
4a41a169e5ea patch 8.1.0011: maparg() and mapcheck() confuse empty and non-existing
Christian Brabandt <cb@256bit.org>
parents: 11651
diff changeset
45 call assert_equal("xrx", maparg('abc'))
11651
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46 map abc y<S-char-114>y
13986
4a41a169e5ea patch 8.1.0011: maparg() and mapcheck() confuse empty and non-existing
Christian Brabandt <cb@256bit.org>
parents: 11651
diff changeset
47 call assert_equal("yRy", maparg('abc'))
4a41a169e5ea patch 8.1.0011: maparg() and mapcheck() confuse empty and non-existing
Christian Brabandt <cb@256bit.org>
parents: 11651
diff changeset
48
19149
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 17930
diff changeset
49 omap { w
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 17930
diff changeset
50 let d = maparg('{', 'o', 0, 1)
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 17930
diff changeset
51 call assert_equal(['{', 'w', 'o'], [d.lhs, d.rhs, d.mode])
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 17930
diff changeset
52 ounmap {
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 17930
diff changeset
53
19170
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
54 lmap { w
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
55 let d = maparg('{', 'l', 0, 1)
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
56 call assert_equal(['{', 'w', 'l'], [d.lhs, d.rhs, d.mode])
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
57 lunmap {
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
58
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
59 nmap { w
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
60 let d = maparg('{', 'n', 0, 1)
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
61 call assert_equal(['{', 'w', 'n'], [d.lhs, d.rhs, d.mode])
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
62 nunmap {
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
63
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
64 xmap { w
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
65 let d = maparg('{', 'x', 0, 1)
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
66 call assert_equal(['{', 'w', 'x'], [d.lhs, d.rhs, d.mode])
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
67 xunmap {
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
68
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
69 smap { w
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
70 let d = maparg('{', 's', 0, 1)
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
71 call assert_equal(['{', 'w', 's'], [d.lhs, d.rhs, d.mode])
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
72 sunmap {
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
73
13986
4a41a169e5ea patch 8.1.0011: maparg() and mapcheck() confuse empty and non-existing
Christian Brabandt <cb@256bit.org>
parents: 11651
diff changeset
74 map abc <Nop>
4a41a169e5ea patch 8.1.0011: maparg() and mapcheck() confuse empty and non-existing
Christian Brabandt <cb@256bit.org>
parents: 11651
diff changeset
75 call assert_equal("<Nop>", maparg('abc'))
4a41a169e5ea patch 8.1.0011: maparg() and mapcheck() confuse empty and non-existing
Christian Brabandt <cb@256bit.org>
parents: 11651
diff changeset
76 unmap abc
19170
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
77
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
78 call feedkeys(":abbr esc \<C-V>\<C-V>\<C-V>\<C-V>\<C-V>\<Esc>\<CR>", "xt")
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
79 let d = maparg('esc', 'i', 1, 1)
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
80 call assert_equal(['esc', "\<C-V>\<C-V>\<Esc>", '!'], [d.lhs, d.rhs, d.mode])
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
81 abclear
20506
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
82 endfunc
11651
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
83
21695
f27187782dc6 patch 8.2.1397: Vim9: return type of maparg() not adjusted for fourth arg
Bram Moolenaar <Bram@vim.org>
parents: 20522
diff changeset
84 def Test_vim9_maparg()
f27187782dc6 patch 8.2.1397: Vim9: return type of maparg() not adjusted for fourth arg
Bram Moolenaar <Bram@vim.org>
parents: 20522
diff changeset
85 nmap { w
22435
166a0f17b05e patch 8.2.1766: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
86 var one: string = maparg('{')
21695
f27187782dc6 patch 8.2.1397: Vim9: return type of maparg() not adjusted for fourth arg
Bram Moolenaar <Bram@vim.org>
parents: 20522
diff changeset
87 assert_equal('w', one)
22435
166a0f17b05e patch 8.2.1766: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
88 var two: string = maparg('{', 'n')
21695
f27187782dc6 patch 8.2.1397: Vim9: return type of maparg() not adjusted for fourth arg
Bram Moolenaar <Bram@vim.org>
parents: 20522
diff changeset
89 assert_equal('w', two)
22435
166a0f17b05e patch 8.2.1766: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
90 var three: string = maparg('{', 'n', 0)
21695
f27187782dc6 patch 8.2.1397: Vim9: return type of maparg() not adjusted for fourth arg
Bram Moolenaar <Bram@vim.org>
parents: 20522
diff changeset
91 assert_equal('w', three)
22435
166a0f17b05e patch 8.2.1766: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
92 var four: dict<any> = maparg('{', 'n', 0, 1)
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 21695
diff changeset
93 assert_equal(['{', 'w', 'n'], [four.lhs, four.rhs, four.mode])
21695
f27187782dc6 patch 8.2.1397: Vim9: return type of maparg() not adjusted for fourth arg
Bram Moolenaar <Bram@vim.org>
parents: 20522
diff changeset
94 nunmap {
f27187782dc6 patch 8.2.1397: Vim9: return type of maparg() not adjusted for fourth arg
Bram Moolenaar <Bram@vim.org>
parents: 20522
diff changeset
95 enddef
f27187782dc6 patch 8.2.1397: Vim9: return type of maparg() not adjusted for fourth arg
Bram Moolenaar <Bram@vim.org>
parents: 20522
diff changeset
96
17930
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
97 func Test_mapcheck()
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
98 call assert_equal('', mapcheck('a'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
99 call assert_equal('', mapcheck('abc'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
100 call assert_equal('', mapcheck('ax'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
101 call assert_equal('', mapcheck('b'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
102
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
103 map a something
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
104 call assert_equal('something', mapcheck('a'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
105 call assert_equal('something', mapcheck('a', 'n'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
106 call assert_equal('', mapcheck('a', 'c'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
107 call assert_equal('', mapcheck('a', 'i'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
108 call assert_equal('something', 'abc'->mapcheck())
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
109 call assert_equal('something', 'ax'->mapcheck())
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
110 call assert_equal('', mapcheck('b'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
111 unmap a
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
112
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
113 map ab foobar
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
114 call assert_equal('foobar', mapcheck('a'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
115 call assert_equal('foobar', mapcheck('abc'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
116 call assert_equal('', mapcheck('ax'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
117 call assert_equal('', mapcheck('b'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
118 unmap ab
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
119
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
120 map abc barfoo
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
121 call assert_equal('barfoo', mapcheck('a'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
122 call assert_equal('barfoo', mapcheck('a', 'n', 0))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
123 call assert_equal('', mapcheck('a', 'n', 1))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
124 call assert_equal('barfoo', mapcheck('abc'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
125 call assert_equal('', mapcheck('ax'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
126 call assert_equal('', mapcheck('b'))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
127 unmap abc
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
128
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
129 abbr ab abbrev
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
130 call assert_equal('abbrev', mapcheck('a', 'i', 1))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
131 call assert_equal('', mapcheck('a', 'n', 1))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
132 call assert_equal('', mapcheck('a', 'i', 0))
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
133 unabbr ab
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
134 endfunc
0cdb6ac20748 patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17522
diff changeset
135
20506
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
136 func Test_range_map()
11651
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
137 new
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
138 " Outside of the range, minimum
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
139 inoremap <Char-0x1040> a
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
140 execute "normal a\u1040\<Esc>"
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
141 " Inside of the range, minimum
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
142 inoremap <Char-0x103f> b
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
143 execute "normal a\u103f\<Esc>"
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
144 " Inside of the range, maximum
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
145 inoremap <Char-0xf03f> c
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
146 execute "normal a\uf03f\<Esc>"
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
147 " Outside of the range, maximum
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
148 inoremap <Char-0xf040> d
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
149 execute "normal a\uf040\<Esc>"
140d51d5b5c3 patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
150 call assert_equal("abcd", getline(1))
20506
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
151 endfunc
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
152
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
153 func One_mapset_test(keys)
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
154 exe 'nnoremap ' .. a:keys .. ' original<CR>'
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
155 let orig = maparg(a:keys, 'n', 0, 1)
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
156 call assert_equal(a:keys, orig.lhs)
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
157 call assert_equal('original<CR>', orig.rhs)
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
158 call assert_equal('n', orig.mode)
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
159
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
160 exe 'nunmap ' .. a:keys
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
161 let d = maparg(a:keys, 'n', 0, 1)
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
162 call assert_equal({}, d)
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
163
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
164 call mapset('n', 0, orig)
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
165 let d = maparg(a:keys, 'n', 0, 1)
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
166 call assert_equal(a:keys, d.lhs)
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
167 call assert_equal('original<CR>', d.rhs)
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
168 call assert_equal('n', d.mode)
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
169
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
170 exe 'nunmap ' .. a:keys
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
171 endfunc
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
172
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
173 func Test_mapset()
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
174 call One_mapset_test('K')
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
175 call One_mapset_test('<F3>')
20516
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
176
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
177 " Check <> key conversion
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
178 new
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
179 inoremap K one<Left>x
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
180 call feedkeys("iK\<Esc>", 'xt')
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
181 call assert_equal('onxe', getline(1))
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
182
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
183 let orig = maparg('K', 'i', 0, 1)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
184 call assert_equal('K', orig.lhs)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
185 call assert_equal('one<Left>x', orig.rhs)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
186 call assert_equal('i', orig.mode)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
187
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
188 iunmap K
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
189 let d = maparg('K', 'i', 0, 1)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
190 call assert_equal({}, d)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
191
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
192 call mapset('i', 0, orig)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
193 call feedkeys("SK\<Esc>", 'xt')
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
194 call assert_equal('onxe', getline(1))
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
195
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
196 iunmap K
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
197
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
198 " Test literal <CR> using a backslash
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
199 let cpo_save = &cpo
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
200 set cpo-=B
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
201 inoremap K one\<CR>two
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
202 call feedkeys("SK\<Esc>", 'xt')
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
203 call assert_equal('one<CR>two', getline(1))
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
204
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
205 let orig = maparg('K', 'i', 0, 1)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
206 call assert_equal('K', orig.lhs)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
207 call assert_equal('one\<CR>two', orig.rhs)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
208 call assert_equal('i', orig.mode)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
209
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
210 iunmap K
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
211 let d = maparg('K', 'i', 0, 1)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
212 call assert_equal({}, d)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
213
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
214 call mapset('i', 0, orig)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
215 call feedkeys("SK\<Esc>", 'xt')
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
216 call assert_equal('one<CR>two', getline(1))
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
217
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
218 iunmap K
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
219
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
220 " Test literal <CR> using CTRL-V
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
221 inoremap K one<CR>two
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
222 call feedkeys("SK\<Esc>", 'xt')
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
223 call assert_equal('one<CR>two', getline(1))
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
224
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
225 let orig = maparg('K', 'i', 0, 1)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
226 call assert_equal('K', orig.lhs)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
227 call assert_equal("one\x16<CR>two", orig.rhs)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
228 call assert_equal('i', orig.mode)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
229
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
230 iunmap K
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
231 let d = maparg('K', 'i', 0, 1)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
232 call assert_equal({}, d)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
233
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
234 call mapset('i', 0, orig)
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
235 call feedkeys("SK\<Esc>", 'xt')
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
236 call assert_equal('one<CR>two', getline(1))
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
237
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
238 iunmap K
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
239 let &cpo = cpo_save
d9e3fdf26cb9 patch 8.2.0812: mapset() does not properly handle <> notation
Bram Moolenaar <Bram@vim.org>
parents: 20506
diff changeset
240 bwipe!
22450
9b09676b9e0e patch 8.2.1773: crash when calling mapset() with a list as first argument
Bram Moolenaar <Bram@vim.org>
parents: 22435
diff changeset
241
9b09676b9e0e patch 8.2.1773: crash when calling mapset() with a list as first argument
Bram Moolenaar <Bram@vim.org>
parents: 22435
diff changeset
242 call assert_fails('call mapset([], v:false, {})', 'E730:')
23984
e27b5529dc6a patch 8.2.2534: missing test coverage
Bram Moolenaar <Bram@vim.org>
parents: 22450
diff changeset
243 call assert_fails('call mapset("i", 0, "")', 'E716:')
e27b5529dc6a patch 8.2.2534: missing test coverage
Bram Moolenaar <Bram@vim.org>
parents: 22450
diff changeset
244 call assert_fails('call mapset("i", 0, {})', 'E460:')
20506
aee0b72ca6d6 patch 8.2.0807: cannot easily restore a mapping
Bram Moolenaar <Bram@vim.org>
parents: 19870
diff changeset
245 endfunc
19149
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 17930
diff changeset
246
20522
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
247 func Check_ctrlb_map(d, check_alt)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
248 call assert_equal('<C-B>', a:d.lhs)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
249 if a:check_alt
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
250 call assert_equal("\x80\xfc\x04B", a:d.lhsraw)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
251 call assert_equal("\x02", a:d.lhsrawalt)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
252 else
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
253 call assert_equal("\x02", a:d.lhsraw)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
254 endif
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
255 endfunc
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
256
24529
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
257 func Test_map_local()
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
258 nmap a global
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
259 nmap <buffer>a local
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
260
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
261 let prev_map_list = split(execute('nmap a'), "\n")
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
262 call assert_match('n\s*a\s*@local', prev_map_list[0])
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
263 call assert_match('n\s*a\s*global', prev_map_list[1])
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
264
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
265 let mapping = maparg('a', 'n', 0, 1)
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
266 call assert_equal(1, mapping.buffer)
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
267 let mapping.rhs = 'new_local'
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
268 call mapset('n', 0, mapping)
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
269
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
270 " Check that the global mapping is left untouched.
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
271 let map_list = split(execute('nmap a'), "\n")
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
272 call assert_match('n\s*a\s*@new_local', map_list[0])
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
273 call assert_match('n\s*a\s*global', map_list[1])
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
274
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
275 nunmap a
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
276 endfunc
db2b4e867d06 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Bram Moolenaar <Bram@vim.org>
parents: 23984
diff changeset
277
20522
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
278 func Test_map_restore()
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
279 " Test restoring map with alternate keycode
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
280 nmap <C-B> back
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
281 let d = maparg('<C-B>', 'n', 0, 1)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
282 call Check_ctrlb_map(d, 1)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
283 let dsimp = maparg("\x02", 'n', 0, 1)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
284 call Check_ctrlb_map(dsimp, 0)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
285 nunmap <C-B>
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
286 call mapset('n', 0, d)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
287 let d = maparg('<C-B>', 'n', 0, 1)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
288 call Check_ctrlb_map(d, 1)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
289 let dsimp = maparg("\x02", 'n', 0, 1)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
290 call Check_ctrlb_map(dsimp, 0)
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
291
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
292 nunmap <C-B>
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
293
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
294 endfunc
729853a754ea patch 8.2.0815: maparg() does not provide enough information for mapset()
Bram Moolenaar <Bram@vim.org>
parents: 20516
diff changeset
295
19149
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 17930
diff changeset
296 " vim: shiftwidth=2 sts=2 expandtab