1
0
forked from aniani/vim

patch 8.1.1857: cannot use modifier with multi-byte character

Problem:    Cannot use modifier with multi-byte character.
Solution:   Allow using a multi-byte character, although it doesn't work
            everywhere.
This commit is contained in:
Bram Moolenaar 2019-08-16 20:33:05 +02:00
parent 78d629a385
commit c8fd33d18b
3 changed files with 13 additions and 5 deletions

View File

@ -2819,10 +2819,10 @@ find_special_key(
l = mb_ptr2len(bp + 1);
else
l = 1;
/* Anything accepted, like <C-?>.
* <C-"> or <M-"> are not special in strings as " is
* the string delimiter. With a backslash it works: <M-\"> */
if (!(in_string && bp[1] == '"') && bp[2] == '>')
// Anything accepted, like <C-?>.
// <C-"> or <M-"> are not special in strings as " is
// the string delimiter. With a backslash it works: <M-\">
if (!(in_string && bp[1] == '"') && bp[l + 1] == '>')
bp += l;
else if (in_string && bp[1] == '\\' && bp[2] == '"'
&& bp[3] == '>')

View File

@ -239,6 +239,12 @@ func Test_map_meta_quotes()
iunmap <M-">
endfunc
func Test_map_meta_multibyte()
imap <M-á> foo
call assert_equal('foo', maparg("\<M-á>", 'i'))
iunmap <M-á>
endfunc
func Test_abbr_after_line_join()
new
abbr foo bar
@ -292,7 +298,7 @@ func Test_map_timeout_with_timer_interrupt()
let g:val = 0
nnoremap \12 :let g:val = 1<CR>
nnoremap \123 :let g:val = 2<CR>
set timeout timeoutlen=1000
set timeout timeoutlen=100
func ExitCb(job, status)
let g:timer = timer_start(1, {-> feedkeys("3\<Esc>", 't')})

View File

@ -769,6 +769,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1857,
/**/
1856,
/**/