patch 8.0.0554: toupper and tolower don't work properly for Turkish
Problem: Toupper and tolower don't work properly for Turkish when 'casemap'
contains "keepascii". (Bjorn Linse)
Solution: When 'casemap' contains "keepascii" use ASCII toupper/tolower.
diff --git a/src/charset.c b/src/charset.c
index cdb9e48..d649179 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1733,6 +1733,8 @@
if (enc_latin1like)
return latin1upper[c];
}
+ if (c < 0x80 && (cmp_flags & CMP_KEEPASCII))
+ return TOUPPER_ASC(c);
return TOUPPER_LOC(c);
}
@@ -1757,6 +1759,8 @@
if (enc_latin1like)
return latin1lower[c];
}
+ if (c < 0x80 && (cmp_flags & CMP_KEEPASCII))
+ return TOLOWER_ASC(c);
return TOLOWER_LOC(c);
}
#endif