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.
if (enc_latin1like)
return latin1upper[c];
}
+ if (c < 0x80 && (cmp_flags & CMP_KEEPASCII))
+ return TOUPPER_ASC(c);
return TOUPPER_LOC(c);
}
if (enc_latin1like)
return latin1lower[c];
}
+ if (c < 0x80 && (cmp_flags & CMP_KEEPASCII))
+ return TOLOWER_ASC(c);
return TOLOWER_LOC(c);
}
#endif
call assert_equal("i\u0131", getline(1))
call assert_equal("i\u0131", tolower("iI"))
+ set casemap&
+ call setline(1, 'iI')
+ 1normal gUU
+ call assert_equal("II", getline(1))
+ call assert_equal("II", toupper("iI"))
+
+ call setline(1, 'iI')
+ 1normal guu
+ call assert_equal("ii", getline(1))
+ call assert_equal("ii", tolower("iI"))
+
lang en_US.UTF-8
catch /E197:/
" can't use Turkish locale
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 554,
/**/
553,
/**/