summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@zimbu.org>2010-05-14 17:32:58 +0200
committerBram Moolenaar <bram@zimbu.org>2010-05-14 17:32:58 +0200
commit92583102ab4b0e6e3c590d6de5888aecbaad3fc3 (patch)
tree08e4983e11c7f422d5b09bd5b55f12f6b4ef8aaa
parenta41546ea830fb95a497420ab28e0b22870b37657 (diff)
downloadvim-92583102ab4b0e6e3c590d6de5888aecbaad3fc3.tar.gz
updated for version 7.2.426v7.2.426v7-2-426
Problem: Commas in 'langmap' are not always handled correctly. Solution: Require commas to be backslash escaped. (James Vega)
-rw-r--r--src/option.c38
-rw-r--r--src/version.c2
2 files changed, 23 insertions, 17 deletions
diff --git a/src/option.c b/src/option.c
index a59beed7..f93d839c 100644
--- a/src/option.c
+++ b/src/option.c
@@ -10432,6 +10432,11 @@ langmap_set()
p2 = NULL; /* aAbBcCdD form, p2 is NULL */
while (p[0])
{
+ if (p[0] == ',')
+ {
+ ++p;
+ break;
+ }
if (p[0] == '\\' && p[1] != NUL)
++p;
#ifdef FEAT_MBYTE
@@ -10439,26 +10444,33 @@ langmap_set()
#else
from = p[0];
#endif
+ to = NUL;
if (p2 == NULL)
{
mb_ptr_adv(p);
- if (p[0] == '\\')
- ++p;
+ if (p[0] != ',')
+ {
+ if (p[0] == '\\')
+ ++p;
#ifdef FEAT_MBYTE
- to = (*mb_ptr2char)(p);
+ to = (*mb_ptr2char)(p);
#else
- to = p[0];
+ to = p[0];
#endif
+ }
}
else
{
- if (p2[0] == '\\')
- ++p2;
+ if (p2[0] != ',')
+ {
+ if (p2[0] == '\\')
+ ++p2;
#ifdef FEAT_MBYTE
- to = (*mb_ptr2char)(p2);
+ to = (*mb_ptr2char)(p2);
#else
- to = p2[0];
+ to = p2[0];
#endif
+ }
}
if (to == NUL)
{
@@ -10476,15 +10488,7 @@ langmap_set()
/* Advance to next pair */
mb_ptr_adv(p);
- if (p2 == NULL)
- {
- if (p[0] == ',')
- {
- ++p;
- break;
- }
- }
- else
+ if (p2 != NULL)
{
mb_ptr_adv(p2);
if (*p == ';')
diff --git a/src/version.c b/src/version.c
index 5cda9f9e..0572f97a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -682,6 +682,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 426,
+/**/
425,
/**/
424,