Regression: broken locale in 0.9.25

Kirill K. Smirnov lich at math.spbu.ru
Fri Nov 10 15:07:30 CST 2006


Hi, all!

The following patch:
  http://www.winehq.org/pipermail/wine-cvs/2006-November/027599.html
breaks locale with wine.
I get several messages:
Warning: Language 'LC_CTYPE=ru_RU' was not recognized, defaulting to English.
Warning: Language 'LC_CTYPE=ru_RU' was not recognized, defaulting to English.

and, as result, fonts are broken too.

The reason is in the following piece of patch:
-    if (((lang = getenv( "LC_ALL" )) && *lang) ||
-        (env_str && (lang = getenv( env_str )) && *lang) ||
-        ((lang = getenv( "LANG" )) && *lang) ||
-        ((lang = user_locale) && *lang))
+    if ((lang = setlocale( category, NULL )) && *lang)

LC_ALL variable contains single locale, e.g. "ru_RU.KOI8-R", but function
setlocale(LC_ALL, NULL) returns:
LC_CTYPE=ru_RU.KOI8-R;LC_NUMERIC=ru_RU.KOI8-R;LC_TIME=ru_RU.KOI8-R;LC_COLLATE=C;LC_MONETARY=ru_RU.KOI8-R;LC_MESSAGES=ru_RU.KOI8-R;LC_PAPER=ru_RU.KOI8-R;LC_NAME=ru_RU.KOI8-R;LC_ADDRESS=ru_RU.KOI8-R;LC_TELEPHONE=ru_RU.KOI8-R;LC_MEASUREMENT=ru_RU.KOI8-R;LC_IDENTIFICATION=ru_RU.KOI8-R

which is incorrectly parsed.

-- Kirill K. Smirnov



More information about the wine-devel mailing list