0
0
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:
Bram Moolenaar
2014-03-12 20:17:51 +01:00
parent 8eded09bf7
commit 1d9ff43f58
4 changed files with 30 additions and 4 deletions

View File

@@ -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.