]> granicus.if.org Git - vim/commitdiff
updated for version 7.2.426 v7.2.426
authorBram Moolenaar <Bram@vim.org>
Fri, 14 May 2010 15:32:58 +0000 (17:32 +0200)
committerBram Moolenaar <Bram@vim.org>
Fri, 14 May 2010 15:32:58 +0000 (17:32 +0200)
Problem:    Commas in 'langmap' are not always handled correctly.
Solution:   Require commas to be backslash escaped. (James Vega)

src/option.c
src/version.c

index a59beed7fb6ee7867ae5bfffffe17ebda1348581..f93d839cc611df1d04ceb59284527618d460e23f 100644 (file)
@@ -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 == ';')
index 5cda9f9e1ecc2ed37127c8c91ce95ceb108b37c2..0572f97a9fae2979caaa7c64198090e74a722bd0 100644 (file)
@@ -681,6 +681,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    426,
 /**/
     425,
 /**/