What steps will reproduce the problem?
1. :set langmap=öc
2. :map col :set list!
3. Press: öol
What is the expected output? What do you see instead?
The list setting should have been toggled, but the mapping gets aborted after
"öo".
Using "öap" to change a paragraph works.
This is related to the langmap lhs character being multibyte, it works with
"langmap=dc".
What version of the product are you using? On what operating system?
7.4.552
Please provide any additional information below.
It's probably some issue where multibyte characters in mappings are not handled
properly in `do_map` or somewhere similar.
It might be related to this code:
if (mp->m_keys[0] == c1
&& (mp->m_mode & local_State)
&& ((mp->m_mode & LANGMAP) == 0
|| typebuf.tb_maplen == 0)
)
{
#ifdef FEAT_LANGMAP
int nomap = nolmaplen;
int c2;
#endif
/* find the match length of this mapping */
for (mlen = 1; mlen < typebuf.tb_len; ++mlen)
{
#ifdef FEAT_LANGMAP
c2 = typebuf.tb_buf[typebuf.tb_off + mlen];
if (nomap > 0)
--nomap;
else if (c2 == K_SPECIAL)
nomap = 2;
else
LANGMAP_ADJUST(c2, TRUE);
if (mp->m_keys[mlen] != c2)
#else
if (mp->m_keys[mlen] !=
typebuf.tb_buf[typebuf.tb_off + mlen])
#endif
break;
}
Original issue reported on code.google.com by dhahler@gmail.com on 14 Dec 2014 at 7:09
Original issue reported on code.google.com by
dhahler@gmail.com
on 14 Dec 2014 at 7:09