https://bugs.winehq.org/show_bug.cgi?id=45322
Bug ID: 45322 Summary: tr_TR.UTF-8 broken LANG ! Product: Wine Version: 3.9 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: critical Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: m.yaman9898@gmail.com Distribution: ---
Created attachment 61607 --> https://bugs.winehq.org/attachment.cgi?id=61607 League Of Legends İnstaller With LANG=tr_TR.UTF-8
There is a big problem with "tr_TR.UTF-8 " Its broken in Wine. Look at this post :https://forum.manjaro.org/t/edit-wine-system-language-conflicts/49751/
This is my post and if you read you can understand the problem.
I attached League Of Legends installer with LANG=tr_TR.UTF-8 option.
[ unknown color “systemhighlight” ]
https://bugs.winehq.org/show_bug.cgi?id=45322
--- Comment #1 from Nikolay Sivov bunglehead@gmail.com --- Does it work on Windows with Turkish locale?
https://bugs.winehq.org/show_bug.cgi?id=45322
--- Comment #2 from Fabian Maurer dark.shadow4@web.de --- What desktop environment do you use?
Can you link the installer that you use?
https://bugs.winehq.org/show_bug.cgi?id=45322
--- Comment #3 from m.yaman9898@gmail.com --- (In reply to Nikolay Sivov from comment #1)
Does it work on Windows with Turkish locale?
Yeah its works like a charm :D
https://bugs.winehq.org/show_bug.cgi?id=45322
--- Comment #4 from m.yaman9898@gmail.com --- (In reply to Fabian Maurer from comment #2)
What desktop environment do you use?
Can you link the installer that you use?
GNOME Shell 3.28.2 4.14.48-2-MANJARO #1 SMP PREEMPT Fri Jun 8 20:41:40 UTC 2018 x86_64 GNU/Linux
https://bugs.winehq.org/show_bug.cgi?id=45322
--- Comment #5 from m.yaman9898@gmail.com --- (In reply to Fabian Maurer from comment #2)
What desktop environment do you use?
Can you link the installer that you use?
https://riotgamespatcher-a.akamaihd.net/releases/live/installer/deploy/Leagu...
https://bugs.winehq.org/show_bug.cgi?id=45322
--- Comment #6 from Yaman m.yaman9898@gmail.com --- Edit : Its not only in league of legends. In battle.net launcher only white screen with LANG=tr_TR.UTF-8 . I dont tried too much game etc. But problem isnt only one game, app.
https://bugs.winehq.org/show_bug.cgi?id=45322
Yaman m.yaman9898@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |ArchLinux
https://bugs.winehq.org/show_bug.cgi?id=45322
Jactry Zeng jactry92@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jactry92@gmail.com
--- Comment #7 from Jactry Zeng jactry92@gmail.com --- Created attachment 63852 --> https://bugs.winehq.org/attachment.cgi?id=63852 hardcoding hark for installer of LOL.
Confirming, wine-4.3-296-g839b5515f2.
By comparing a relay log with another relay log on zh_CN.UTF-8, it seems that this is a problem about strnicmp() in msvcrt:
tr_CY.UTF-8: 002c:Call msvcrt._stricmp(013684e6 "Highlight",0060072f "InfoText") ret=004737a6 002c:Ret msvcrt._stricmp() retval=0000001f ret=004737a6 002c:Call msvcrt._stricmp(013684e6 "Highlight",00600746 "Scrollbar") ret=004737a6 002c:Ret msvcrt._stricmp() retval=fffffff5 ret=004737a6 002c:Call msvcrt._stricmp(013684e6 "Highlight",00600738 "Menu") ret=004737a6 002c:Ret msvcrt._stricmp() retval=fffffffb ret=004737a6
zh_CN.UTF-8: 0039:Call msvcrt._stricmp(012ee3be "Highlight",0060072f "InfoText") ret=004737a6 0039:Ret msvcrt._stricmp() retval=ffffffff ret=004737a6 0039:Call msvcrt._stricmp(012ee3be "Highlight",006006ed "InactiveBorder") ret=004737a6 0039:Ret msvcrt._stricmp() retval=ffffffff ret=004737a6 0039:Call msvcrt._stricmp(012ee3be "Highlight",006006d5 "Highlight") ret=004737a6 0039:Ret msvcrt._stricmp() retval=00000000 ret=004737a6
Hacking strnicmp() with hardcoding a correct return value can make the installer work on Turkish locale.
https://bugs.winehq.org/show_bug.cgi?id=45322
Jactry Zeng jactry92@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |msvcrt URL| |https://riotgamespatcher-a. | |akamaihd.net/releases/live/ | |installer/deploy/League%20o | |f%20Legends%20installer%20N | |A.exe Ever confirmed|0 |1 Keywords| |download, Installer Status|UNCONFIRMED |NEW
--- Comment #8 from Jactry Zeng jactry92@gmail.com --- Since a msvcrt hack helps, I mark this as a msvcrt bug. Please correct me if this is wrong.
btw, the error of the installer was from tcltk. And tcltk has more Turkish-special bugs on Wine.
https://bugs.winehq.org/show_bug.cgi?id=45322
Jactry Zeng jactry92@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|tr_TR.UTF-8 broken LANG ! |League Of Legends installer | |on tr_TR.UTF-8: unknown | |color "systemhighlight"
https://bugs.winehq.org/show_bug.cgi?id=45322
alasky@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alasky@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=45322
--- Comment #9 from Jactry Zeng jactry92@gmail.com --- Created attachment 63861 --> https://bugs.winehq.org/attachment.cgi?id=63861 testcase of strncasecmp.
Interesting, this seems like a bug of glibc. msvcrt._stricmp is using strncasecmp() from glibc for some case, and strncasecmp() return a wrong result on tr_TR.UTF-8.
Attachment is a testcase for describing it, you can compile it with `gcc test_strncasecmp.c -o test_strncasecmp -Wall`. On my Debian with 2.28-8 it return -32 for the first comparing. And on macOS it returned 0, since macOS was using a different C library implementation.
Commenting the strncasecmp() branch in msvcrt's MSVCRT__strnicmp_l() will make this installer work, too.
https://bugs.winehq.org/show_bug.cgi?id=45322
--- Comment #10 from Henri Verbeet hverbeet@gmail.com --- (In reply to Jactry Zeng from comment #9)
Attachment is a testcase for describing it, you can compile it with `gcc test_strncasecmp.c -o test_strncasecmp -Wall`. On my Debian with 2.28-8 it return -32 for the first comparing. And on macOS it returned 0, since macOS was using a different C library implementation.
I only have limited experience with Turkish orthography, but my understanding is that the correct capitalisation of 'i' would be 'İ', while 'I' would be the capitalisation of 'ı'.
Based on that, the glibc result is what I would expect, and the macOS result isn't.
https://bugs.winehq.org/show_bug.cgi?id=45322
Jactry Zeng jactry92@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED Fixed by SHA1| |c8e195e1797bd513c91927743b3 | |ed38fdfa86c2f
--- Comment #11 from Jactry Zeng jactry92@gmail.com --- Fixed by https://source.winehq.org/git/wine.git/?a=commit;h=c8e195e1797bd513c91927743... . Thanks Piotr!
https://bugs.winehq.org/show_bug.cgi?id=45322
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #12 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.5.