summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2008-06-28 11:03:50 +0000
committerBram Moolenaar <Bram@vim.org>2008-06-28 11:03:50 +0000
commitb983921b0cf2495af5192abc96d0066e09f02212 (patch)
treed55f53c774ba135a2f5c885d715606e5935ba69c
parented0e7453617c558532aac0224e958f2bdad12a31 (diff)
updated for version 7.2a-006v7.2a.006
-rw-r--r--src/charset.c14
-rw-r--r--src/version.c2
2 files changed, 10 insertions, 6 deletions
diff --git a/src/charset.c b/src/charset.c
index 282e8573e5..0c9c51136f 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -449,13 +449,15 @@ str_foldcase(str, orglen, buf, buflen)
{
if (enc_utf8)
{
- int c, lc;
-
- c = utf_ptr2char(STR_PTR(i));
- lc = utf_tolower(c);
- if (c != lc)
+ int c = utf_ptr2char(STR_PTR(i));
+ int ol = utf_ptr2len(STR_PTR(i));
+ int lc = utf_tolower(c);
+
+ /* Only replace the character when it is not an invalid
+ * sequence (ASCII character or more than one byte) and
+ * utf_tolower() doesn't return the original character. */
+ if ((c < 0x80 || ol > 1) && c != lc)
{
- int ol = utf_char2len(c);
int nl = utf_char2len(lc);
/* If the byte length changes need to shift the following
diff --git a/src/version.c b/src/version.c
index 95d6d54f0b..d8a008d78e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -677,6 +677,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 6,
+/**/
5,
/**/
4,