Страница 1 из 2

переход на UTF-8

Добавлено: 24 дек 2005, 14:40
Lioxa
Решил перейти на UTF-8.
проблема возникла тлько с MC. Я так понял, что в нём поддержки юникода нет. Нашёл патч. буду перекомпилировать MC.
Вопрос такой: это единственный способ застваить MC понимать юникод, или есть ещё варианты, и какой из них лучший?

Добавлено: 25 дек 2005, 13:55
booxter
Гэта адзіны варыянт. У генту гэты патч аўтаматычна накладваецца. У РэдХаце таксама. Іншыя не ведаю. Рукамі канешне непрыемна, але можна;-)

Добавлено: 25 дек 2005, 14:19
pavučok
? Ubuntu mc ????????? ???????????? ??????.

Добавлено: 25 дек 2005, 18:04
Lioxa
Положил патч, делаю конфигуре с параметром --with-screen=slang
А оно ругается

checking for SLang_init_tty in -lslang... no
configure: error: S-Lang library not found

Slang стоит. Пакеты:
slang1
slang1a-utf8

Пробовал и под рутом запускать. одинаково ругается. Чего ему не хватает?

Добавлено: 25 дек 2005, 18:25
Llama
Lioxa, гм, а пакеты с хидерами где?

Добавлено: 25 дек 2005, 18:58
Lioxa
Llama, спасибо. тормазнул. нужно было ещё поставить slang1-utf8-dev

Добавлено: 25 дек 2005, 22:51
Lioxa
Сконфигурировалось оно успешно, при компиляции выдаёт ошибку, и честно говоря мне не понятно чего оно хочет.

make all-recursive
make[1]: Entering directory `/home/temp/mc/mc-4.6.0'
Making all in intl
make[2]: Entering directory `/home/temp/mc/mc-4.6.0/intl'
make[2]: Цель `all' не требует выполнения команд.
make[2]: Leaving directory `/home/temp/mc/mc-4.6.0/intl'
Making all in po
make[2]: Entering directory `/home/temp/mc/mc-4.6.0/po'
make[2]: Цель `all' не требует выполнения команд.
make[2]: Leaving directory `/home/temp/mc/mc-4.6.0/po'
Making all in m4
make[2]: Entering directory `/home/temp/mc/mc-4.6.0/m4'
make[2]: Цель `all' не требует выполнения команд.
make[2]: Leaving directory `/home/temp/mc/mc-4.6.0/m4'
Making all in vfs
make[2]: Entering directory `/home/temp/mc/mc-4.6.0/vfs'
Making all in samba
make[3]: Entering directory `/home/temp/mc/mc-4.6.0/vfs/samba'
Using FLAGS = -g -O2 -Iinclude -I./include -DCONFIGFILE="/usr/local/lib/smb.conf" -DLMHOSTSFILE="/usr/local/lib/lmhosts" -DSBINDIR="/usr/local/bin" -DCODEPAGEDIR="/usr/local/lib/codepages" -DDRIVERFILE="/usr/local/lib/printers.def" -DBINDIR="/usr/local/bin" -DHAVE_INCLUDES_H
make[3]: Leaving directory `/home/temp/mc/mc-4.6.0/vfs/samba'
Making all in extfs
make[3]: Entering directory `/home/temp/mc/mc-4.6.0/vfs/extfs'
make[3]: Цель `all' не требует выполнения команд.
make[3]: Leaving directory `/home/temp/mc/mc-4.6.0/vfs/extfs'
make[3]: Entering directory `/home/temp/mc/mc-4.6.0/vfs'
make[3]: Цель `all-am' не требует выполнения команд.
make[3]: Leaving directory `/home/temp/mc/mc-4.6.0/vfs'
make[2]: Leaving directory `/home/temp/mc/mc-4.6.0/vfs'
Making all in slang
make[2]: Entering directory `/home/temp/mc/mc-4.6.0/slang'
make[2]: Цель `all' не требует выполнения команд.
make[2]: Leaving directory `/home/temp/mc/mc-4.6.0/slang'
Making all in edit
make[2]: Entering directory `/home/temp/mc/mc-4.6.0/edit'
make[2]: Цель `all' не требует выполнения команд.
make[2]: Leaving directory `/home/temp/mc/mc-4.6.0/edit'
Making all in src
make[2]: Entering directory `/home/temp/mc/mc-4.6.0/src'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -DDATADIR=\""/usr/local/share/mc/"\" -DLOCALEDIR=\""/usr/local/share/locale"\" -DLIBDIR=\""/usr/local/lib/mc"\" -I.. -I/usr/X11R6/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -Wall -MT widget.o -MD -MP -MF ".deps/widget.Tpo" \
-c -o widget.o `test -f 'widget.c' || echo './'`widget.c; \
then mv ".deps/widget.Tpo" ".deps/widget.Po"; \
else rm -f ".deps/widget.Tpo"; exit 1; \
fi
widget.c: In function `update_input':
widget.c:785: warning: implicit declaration of function `charcolumn'
widget.c:813: warning: implicit declaration of function `charpos'
widget.c:814: error: `mbs' undeclared (first use in this function)
widget.c:814: error: (Each undeclared identifier is reported only once
widget.c:814: error: for each function it appears in.)
widget.c:814: warning: passing arg 1 of `mbrtowc' from incompatible pointer typewidget.c: In function `backward_delete':
widget.c:1333: warning: implicit declaration of function `move_buffer_backward'
widget.c:1328: warning: unused variable `i'
make[2]: *** [widget.o] Ошибка 1
make[2]: Leaving directory `/home/temp/mc/mc-4.6.0/src'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/home/temp/mc/mc-4.6.0'
make: *** [all] Ошибка 2


если кому понятно, что это значит и не лень описать, то разъясните пожалуйста.

Добавлено: 25 дек 2005, 22:56
Lioxa
И ещё вопрос по поваду UTF-8.
Сделал, что бы в прогах TCL/TK руский отображался. Он отображается на разных инструментах. Но вот что мне не понятно, почему русские буквыне отображаются в заголовке окна. Ведь саму рамку с заголовком рисует система, такой вывод я сделал ихсхоодя из того, что она одинаковая для любых типов программ. Но проги на QT и GTK2 нормально отображают русский в заголовке. С чем это может быть связано?

Добавлено: 25 дек 2005, 23:07
Llama
Lioxa,
1) Кривой патч
2) Криой slang
3) gcc более другой версии
4) Любая комбинация пунктов 1-3
По поводу рамочки - да, ее рисует window manager, но тект ля отображения-то передается из программы, и что оно там передает - это уж хрен его знает...

Добавлено: 26 дек 2005, 10:22
Lioxa
Llama писал(а):Lioxa,
1) Кривой патч
2) Криой slang
Я так и дкмал.
Llama писал(а): По поводу рамочки - да, ее рисует window manager, но тект ля отображения-то передается из программы, и что оно там передает - это уж хрен его знает...
Что самое забавное передаёт то оно в 2 раза больше символов чем надо, значит пытается передать в юникоде, но что-то сбивается...

Добавлено: 28 дек 2005, 00:32
Lioxa
mc как есть компилиться, и ставиться и даже работат.
Но если применить патчи не компилиться. Мкачал патчи с сайта разработчика патчей (с suse.de), точную ссылку не помню.
4 файла: utf8, utf8-input, utf8-hint, utf8-fix.

при компиляции ругается
In file included from ../src/global.h:142,
from edit.h:41,
from bookmark.c:25:
../vfs/vfs.h:91: error: parse error before "caddr_t"
../vfs/vfs.h:91: warning: no semicolon at end of struct or union
../vfs/vfs.h:93: error: parse error before "caddr_t"
../vfs/vfs.h:94: error: `munmap' redeclared as different kind of symbol
/usr/include/sys/mman.h:77: error: previous declaration of `munmap'
../vfs/vfs.h:211: error: parse error before "mc_mmap"
../vfs/vfs.h:211: error: parse error before "size_t"
../vfs/vfs.h:211: warning: type defaults to `int' in declaration of `mc_mmap'
../vfs/vfs.h:211: warning: data definition has no type or storage class
../vfs/vfs.h:212: error: parse error before "size_t"
../vfs/vfs.h:213: error: parse error before "addr"
make[2]: *** [bookmark.o] Ошибка 1
make[2]: Leaving directory `/home/temp/mc/mc-4.6.0/edit'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/home/temp/mc/mc-4.6.0'
make: *** [all] Ошибка 2

скачивал mc-4.6.0, патчи для него же (mc-4.6.0-utf8.patch итд)
в патчах врядли может быть ошибка, потому то их ведь использовали.
в установки патчей тоже ошибки не должно быть (patch -p0 < mc-4.6.0-uft8.patch), ведь оно говорит что сакссес....
Может я просто тупой? :)
народ кто уже компилил с патчами, можете кинуть патчи или исходник с поставленными патчами? lioxakrk () gmail.com

Добавлено: 28 дек 2005, 00:39
Pilot
Я лично все патчи так ставлю patch -p1 -i mc-4.6.0-uft8.patch

Добавлено: 03 янв 2006, 11:29
Lioxa
Настроил UTF-8. Всё хорошо. Даже первый GTK нормально отображает.
Осталось только. MC....
Попробовал поставить только 1 патч тот который mc-4.6.0-utf8.patch и откомпилить. патчу проходит абсолютно сакссес (пишет файл такой то пропатчен и больше ничего). Всё равно не компилиться. Может ему ещё каких-то хидеров не хватает, которые не прописаны в зависимотсях? Которые в патче требуются...

может патч требует libslang2? это как можно проверить?

Добавлено: 03 янв 2006, 11:42
Llama
Lioxa, почитай ./configure --help и отруби нафиг vfs этот - без него кажется вполне можно жить, еслия еще на забыл что такое mc...

Добавлено: 04 янв 2006, 12:23
Lioxa
Попробую без него скомпилить.

Нашёл глюк. В иксах всё впорядке, а когда в консоле, то при монтировании fat разделов пишет что использование iocharset=utf8 не рекомендуется. и ls fat`ового раздела показывает какие-то непонятные символы, причём безразницы руские или английские. А в иксах - нормально. Пробовал при монтировании codepage=866 - никакого результата.

Может кто-нибудь объяснить что за такое?