[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Баги в Xlib.
Hi!
> По ходу своей работы я обнаружил уже несколько багов в Xlib, которые
> так или иначе могут мешать "вводу русских букв" или вообще - работе
> приложения в локали koi8-r.
Очень рад появлению столь толковых комментариев к Xlib (Как и предыдущих).
Надеюсь они появятся так же на Web-сервер.
> 1) Не "открывается" Input Method.
...
> Решение: Вообще-то надо немного модифицировать логику Xlib. И если
> уж нет сервера, то пытаться обойтись "библиотечным" методом.
> А пока самое простое решение - сделать в koi8-r файл Compose, пусть даже
> пустой.
> Кстати, это уже сделано (пустые Compose во всех локалях, где нет реальных
> Compose) в каком-то из последних релизов XFree. Хотя это не решение проблемы,
> а "обход".
По хорошему Compose в любом случай пригодится, я например его сделал
для ввода 'ё', '╘' и т.п. Может стоит его отдать в XFree?
> 3) Несчастные GLGR чарсеты.
...
> Вторая беда в том, что судя по всему "конвертеры" в Xlib писались
> без учета этих "экзотических" чарсетов и, зачастую, не рассматривают
> случай когда side == GLGR.
> Ну а что происходит с такими чарсетами (точнее символами из чарсета)
> зависит от фантазии автора конкретного конвертера. Он может их вообще
> выкинуть, или посчитать "по умолчанию" GR и "вклеить" им старший бит
> (это то для koi8 не страшно), или наоборот - интерпретировать их как GL
> и "вычистить" стрший бит (тогда koi8 превратится в "транслит").
>
> Я обнаружил, что как-раз так неправильно ведет себя перекодировщик
> в COMPOUND_TEXT, но я никак не мог найти - где это проявляется.
>
> И вот недавно Alex Tutubalin пожаловался, что у него при переносе
> "selection" из XEmacs в Netscape Navigator 4.7 в русских буковках
> "обрезается восьмой бит".
> Судя по всему - он как раз "напоролся" на этот баг.
Я могу подтвердить, у меня в NN3.x при перенося из одного окна
в другое с помощью мыши было тоже самое, но после добавления
приведенного XLC_CHARSET_DEFINE все стало ок. Я все больше убеждаюсь,
что все так называемые баги NN3.x - это проблема Xlib.
> 5) Не всегда срабатывает "хакерский метод" с подменой locale С на koi8-r.
>
...
> Дело в том, что он не всегда срабатывает (хотя я думал, что он должен
> помогать во всех случаях).
Да, похоже не всегда. После подмены заработал nedit (собранный с Мотиф
и libc5 на Linux-e), но NN3 (так же собранный) отказался - те же виджеты,
что на Irix 6.5 нормально заработали с русским (т.к. правильно
берется locale), по прежнему используют шрифт ISO8859-1 -))).
К сожалению NN3 не пересоберешь.
--
С наилучшими пожеланиями, Евгений Бырганов.
Best regards, Eugene Byrganov.
mailto:E.B.Byrganov@inp.nsk.su
work - http://www.inp.nsk.su/