diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2022-05-09 19:19:07 +0800 |
|---|---|---|
| committer | zeertzjq <zeertzjq@outlook.com> | 2022-05-09 19:19:21 +0800 |
| commit | db506d991d80eb12016564eb62b5f636e7c8c836 (patch) | |
| tree | 7678419391e69208de255f1f5b28e8140c4c6a19 /src/nvim/testdir | |
| parent | 41ce7b07e2946bdde0061d7af5b4446efafa5089 (diff) | |
| download | rneovim-db506d991d80eb12016564eb62b5f636e7c8c836.tar.gz rneovim-db506d991d80eb12016564eb62b5f636e7c8c836.tar.bz2 rneovim-db506d991d80eb12016564eb62b5f636e7c8c836.zip | |
vim-patch:8.2.4924: maparg() may return a string that cannot be reused
Problem: maparg() may return a string that cannot be reused.
Solution: use msg_outtrans_special() instead of str2special().
(closes vim/vim#10384)
https://github.com/vim/vim/commit/0519ce00394474055bd58c089ea90a19986443eb
Diffstat (limited to 'src/nvim/testdir')
| -rw-r--r-- | src/nvim/testdir/test_maparg.vim | 14 | ||||
| -rw-r--r-- | src/nvim/testdir/test_mapping.vim | 7 | ||||
| -rw-r--r-- | src/nvim/testdir/test_options.vim | 20 |
3 files changed, 41 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_maparg.vim b/src/nvim/testdir/test_maparg.vim index cebde89996..f9429a8020 100644 --- a/src/nvim/testdir/test_maparg.vim +++ b/src/nvim/testdir/test_maparg.vim @@ -42,6 +42,20 @@ function Test_maparg() map abc y<S-char-114>y call assert_equal("yRy", maparg('abc')) + " character with K_SPECIAL byte + nmap abc … + call assert_equal('…', maparg('abc')) + + " modified character with K_SPECIAL byte + nmap abc <M-…> + call assert_equal('<M-…>', maparg('abc')) + + " illegal bytes + let str = ":\x7f:\x80:\x90:\xd0:" + exe 'nmap abc ' .. str + call assert_equal(str, maparg('abc')) + unlet str + omap { w let d = maparg('{', 'o', 0, 1) call assert_equal(['{', 'w', 'o'], [d.lhs, d.rhs, d.mode]) diff --git a/src/nvim/testdir/test_mapping.vim b/src/nvim/testdir/test_mapping.vim index b5158295b4..995511cddf 100644 --- a/src/nvim/testdir/test_mapping.vim +++ b/src/nvim/testdir/test_mapping.vim @@ -488,6 +488,13 @@ func Test_list_mappings() call assert_equal(['n <M-…> foo'], \ execute('nmap <M-…>')->trim()->split("\n")) + " illegal bytes + let str = ":\x7f:\x80:\x90:\xd0:" + exe 'nmap foo ' .. str + call assert_equal(['n foo ' .. strtrans(str)], + \ execute('nmap foo')->trim()->split("\n")) + unlet str + " map to CTRL-V exe "nmap ,k \<C-V>" call assert_equal(['n ,k <Nop>'], diff --git a/src/nvim/testdir/test_options.vim b/src/nvim/testdir/test_options.vim index d16d89ec2e..8f67b1732e 100644 --- a/src/nvim/testdir/test_options.vim +++ b/src/nvim/testdir/test_options.vim @@ -31,6 +31,26 @@ func Test_isfname() set isfname& endfunc +" Test for getting the value of 'pastetoggle' +func Test_pastetoggle() + " character with K_SPECIAL byte + let &pastetoggle = '…' + call assert_equal('…', &pastetoggle) + call assert_equal("\n pastetoggle=…", execute('set pastetoggle?')) + + " modified character with K_SPECIAL byte + let &pastetoggle = '<M-…>' + call assert_equal('<M-…>', &pastetoggle) + call assert_equal("\n pastetoggle=<M-…>", execute('set pastetoggle?')) + + " illegal bytes + let str = ":\x7f:\x80:\x90:\xd0:" + let &pastetoggle = str + call assert_equal(str, &pastetoggle) + call assert_equal("\n pastetoggle=" .. strtrans(str), execute('set pastetoggle?')) + unlet str +endfunc + func Test_wildchar() " Empty 'wildchar' used to access invalid memory. call assert_fails('set wildchar=', 'E521:') |