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

Re: XFree 4.0 released




> Какая же она (koi8-u) "Universal"? Universal это koi8-e или же нечто,
> что я назвал koi8-5 или же koi8-f - как на czyborra

  Согласен. Кстати, это и есть iso-ir-111 только с добавкой "ге с чубом".
(Или я не прав?)
  Просто я имел ввиду, что koi8-u вбирает в себя всю "иксовую" koi8-r.
Конечно, может быть и больший "суперсет".
  Кстати, когда я писал про iso-ir-111 Алексей Новодворский сказал, что
наличие в ней кроме русских/украинских еще и белорусский букв особым
достоинством не является, поскольку у белорусских (белАрусских) пользователей
особенного рвения к белорусской локализации нет. (Или я что-то путаю?)
  А недавно сам предложил беларусскую локаль. :-)

> И как я понимаю из lcCT.c, имя iso-ir-xxx не используется само по себе:
>  
>     /* X11 registry name       MIME name         ISO-IR      ESC sequence */
  Да можно было бы использовать. Просто другие чарсеты имеют свои стандартные
и широкоизвестные названия. А наша ir-111 - нет.
  (Кстати, в этой таблице номер IR - только комментарии, причем добавленые очень
недавно).

> По крайне мере нужно добавить строку:
>     { "KOI8:GR",            /*  KOI8-x             111   */  "\033-@" },
> 
> и алиас KOI8-E на него, так как это имя уже используется в Xlib для шрифтов.
> (Конечно и полную таблицу).

  Так а почему koi8 и koi8-E. Может быть - koi8-f?

> И самое главное - это внутренние имя в Xlib (в XLC_LOCALE), и не о какой 
> замене ru_RU.KOI8-R на ru_RU.ISO-IR-111 речь не идет  - есть же
> 'encoding_name STRING'.

  Вот еще один момент. Внутреннее имя не так уж важно.
Внутри Xlib реально содержание чарсета почти нигде не используется,
только его общие характеристики (количество байт на символ, GR или GL и т.п.).
  Таблицы появляются только при перекодировке в/из Unicode (опять же - совсем
недавно) и в преобразовании keysym в char.
  В последнем случае действительно - лучше иметь одну общую таблицу, а о том,
чтобы при вводе не "просочились" символы, которые отсутствуют в данном языке,
надо заботится на уровне раскладок клавиатуры.
 (А о том, чтобы правильно работала isalpha позаботится libc, а никак не Xlib).

  На мой взгляд, единственное место, где название чарсета важно - фонты.
  И то, только в том случае, если в них действительно разные глифы в одних и
тех же позициях.

  И еще. Я уже писал, что я собирался сделать добавление новых чарсетов вообще
внешней (по отношению к libX11) процедурой.
  То есть - составляете фонты, описание чарсета в XLC_LOCALE и таблицу
преобразования в уникод (в отдельном файле). И все - никаких изменений в Xlib
ради одного чарсета.
  Так вот. Я от этой идеи не отказался. БОльшая часть уже готова.
Никак только не доделаю перекодировщик по внешним уникодным таблицам
(учитывая, что там могут быть и мультибайтовые чарсеты и хотелось бы сделать
их покомпактнее).

> >   Но это расширение (я думаю) никого уже не заинтересует. Поскольку все
> > "специалисты по локали" считают, что для обмена "мультичарсетовыми" строчками
> > надо использовать UTF-8. А CTEXT доживает последние дни (годы), пока еще не
> > все приложения (библиотеки, ОС'ы) явялются unicode aware.
> Я на пенсию уйду намного раньше, чем unicode заменит 8 бит.
   Э-э-э. Восемь-бит он может быть и не заменит (не скоро заменит), а вот
отказаться от CTEXT'а (который основан на древнем iso2022, заточенным под
7 бит и несовместимым с MS "кодепейджами") можно и раньше. :-))

> Да, кстати, ведь UTF-8 так же перекрывается с C1, а как здесь решилась
> эта проблема?

  Упс. Никак не решилась. Действительно - я об этом забыл и следовательно
в Xlib это - баг. Буду думать.

  Но я немного не об этом говорил. А о том, что можно вообще отказаться
от CTEXT'а с его "назначателями". Если обменивающиеся программы знают, что
они обмениваются только UTF-8, то никакие обвязки в виде esc-sequence им
не нужны.
  Например, "текстовое свойство" (TextProperty) имеет поле "данные" и поле
"тип кодирования". Если "тип" STRING, то "данные" - просто текст, если
тип - CText, то в "данных" естественно Ctext со всеми его "прибамбасками"
(esc-sequence) и ограничениями. Но если "тип" Utf-8, то в "данных" - просто
UTF-8 и об CText (так же как и о C0/C1/GL/GR)  никто и не вспоминает.

-- 
 Ivan U. Pascal         |   e-mail: pascal@tsu.ru
   Administrator of     |   Tomsk State University
     University Network |       Tomsk, Russia