[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Fwd: NEW charset!!! =?koi8-r?Q?=E2=D9=CC=CF?=: Re: KOI8]



> 
>   Сейчас логика выбора "входного енкодинга" в Xlib такая -
> - Если есть переменная _XKB_CHARSET, то берем значение оттуда
> - иначе - смотрим в "текущей locale"
> 
>   Естественно - плохо. Если я один раз задал этот _XKB_CHARSET в начале
> сессии, и по ходу хочу одно единственное приложение запустить с другой
> locale, то должен не забыть еще и отменить/переопределить _XKB_CHARSET.
> 
>   Если бы логика была такая -
> - если locale НЕ "C" то берем оттуда
> - если "C" - то пытаемся взять из _XKB_CHARSET
> - ну и если и это не прошло - то обычный encoding для "C" - STRING
> 
> ...  было бы намного лучше.
Да, думаю это было бы более оптимально.

> P.S. Пользуясь случаем - небольшой анонс -
>   Я исправил/дополнил свою страничку по XKB.
> В понедельник будет на http://www.tsu.ru/~pascal/other/xkb/
> Новое -
>  - полностью переписано - "Что делать с неправильными приложениями"
> (кстати, ache заметил мой "наезд" (или кто подсказал) и исправился :-)
Увы :-(, а мои замечания игнорирует, на страничке описаны не существующие
баги NN3: http://nagual.pp.ru/~ache/koi8/n3x11.html, а еще одного реального 
нет. А я ему сам писал...



Кстати, а может ли кто по подробней рассказать об XLC_LOCALE ?

XLC_FONTSET
#       fs0 class (7 bit ASCII)
fs0     {
        charset         ISO8859-1:GL
        font            KOI8-1:GL; ISO8859-1:GL
}
#       fs1 class 
fs1     {
        charset         KOI8-R:GR
        font            KOI8-1:GR
}
END XLC_FONTSET

Как я понял опытным путем, именно этот фонт и charset используется NN3 в 
полях ввода, а что за функции используются для этого?

XLC_XLOCALE
encoding_name           KOI8-R  -- Это вроде понятно, но как связано с выше?
mb_cur_max              1   	-- ??
state_depend_encoding   False	-- ??

А тут вообще не понятно, одном месте я нашел \x30000000, в другом \x00000080
#wc_encoding_mask       \x30000000
wc_encoding_mask        \x00000080
wc_shift_bits           7


use_stdc_env            True	-- А каком std. C env и где идет речь
force_convert_to_mb     True	-- ?


#       cs0 class
cs0     {
        side            GL:Default
        length          1
        wc_encoding     \x00000000
        ct_encoding     KOI8-R; ISO8859-1:GL
#       ct_encoding     ISO8859-1:GL
#       ct_encoding     KOI8-R:GL; ISO8859-1:GL
}

#       cs1 class
cs1     {
        side            GR:Default
        length          1

        wc_encoding     \x00000080

        ct_encoding     KOI8-R:GR; ISO8859-1:GR
}

Еще один ct_encoding - не совсем понятно, какой (charset, encoding_name или
ct_encoding) все же используется.

END XLC_XLOCALE

Но еще в одном файле я нашел:
        ct_encoding     KOI8-1:GR:\x1b-K
#       ct_encoding     KOI8-R:GR
# NOTE: Due to a bug, we should use KOI8-1...
Что дает \x1b-K ??? ( это файл идет с irix).
И еще, GR и GL - это намертво пришитые модификаторы, или же Xlib сам 
разберется с ними? А вопрос возник вот почему: у меня команда 
"strings /usr/lib32/libX11.so.1 | grep -i koi8" дает только 'KOI8-R:GR',
а 'KOI8-R:GL' нет - значит ли это что использовать последние нельзя?

Где бы почитать обзор, не вдаваясь в тонкости реализации, всех этих
настоек. Я смотрел на http://www.tsu.ru/~pascal/other/xkb/problems.html,
но все же там очень не много.



-- 

                      С наилучшими пожеланиями, Евгений Бырганов.
                      Best regards, Eugene Byrganov.

  mailto:E.B.Byrganov@inp.nsk.su
  work - http://www.inp.nsk.su/