forked from aniani/vim
patch 8.2.4858: K_SPECIAL may be escaped twice
Problem: K_SPECIAL may be escaped twice. Solution: Avoid double escaping. (closes #10340)
This commit is contained in:
@@ -595,4 +595,26 @@ func Test_deep_recursion()
|
||||
call assert_fails("exe 'if ' .. repeat('(', 1002)", 'E1169: Expression too recursive: ((')
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user