In tr_TR.UTF-8 locale tolower('I') != 'i' (this is not a bug in glibc, tolower('I') is suppossed to return dotless i that is 2-byte long). Because of that strcasemp("i", "I") returns that the strings are different.
Another way of fixing it is to stop setting system locale for LC_CTYPE.
Spotted by Jactry Zeng. Signed-off-by: Piotr Caban piotr@codeweavers.com --- dlls/msvcrt/locale.c | 13 +++++++------ dlls/msvcrt/mbcs.c | 5 +++-- dlls/msvcrt/string.c | 7 ++++--- include/wine/strings.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 11 deletions(-) create mode 100644 include/wine/strings.h
Piotr Caban piotr@codeweavers.com writes:
In tr_TR.UTF-8 locale tolower('I') != 'i' (this is not a bug in glibc, tolower('I') is suppossed to return dotless i that is 2-byte long). Because of that strcasemp("i", "I") returns that the strings are different.
Another way of fixing it is to stop setting system locale for LC_CTYPE.
That would probably be a better approach.