Bug 18100

Summary: bash(1)
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: groff-baseAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: legion, php-coder
Version: unstable   
Hardware: all   
OS: Linux   

Description Michael Shigorin 2008-12-04 23:31:32 MSK
bash-3.2.39-alt1's manpage contains:

       An OR list has the form

              command command2

instead of

       An OR list has the form

              command || command2
Comment 1 Dmitry V. Levin 2008-12-15 00:51:48 MSK
It depends on groff/man version.
bash(1) looks fine in 4.0 environment, where
$ rpmquery groff-base man
groff-base-1.19.2-alt2.0
man-1.5m2-alt4
Comment 2 Alexey Gladkov 2008-12-15 12:29:26 MSK
Эта бага зависит от локали. У меня на LANG=ru_RU.UTF-8 всё нормально, но с LANG=C бага действительно есть. Скорее всего глючит перекодировка. Пока считаю что это бага groff.
Comment 3 Alexey Gladkov 2008-12-15 16:25:52 MSK
Пишу для информации. Вот часть bash(1):

.PP
An OR list has the form
.RS
.PP
\fIcommand1\fP \fB\(bv\(bv\fP \fIcommand2\fP

groff_char(7):

The extensible bracket pieces are font-invariant glyphs. In classical troff  only one glyph was available to vertically extend brackets, braces, and parentheses: `bv'. We map it rather arbitrarily to u23AA.

Comment 4 Michael Shigorin 2008-12-16 01:06:10 MSK
pad:~> locale
LANG=ru_RU.KOI8-R
LC_CTYPE=uk_UA.KOI8-U
LC_NUMERIC=C
LC_TIME=C
LC_COLLATE=uk_UA.KOI8-U
LC_MONETARY=C
LC_MESSAGES=C
LC_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"
LC_ALL=
Comment 5 Alexey Gladkov 2008-12-16 13:31:01 MSK
(In reply to comment #4)
> pad:~> locale
> LANG=ru_RU.KOI8-R
> LC_CTYPE=uk_UA.KOI8-U

С 8-битными кодировками всё не очень хорошо ... сейчас groff переводит в utf8 внутри себя... а потом man переводит её в нужную локаль с помощью iconv. При этом некоторые специальные символы теряются по понятным причинам.

Как это лечить я пока не знаю. У вас есть идеи?
Comment 6 Mikhail Gusarov 2008-12-16 13:34:50 MSK
(In reply to comment #5)

> некоторые специальные символы теряются по понятным причинам.
> Как это лечить я пока не знаю. У вас есть идеи?

Я уже озвучивал идею - взять рекодер, который умеет транслировать отсутствующие в целевой кодировке символы в похожие или в последовательности (© -> (c), ¦ -> |).

Я знаю recode(1), но можно и другие поискать.
Comment 7 Mikhail Gusarov 2008-12-16 13:41:02 MSK
Впрочем, recode про 0+23AA не знает, и в | переводить его не умеет :-| Этот конкретный случай можно запатчить, но наверняка им дело не ограничится.
Comment 8 Alexey Gladkov 2008-12-16 14:04:23 MSK
(In reply to comment #7)
> Впрочем, recode про 0+23AA не знает, и в | переводить его не умеет :-| 

Именно. Однозначного перевода не получится и символы будут теряться ...

Видимо нужно писать другой транслятор, знающий про groff.
Comment 9 Mikhail Gusarov 2008-12-16 14:06:39 MSK
Можно и таблички recode допилить, благо такой перевод для любой конверсии UTF-8 -> что-нибудь-ещё пригодится.
Comment 10 Alexey Gladkov 2008-12-16 14:26:14 MSK
(In reply to comment #9)
> Можно и таблички recode допилить, благо такой перевод для любой конверсии UTF-8 ->
> что-нибудь-ещё пригодится.

Есть такой фонт: /usr/share/groff/1.19.3/font/devascii. Тут есть преобразование разных символов. Но вот беда ... там нет и остальных не ascii символов ... их можно добавить, скажем из devutf8 и таким образом получится dev8bit.
Comment 11 Alexey Gladkov 2008-12-17 09:43:59 MSK
(In reply to comment #10)
> там нет и остальных не ascii символов ... их можно
> добавить, скажем из devutf8 и таким образом получится dev8bit.

На самом деле получилось не совсем так. :)
Но получилось нечто. Новый девайс создать всё-таки пришлось, но лишь затем чтобы разделить utf8 и 8-битные кодировки. Проблему вроде как можно решить обычными макросами, а таблицу замен предоставил devascii.
Вообщем, groff-1.19.3-alt3.20081215 и man-1.6f-alt8 выложены:

ftp://devel.altlinux.org/legion/repo/

прошу протестировать.
Comment 12 Michael Shigorin 2008-12-17 17:03:39 MSK
groff-base последней модели -- работает:

* Mon Dec 15 2008 Alexey Gladkov <legion@altlinux.ru> 1.19.3-alt3.20081215
- New cvs snapshot (1.19.3 cvs20081215).
- Fix special characters for 8-bit encodings.
Comment 13 Alexey Gladkov 2008-12-19 00:35:49 MSK
Сборка ушла в сизиф. Кроме тебя, Миша, никто не проявил интереса к тестированию сборки не проявил. Тем хуже для них.
Comment 14 Michael Shigorin 2009-01-01 00:21:30 MSK
Да ладно, она ж работает :-)

Спасибо!