Re: Еще кое-что нарыл в POTATO
On Tue, 25 Jul 2000, Peter Novodvorsky wrote:
PN>++ 25/07/00 01:27 +0900 - Fedor Zuev:
PN>>
PN>> В Debian собственный доморощенный man
PN>> (man-db). Соответственно groff вызывается с разными опциями.
PN>> У меня (из Woody)
PN>> groff 1.15.3-2
PN>> man-db 2.3.17-1
PN>> псевдографики вместо переносов нет, потому что нет переносов вообще.
PN>> При запуске
PN>> gzip -d </usr/share/man/man1/dd.1.gz |groff -Tlatin1|less
PN>> псевдографика, правда, появляется.
PN>>
PN>> (кстати, эти версии еще русские маны правильно показывают
PN>> (добавили -Tascii8), так что советую обновить)
PN>groff: 1.15.3-2
PN>man-db: 2.3.17-1
PN>Русского вообще не показывает.
PN>Может кто подскажет?
Единственное, что в голову приходит: а переменные окружения
(LC_*, LANG) правильно выставлены? И русский ман в правильный
каталог положен (должен быть $MANPATH/$LANG, т.е /usr/share/man/ru)?
Там внутрях (man.c) такая табличка есть
----------------------------------------
struct lt {
char * lang;
char * device;
char * charset;
} lang_table[] ={
/* LESSCHARSET=latin1 means '0x80-0xff is displayable'. */
/* It does not mean 'ISO-8859-1 charset'. */
/* roff_device=latin1 means 'groff uses ISO-8859-1 characters'. */
/* Thus 'ascii' should be used for ISO-8859-{2,3,4,...}languages.*/
/* LANG means language of manpage. However,for English manpages,*/
/* roff_device and LESSCHARSET are determined by user environment*/
/* (latin1+latin1 for ISO-8859-1 languages and ascii+ascii for */
/* non-ISO-8859-1 languages). */
/* LANG roff_device LESSCHARSET */
{ "da" , "latin1" , "latin1" }, /* Danish */
{ "de" , "latin1" , "latin1" }, /* German */
{ "en" , "latin1" , "-----" }, /*English */
{ "es" , "latin1" , "latin1" }, /*Spanish */
{ "fi" , "latin1" , "latin1" }, /*Finnish */
{ "fr" , "latin1" , "latin1" }, /* French */
{ "ga" , "latin1" , "latin1" }, /* Irish */
{ "is" , "latin1" , "latin1" }, /*Icelandic */
{ "it" , "latin1" , "latin1" }, /*Italian */
{ "ja" , "nippon" , "ja" }, /*Japanese */
{ "ko" , "nippon" , "latin1" }, /* Korean*/
{ "nl" , "latin1" , "latin1" }, /* Dutch*/
{ "no" , "latin1" , "latin1" }, /*Norwegian */
{ "pt" , "latin1" , "latin1" }, /*Portuguese */
{ "sv" , "latin1" , "latin1" }, /*Swedish */
{ "*" , "ascii8" , "latin1" }, /*universal */
{ 0 , 0 , 0 } };
---------------------------------------------------------------
но при этом трактует он эту табличку весьма своеобразно, делая
различие между стандартными manpages в .../man/man[1-9] и
"национальными" страничками в .../man/$LANG/man[1-9] . В первом
случае, если языка нету в списке, жестко задается ascii (и любые
нелатинские символы идут лесом), во втором - устройство берется из
строчки с "*".
Кстати, обратите внимание на то, что в этой строчке указано
устройство ascii8. Это дебиановский патч к groff, вот что про него
написано в ChangeLog
-----------------------------------
* Applyed patch submitted by Tomohiro KUBOTA:
* Added a new device type 'ascii8', which is 8 bit clean (like
latin1) but does not use Latin-1 character for hyphenation and so
on(like ascii). This device is intended to be used for codesets
other than ASCII and ISO-8859-1. This device should be temporal
till all charsets (ISO-8859-*, KOI8-R, EUC-KR, EUC-ZH, TIS620, and
so on so on) in the world are implemented, though this is almost
impossible.
* Added a new character 'sy', which is soft hyphen. This character
is defined only for latin1 device. This 'sy' is used for
hyphenation instead of [char173], because [char173] may not be a
soft hyphen, though [char173] is a soft hyphen in ISO-8859-1.
Tomohiro KUBOTA <kubota@debian.or.jp> Wed, 19 Apr 200023:47:18 +0900
+ This closes: #62840.
---------------------------------------
Reply to: