Wrong behaviour of g_utf8_strdown() using tr_TR.utf8 locale
Submitted by Giulio Paci
Link to original bug (#640095)
Description
Converting to upper case and then to lower case of the string "i" does not work properly in the tr_TR.utf8 locale. The upper case version of the string is right, but the lower case version is an i with a dot.
I did not try it, but I think that adding this code to the real_tolower() function should fix the issue:
else if (locale_type == LOCALE_TURKIC && c == '0x130')
{
/* LATIN CAPITAL LETTER I WITH DOT ABOVE => i */
len += g_unichar_to_utf8 (0x069, out_buffer ? out_buffer + len : NULL);
}
Another, probably related issue, is that using g_utf8_casefold() on"İi" and "iİ" leads to different results.