Permalink
Browse files

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.
  • Loading branch information...
brammool committed Apr 9, 2017
1 parent 9f4de1f commit 1cc482069a3407132aeb43a55d6dc284153e79c7
Showing with 17 additions and 0 deletions.
  1. +4 −0 src/charset.c
  2. +11 −0 src/testdir/test_normal.vim
  3. +2 −0 src/version.c
View
@@ -1733,6 +1733,8 @@ vim_toupper(int c)
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 @@ vim_tolower(int c)
if (enc_latin1like)
return latin1lower[c];
}
if (c < 0x80 && (cmp_flags & CMP_KEEPASCII))
return TOLOWER_ASC(c);
return TOLOWER_LOC(c);
}
#endif
@@ -1619,6 +1619,17 @@ fun! Test_normal30_changecase()
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
View
@@ -764,6 +764,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
554,
/**/
553,
/**/

0 comments on commit 1cc4820

Please sign in to comment.