[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: X'ы, " ескейп-секвесы" и ISO-IR-111
> Иван!
> Ваше письмо застало меня во время блаженного отдыха :-), но страх, что
> появится еще одна кодировка 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, то ни в раскладке клавиатуры, ни
в фонтах эти бувы просто не втретятся. Никакого конфликта я не вижу).
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 }
----
И все!
P.S. Извините, что нарушил ваш отдых. :-)
--
Ivan U. Pascal | e-mail: pascal@tsu.ru
Administrator of | Tomsk State University
University Network | Tomsk, Russia