Filip Navara wrote:
Dmitry Timoshkov wrote:
We should not complicate things, especially since it's not clear at all what APIs are affected by system/user locale differences.
System locale affects
System locale affects all *A functions. I.e. - it affects all ANSI functions. Aside from this affect:
- String comparsions
(IntlStrEqWorker[AW], lstrcmp[AW], lstrcmpi[AW]) Uses system locale after trying thread locale (which is derived from user locale on thread creation).
Uses User locale. Not system locale. It determines the collation (sort order). Obviously, it affects the A functions (lstrcmpA, etc.), but no more nor less than it does CreateWindowA, FormatHardDiskA, or AnyOtherFunctionA.
- Resource loading
(FindResource & friends) Uses system locale after trying Default UI Language (see GetSystemDefaultUILanguage and GetUserDefaultUILanguage or NtQueryDefaultLanguage) and user locale.
Actually, here I don't think system locale affects at all. I'll be able to tell with more certainty later, though.
- Input locale identifier
The thread default input language for system applications (that are started before user logins) is derived from the system locale setting. This probably isn't relevant for Wine.
And if you ask, no, I will not write a testcase, because it's sometimes hard for me to even understand the problems caused by different locales.
Regards, Filip
Shachar