Re: [gnome-cyr] GNOME2
- From: "Dmitry G. Mastrukov" =?koi8-r?q?=E4=CD=C9=D4=D2=C9=CA_?==?koi8-r?q?=E7=C5=CE=CE=C1=C4=D8=C5=D7=C9=DE_?==?koi8-r?q?=ED=C1=D3=D4=D2=C0=CB=CF=D7?= <dmitry taurussoft org>
- To: =?koi8-r?q?=F3=D0=C9=D3=CF=CB_?==?koi8-r?q?=D2=C1=D3=D3=D9=CC=CB=C9?= gnome-cyr <gnome-cyr gnome org>
- Subject: Re: [gnome-cyr] GNOME2
- Date: 26 Jan 2002 17:51:45 +0300
В Птн, 25.01.2002, в 22:57, Dmitry G. Mastrukov Дмитрий Геннадьевич
Мастрюков написал:
> В Птн, 25.01.2002, в 13:32, Timur I. Bakeyev написал:
> > On Fri, Jan 25, 2002 at 01:39:14PM +0300, Valek Filippov wrote:
> >
> > > > IMHO, это они ламернулись :) По-идее, LC_ALL "нэ нада" :)
> > > Может пнёшь багрепортом?
> >
> > Ну, проявляется не у меня - трудно описать проблему, которую не видел... Дима, может
> > ты пнешь :)?
> >
> Вот чего я обнаружил. В libgnomeui в файле libgnomeui/gnome-ui-init.c в
> функции libgnomeui_pre_args_parse есть такой кусок
>
> --- код
>
> /* Begin hack to propogate an en_US locale into Gtk+ if
> LC_CTYPE=C, so that non-ASCII
> characters will display for as many people as possible.
> Related to bug #1979 */
> ctype = setlocale (LC_CTYPE, NULL);
>
> if (strcmp (ctype, "C") == 0) {
> old_ctype = g_strdup (g_getenv ("LC_CTYPE"));
> gnome_setenv ("LC_CTYPE", "en_US", TRUE);
> ctype_set = TRUE;
> } else {
> ctype_set = FALSE;
> }
>
> gsl=gtk_set_locale ();
> g_print("Set locale: %s\n", gsl);
>
> if (ctype_set) {
> if (old_ctype) {
> gnome_setenv ("LC_CTYPE", old_ctype, TRUE);
> g_free (old_ctype);
> } else {
> gnome_unsetenv ("LC_CTYPE");
> }
> }
> /* End hack */
>
> --- код
>
> Здесь все прибамбасы, связанные с переменной gsl - мои, я хотел
> проверить, что получается при вызове gtk_set_locale(). Оказалось, локаль
> устанавливается в C. Других вызовов gtk_set_locale() в libgnomeui нет.
> Чего-то тут не всё гладко. Хак он всегда хак.
> Хорошо бы это дело Влад посмотрел.
>
Похоже, баг в вызове
ctype = setlocale (LC_CTYPE, NULL);
После него ctype у меня C. А по смыслу комментария, как раз LC_TYPE и
должен проверяться на наличие C. Если исправить в вызове setlocale NULL
на "" - всё становится в порядке, ctype - ru_RU.KOI8R, gsl - тоже.
Дмитрий
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]