Bug 16302

Summary: Кракозябры на терминале в локали UTF-8
Product: Sisyphus Reporter: kirill <kirill>
Component: aspellAssignee: Alexei Takaseev <taf>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P2 CC: lav, php-coder, taf
Version: unstableKeywords: patch
Hardware: all   
OS: Linux   

Description kirill 2008-07-08 00:31:52 MSD
$ echo $LANG
ru_RU.UTF-8
$ file q
q: UTF-8 Unicode text
$ aspell -c q
<крокозяблы на экране>

в восьмибитной локали (koi8-r) всё нормально
Comment 1 Slava Semushin 2008-07-10 13:39:04 MSD
Обычные ошибки выводятся в консоль нормально, потому что gettext() используется. А проблема с кракозябрами из-за использования ncurses, который, как известно, не поддерживает юникод.

Об этом даже написано в README:

A.3.1 Unicode Support
---------------------

In order for Aspell to correctly spell check UTF-8 documents in full
screen mode the "wide" version of the curses library must be installed.
This is different from the normal version of curses library, and is
normally named `libcursesw' (with a `w' at the end) or `libncursesw'.
UTF-8 documents will not display correctly without the right curses
version installed.


Так что исправляется это очень просто:
- Вместо libncurses-devel прописать libncursesw-devel в BuildRequires
- добавить опцию --enable-wide-curses в вызов %configure

После этого у меня всё заработало нормально (в однобитной локали, правда, не проверял).
Comment 2 Slava Semushin 2008-07-11 06:52:12 MSD
Исправление доступно в моём git repo.
Comment 3 Slava Semushin 2008-07-14 21:33:35 MSD
Исправлено в 0.60.5-alt3