Bug 12776 - xterm в заголовке окна рисует кракозябры
: xterm в заголовке окна рисует кракозябры
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/xterm)
: unstable
: all Linux
: P2 enhancement
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2007-09-14 12:54 by
Modified: 2008-06-24 15:28 (History)


Attachments
rpm-пакет с исправлением (328.32 KB, application/octet-stream)
2008-03-18 11:12, Slava Semushin
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2007-09-14 12:54:45
Локаль у меня ru_RU.UTF-8.
Долго бился почему при входе в каталог, содержащий в названии non-ascii символы
у меня в заголовке окна выводятся кракозябры.
Оказалось, что в xterm начиная с версии 212 появилась опция utf8Title,
по-умолчанию она стоит 'false', что означает перекодировать
из latin-1 в utf-8. Если же поставить эту опцию в 'true', то все начинает
показываться нормально. Это же относится и к uxterm.
Может стоит включать эту опцию по-умолчанию в /etc/X11/app-defaults?
------- Comment #1 From 2007-09-16 19:41:47 -------
На реального мантейнера
------- Comment #2 From 2007-09-17 11:29:08 -------
У меня локаль CP1251 и всё работает корректно.

Если вы знаете способ, как включать перекодировку только при юникодной локали,
то было бы хорошо его озвучить.
------- Comment #3 From 2007-09-17 12:26:26 -------
$ cd <каталог с русскими буквами в названии> - получаем в заголовке окна
нечитабельный текст. Эта проблема проявляется если:
1. локаль - utf-8
2. шелл - bash
3. терминал - xterm (тоже и в uxterm; в konsole - все нормально)
Возможно это проблема bash (bash-3.1.17-alt2), может xterm (xterm-224-alt2.1).
Если все же это проблема xterm, то можно перевесить баг на etcskel, но
не уверен, что это правильно. Кроме того, насколько я помню, все последние
дистрибутивы идут с локалью utf-8 по-умолчанию. Те кто меняет локаль на другую,
знают для чего им это надо и как это сделать.
------- Comment #4 From 2007-09-17 13:57:20 -------
Все, нашел виновника!
В пакете bash (bash-3.1.17-alt2) в файле /etc/bashrc есть следующее описание
*xterm*|*rxvt*|*Eterm*)
 PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}: ${PWD/#$HOME\//~/}\007"'

Оно как раз и выводится в заголовок окна. Как я понимаю, оно выводится в текущей
локали пользователя. Другое дело, в какой кодировке ожидает его увидеть терминал.

Пока представляется единственным выходом в PROMPT_COMMAND добавить iconv из
локали пользователя в utf-8, а в xterm поставить utf8Title=true.
Интересно было бы выслушать другие варианты.
------- Comment #5 From 2007-11-14 11:10:20 -------
Может пока отключить вывод $PWD по умолчанию с пометкой в bashrc ?
------- Comment #6 From 2007-11-14 11:27:57 -------
Я попробовал, но после запуска mc $PWD снова появляется. Не могу найти откуда.
------- Comment #7 From 2007-11-14 11:54:09 -------
(In reply to comment #4)
> Пока представляется единственным выходом в PROMPT_COMMAND добавить iconv из
> локали пользователя в utf-8, а в xterm поставить utf8Title=true.
Мне кажется очень хороший вариант, закрывающий проблему.
------- Comment #8 From 2008-03-13 16:37:21 -------
Обратил внимание на эту багу на работе, где свежепоставленный Desktop и локаль
UTF-8 по умолчанию =(

В ближайшее время, включу.
------- Comment #9 From 2008-03-13 16:40:12 -------
(In reply to comment #4)
> Пока представляется единственным выходом в PROMPT_COMMAND добавить iconv из
> локали пользователя в utf-8, а в xterm поставить utf8Title=true.

Я позабочусь об xterm, а вы пока можете вешать баг на пакет-владельца файла
/etc/bashrc.

> Интересно было бы выслушать другие варианты.

Когда будут варианты лучше, тогда и сделаем, а пока нужно чтобы работало.
------- Comment #10 From 2008-03-18 11:12:57 -------
Created an attachment (id=2504) [details]
rpm-пакет с исправлением

Собрал для себя исправление. Сейчас на работе проверил -- работает. Если кому
срочно, то можете использовать. Ну или просто потестить. На днях, когда буду
дома, залью эту сборку в Сизиф.
------- Comment #11 From 2008-03-19 19:22:29 -------
Fixed in xterm-234-alt2. Please, test.