[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