diff options
author | Bram Moolenaar <bram@zimbu.org> | 2010-05-14 17:32:58 +0200 |
---|---|---|
committer | Bram Moolenaar <bram@zimbu.org> | 2010-05-14 17:32:58 +0200 |
commit | 92583102ab4b0e6e3c590d6de5888aecbaad3fc3 (patch) | |
tree | 08e4983e11c7f422d5b09bd5b55f12f6b4ef8aaa | |
parent | a41546ea830fb95a497420ab28e0b22870b37657 (diff) | |
download | vim-92583102ab4b0e6e3c590d6de5888aecbaad3fc3.tar.gz |
Problem: Commas in 'langmap' are not always handled correctly.
Solution: Require commas to be backslash escaped. (James Vega)
-rw-r--r-- | src/option.c | 38 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |