Re: [gnome-cyr] GNOME2
- From: Grumegargler <pal re com ua>
- To: gnome-cyr gnome org
- Subject: Re: [gnome-cyr] GNOME2
- Date: 28 Jan 2002 01:29:00 +0200
On Сбт, 2002-01-26 at 16:51, Dmitry G. Mastrukov Дмитрий Геннадьевич
Мастрюков wrote:
> В Птн, 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);
это строчка ничего не делает с локалью, она используется для получения
текущей локали для категории LC_CTYPE и далее в коде видно, зачем.
еще раз советую посмотреть, что говорит set|grep LC_
>
> После него ctype у меня C. А по смыслу комментария, как раз LC_TYPE и
> должен проверяться на наличие C. Если исправить в вызове setlocale NULL
> на "" - всё становится в порядке, ctype - ru_RU.KOI8R, gsl - тоже.
>
> Дмитрий
>
>
> ЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЮ·┴·Щл╚≥╗╔┼x%┼к`·┴·Щл╚Ч Х≥ОХ╝m╤÷ЪЧf╒≈Ь'╒gЪ╒╦?≥╗╔≥╘Ъ√+-┼wХЧ Х≥Оэ
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]