[Bug 7235] locale specified in LANG is not respected in wine 0.9.29
wine-bugs at winehq.org
Tue Mar 6 16:30:32 CST 2007
------- Additional Comments From bdonlan at gmail.com 2007-06-03 16:30 -------
Setting the second parameter to NULL returns the C locale. By my reading of the
manpage, setlocale() will not respect environment variables at all unless called
with an empty string:
If locale is "", each part of the locale that should be modified is set
according to the environment variables. The details are implementation
dependent. For glibc, first (regardless of category), the environment
variable LC_ALL is inspected, next the environment variable with the
same name as the category (LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONE‐
TARY, LC_NUMERIC, LC_TIME) and finally the environment variable LANG.
The first existing environment variable is used. If its value is not a
valid locale specification, the locale is unchanged, and setlocale()
If locale is NULL, the current locale is only queried, not modified.
On startup of the main program, the portable "C" locale is selected as
default. A program may be made portable to all locales by calling set‐
locale(LC_ALL, "" ) after program initialization, by using the values
returned from a localeconv() call for locale-dependent information, by
using the multi-byte and wide character functions for text processing
if MB_CUR_MAX > 1, and by using strcoll(), wcscoll() or strxfrm(),
wcsxfrm() to compare strings.
Therefore, if wine merely calls setlocale(LC_*, NULL), it is incorrect. It must
call locale(LC_ALL, "") during initialization.
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the wine-bugs