aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir/test_eval_stuff.vim
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-05-03 07:30:12 +0800
committerGitHub <noreply@github.com>2022-05-03 07:30:12 +0800
commitcf474021ed44f197da3c67214fcb95a20886799c (patch)
treebff933e965afcb939aaacdad6b44f00eae9a25cf /src/nvim/testdir/test_eval_stuff.vim
parentddf7bb24f98b468d2bc6c16c6f300570fc6530f5 (diff)
parent15602a7ce49a2f39666aa6a4f3289683835e83dd (diff)
downloadrneovim-cf474021ed44f197da3c67214fcb95a20886799c.tar.gz
rneovim-cf474021ed44f197da3c67214fcb95a20886799c.tar.bz2
rneovim-cf474021ed44f197da3c67214fcb95a20886799c.zip
Merge pull request #18381 from zeertzjq/vim-8.2.4858
vim-patch:8.2.4858: K_SPECIAL may be escaped twice
Diffstat (limited to 'src/nvim/testdir/test_eval_stuff.vim')
-rw-r--r--src/nvim/testdir/test_eval_stuff.vim22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_eval_stuff.vim b/src/nvim/testdir/test_eval_stuff.vim
index 95eccde35c..811c6c946d 100644
--- a/src/nvim/testdir/test_eval_stuff.vim
+++ b/src/nvim/testdir/test_eval_stuff.vim
@@ -320,4 +320,26 @@ func Test_curly_assignment()
unlet g:gvar
endfunc
+" K_SPECIAL in the modified character used be escaped, which causes
+" double-escaping with feedkeys() or as the return value of an <expr> mapping,
+" and doesn't match what getchar() returns,
+func Test_modified_char_no_escape_special()
+ nnoremap <M-…> <Cmd>let g:got_m_ellipsis += 1<CR>
+ call feedkeys("\<M-…>", 't')
+ call assert_equal("\<M-…>", getchar())
+ let g:got_m_ellipsis = 0
+ call feedkeys("\<M-…>", 'xt')
+ call assert_equal(1, g:got_m_ellipsis)
+ func Func()
+ return "\<M-…>"
+ endfunc
+ nmap <expr> <F2> Func()
+ call feedkeys("\<F2>", 'xt')
+ call assert_equal(2, g:got_m_ellipsis)
+ delfunc Func
+ nunmap <F2>
+ unlet g:got_m_ellipsis
+ nunmap <M-…>
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab