[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#457839: general: Many man pages display shell quotes ` and ' wrong in Unicode environment

Package: general
Severity: normal

In Unix/Linux shells the Ascii apostrophe (') is used as single
quotation mark. The grave accent (`) is used as command substitution
mark. In many man pages these are displayed wrong because they have
different meaning in groff code.

In groff code the non-escaped grave accent (`) is logical (English) left
single quotation mark. In Unicode environment (e.g. UTF-8 terminal or
Postscript) it is displayed as U+2018 LEFT SINGLE QUOTATION MARK. In
non-Unicode environment it is displayed as U+0060 GRAVE ACCENT.

Similarly, in groff code the non-escaped Ascii apostrophe and single
quote (') is logical (English) apostrophe and right single quotation
mark. In Unicode environment it is displayed as U+2019 RIGHT SINGLE
QUOTATION MARK and in non-Unicode environment as U+0027 APOSTROPHE.

So, the Ascii grave accent (`) and Ascii apostrophe (') must never be
used to describe shell syntax in groff code. Instead the shell grave
accent (`command` substitution) mark must be "\(ga" and the shell single
quote (' ') must be "\(aq". The following table shows how different
marks display in different environments:

groff      Unicode   non-Unicode
'          <U+2019>  '
`          <U+2018>  `
\(aq       '         '
\(ga       `         `
\`         `         `
\'         ´         ' (in ASCII)

This is mainly a problem on the upstream side. The fix for this would be
to encourage upstream developers to check the man pages they author and
change ` marks to \(ga (when they are used in shell syntax) and ' marks
to \(aq (again, only when they are used in shell syntax).

Reply to: