diff src/charset.c @ 11333:fef09eb74832 v8.0.0552

patch 8.0.0552: toupper and tolower don't work properly for Turkish commit https://github.com/vim/vim/commit/3317d5ebbe8304da82b8088446060afcae0012af Author: Bram Moolenaar <Bram@vim.org> Date: Sat Apr 8 19:12:06 2017 +0200 patch 8.0.0552: toupper and tolower don't work properly for Turkish Problem: Toupper and tolower don't work properly for Turkish when 'casemap' is empty. (Bjorn Linse) Solution: Check the 'casemap' options when deciding how to upper/lower case.
author Christian Brabandt <cb@256bit.org>
date Sat, 08 Apr 2017 19:15:03 +0200
parents d8e830e32be9
children f0fbebf19b80
line wrap: on
line diff
--- a/src/charset.c
+++ b/src/charset.c
@@ -960,7 +960,7 @@ vim_isfilec_or_wc(int c)
 }
 
 /*
- * return TRUE if 'c' is a printable character
+ * Return TRUE if 'c' is a printable character.
  * Assume characters above 0x100 are printable (multi-byte), except for
  * Unicode.
  */
@@ -1717,7 +1717,7 @@ vim_toupper(int c)
 {
     if (c <= '@')
 	return c;
-    if (c >= 0x80)
+    if (c >= 0x80 || !(cmp_flags & CMP_KEEPASCII))
     {
 	if (enc_utf8)
 	    return utf_toupper(c);
@@ -1741,7 +1741,7 @@ vim_tolower(int c)
 {
     if (c <= '@')
 	return c;
-    if (c >= 0x80)
+    if (c >= 0x80 || !(cmp_flags & CMP_KEEPASCII))
     {
 	if (enc_utf8)
 	    return utf_tolower(c);