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

Re: X'ы, " ескейп-секвесы" и ISO-IR-111



Ivan Pascal wrote:
> 
> > Иван!
> > Ваше письмо застало меня во время блаженного отдыха :-), но страх, что
> > появится еще одна кодировка xfree заставил взяться за клавишу.
> 
>   ОК.
>   Может быть я слишком резко выразился на тему - "убрать", "выкинуть"
> и т.п.
> 
>   Просто, после изучения той части Xlib, которая работает на ввод
> символов, у меня созрело убеждение, что все это настолько криво
> (в том числе и сам стандарт на CTEXT).
>   И захотелось хотя бы "стандартной" esq-seq для koi8.
> И я ее нашел.
> 
>   На самом деле, я не предлагаю вообще убрать из "локалей" koi8-r
> и koi8-u. Хотя бы потому, что koi8-r уже достаточно "проросла"
> во многих местах и заменить ее на что-то другое - просто утопично.
> 
>   Все что я реально хочу - упростить некоторые "внутренности" Xlib.
> Например так...
> 
> 1. Все-таки добавить новый encoding_name. Пусть это будет KOI8 (без
> суффиксов). С sequence "\033-@".
>   Ну поверьте, что с ней Xlib справиться гораздо корректнее, чем
> с существующей.
Согласен, но см. ниже.
> 
> 2. В imConv.c оставляем эту encoding_name с ее sequence и единую
> таблицу для koi8-r и koi8-u. (Не пойму - зачем держать две таблицы,
> отличающиеся тем, что во второй на три буквы больше. Все равно, если
> "локализовать" систему под koi8-r, то ни в раскладке клавиатуры, ни
> в фонтах эти бувы просто не втретятся. Никакого конфликта я не вижу).
Объясню, почему две таблицы. Дело в том, что код Xlib плох настолько,
что лучше добавить сильно избыточные данные, чем его дописывать. Его
надо _переписывать_заново_. Вы согласны? Но это большая работенка :-)
Причина, по которой никто не хочет лезть в Xlib проста и странна
одновременно. Всю интернационализацию там делелаи японцы, которые потом
решили писать свой отдельный X. Европейский и азиатский стили
программирования, видимо, различны. Вы не замечали "иероглмфов" в Xlib?
:-)
Люди из XFree страшно боятся "тревожить" Xlib. xterm, правда, -- еще
больше, хоть он и европейский в осоновном.

Есть проблема "Г с чубом". ISO-IR-11 все равно не годится украинцам, то
есть придется создавать новую кодировку, а это просто ужас!
> 
> 2.1 Кстати, процедурки для XKB (XKBCvt.c) зачем-то держат собственную
> поlпрограммку  для конвертации koi8-r, а для iso8859-* используют
> GetCharCode. Эта же GetCharCode прекрасно может выдать koi8-r и koi8-u
> (Вашими стараниями). Тем более странно, что процедурка из XKBCvt
> использует ту же таблицу и тот же locale_code, что и GetCharCode.
> 
> 3. В "CT-парсере" (lcCT.c) также вместо koi8-r/koi8-u оставляем KOI8
> со "стандартной" sequence. (Главное, что она уже выделена и в будущем
> конфликта с вновь добавляемыми чарсетами не будет).
> 
> 4. Все остальное (locale.dir, locale.alias) остается примерно такое же.
>    Только для koi8-r XLC_LOCALE будет выглядеть примерно так
>    (следите за суффиксами)
> ----
> fs1 { charset KOI8:GR
>       font    KOI8-R:GR}
> ...
> encoding_name KOI8
> ...
> cs1 { side          GR:Default
>       ....
>       ct_encoding   KOI8:GR }
> ----
> а для koi8-u
> ----
> fs1 { charset KOI8:GR
>       font    KOI8-U:GR}
> ...
> encoding_name KOI8
> ...
> cs1 { side          GR:Default
>       ....
>       ct_encoding   KOI8:GR }
> ----
> 
>   И все!
Да... Но все же ради "славянского братства" лучше добавить 1251. Правда,
пробить для нее нормальную ESC-sequence вряд ли удастся, так как это
может делать только X Consortium, насколько я понимаю.
Впрочем, я помотрю тексты и подумаю...
> 
> P.S. Извините, что нарушил ваш отдых. :-)
Ничего, Вы меня несколько успокоили. Потом, как я понял, Вам скоро в
отпуск и, надеюсь, Вы вернетесь в менее боевом настроении :-)
> --
> 
Успехов!
Rgrds, AEN