mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
updated for version 7.4.204
Problem: A mapping where the second byte is 0x80 doesn't work. Solution: Unescape before checking for incomplete multi-byte char. (Nobuhiro Takasaki)
This commit is contained in:
@@ -2206,10 +2206,16 @@ vgetorpeek(advance)
|
||||
#ifdef FEAT_MBYTE
|
||||
/* Don't allow mapping the first byte(s) of a
|
||||
* multi-byte char. Happens when mapping
|
||||
* <M-a> and then changing 'encoding'. */
|
||||
if (has_mbyte && MB_BYTE2LEN(c1)
|
||||
> (*mb_ptr2len)(mp->m_keys))
|
||||
mlen = 0;
|
||||
* <M-a> and then changing 'encoding'. Beware
|
||||
* that 0x80 is escaped. */
|
||||
{
|
||||
char_u *p1 = mp->m_keys;
|
||||
char_u *p2 = mb_unescape(&p1);
|
||||
|
||||
if (has_mbyte && p2 != NULL
|
||||
&& MB_BYTE2LEN(c1) > MB_PTR2LEN(p2))
|
||||
mlen = 0;
|
||||
}
|
||||
#endif
|
||||
/*
|
||||
* Check an entry whether it matches.
|
||||
|
Reference in New Issue
Block a user