0
0
mirror of https://github.com/vim/vim.git synced 2025-10-03 05:14:07 -04:00

updated for version 7.2.426

Problem:    Commas in 'langmap' are not always handled correctly.
Solution:   Require commas to be backslash escaped. (James Vega)
This commit is contained in:
Bram Moolenaar
2010-05-14 17:32:58 +02:00
parent 2321c9255e
commit 6af0506370
2 changed files with 23 additions and 17 deletions

View File

@@ -10432,6 +10432,11 @@ langmap_set()
p2 = NULL; /* aAbBcCdD form, p2 is NULL */ p2 = NULL; /* aAbBcCdD form, p2 is NULL */
while (p[0]) while (p[0])
{ {
if (p[0] == ',')
{
++p;
break;
}
if (p[0] == '\\' && p[1] != NUL) if (p[0] == '\\' && p[1] != NUL)
++p; ++p;
#ifdef FEAT_MBYTE #ifdef FEAT_MBYTE
@@ -10439,26 +10444,33 @@ langmap_set()
#else #else
from = p[0]; from = p[0];
#endif #endif
to = NUL;
if (p2 == NULL) if (p2 == NULL)
{ {
mb_ptr_adv(p); mb_ptr_adv(p);
if (p[0] == '\\') if (p[0] != ',')
++p; {
if (p[0] == '\\')
++p;
#ifdef FEAT_MBYTE #ifdef FEAT_MBYTE
to = (*mb_ptr2char)(p); to = (*mb_ptr2char)(p);
#else #else
to = p[0]; to = p[0];
#endif #endif
}
} }
else else
{ {
if (p2[0] == '\\') if (p2[0] != ',')
++p2; {
if (p2[0] == '\\')
++p2;
#ifdef FEAT_MBYTE #ifdef FEAT_MBYTE
to = (*mb_ptr2char)(p2); to = (*mb_ptr2char)(p2);
#else #else
to = p2[0]; to = p2[0];
#endif #endif
}
} }
if (to == NUL) if (to == NUL)
{ {
@@ -10476,15 +10488,7 @@ langmap_set()
/* Advance to next pair */ /* Advance to next pair */
mb_ptr_adv(p); mb_ptr_adv(p);
if (p2 == NULL) if (p2 != NULL)
{
if (p[0] == ',')
{
++p;
break;
}
}
else
{ {
mb_ptr_adv(p2); mb_ptr_adv(p2);
if (*p == ';') if (*p == ';')

View File

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