Brendan O'Dea <[EMAIL PROTECTED]> writes:
> On Tue, Mar 07, 2006 at 12:02:53AM -0800, Andrew Pimlott wrote:

>> This old bug just tripped me.  It appears trivial to fix with this
>> patch.  I don't know roff, but this seems to have the right effect, and
>> you notice the tip-off "bv" ("bar vertical", "box vertical"?).  Someone
>> who knows roff could tell if this is the "right" fix (is tchrist still
>> active?), but this change seems harmless.
>> 
>> --- /usr/share/perl/5.8.8/Pod/Man.pm 2006-03-07 00:01:39.000000000 -0800
>> +++ -        2006-03-07 00:02:16.902649000 -0800
>> @@ -74,11 +74,10 @@
>> ..
>> .\" Set up some character translations and predefined strings.  \*(-- will
>> .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
>> -.\" double quote, and \*(R" will give a right double quote.  | will give a
>> -.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used 
>> to
>> +.\" double quote, and \*(R" will give a right double quote.
>> +.\" \*(C+ will give a nicer C++.  Capital omega is used to
>> .\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
>> .\" expand to `' in nroff, nothing in troff, for use with C<>.
>> -.tr \(*W-|\(bv\*(Tr
>> .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
>> .ie n \{\
>> .    ds -- \(*W-

> Russ Allbery maintains podlators now.

> This may well be fixed in the most recent version for cases of literal
> text (which I presume is the case you're trying to fix).

> Russ, similarly to "-" is literal text, should (is?) | now left
> unchanged?

\(bv is actually "bar vertical" not "box vertical"; see groff_char(7).  I
don't know the original motivation for translating | into \(bv, but it's
been there for years, probably since Tom's original pod2man.  I presume he
thought it was a good idea, at least at the time.  However, that time was
before Unicode was even invented.

In the new Unicode world, I think molesting unsuspecting ASCII characters
is much less of a good idea than it originally was; back then, this sort
of transformation only affected the troff output, but now, you get Unicode
in man output.  I think this patch is correct, and I'm going to apply it
upstream.  Brendan, the Perl maintainers are still debating over whether
to include Pod::Simple and the new podlators in stable, so in the meantime
I'd just go ahead and apply this patch to the Debian Perl package.

I'm a little suspicious of the \*(W fiddling as well, but I'm not sure I
understand exactly why that's being done.  The comment says that it's
turning \*(-- into an unbreakable dash, but I don't understand why that's
being done by outputting a Greek capital omega followed by a dash and then
using .tr to change the omega back to a dash.  If anyone understands what
the motivation might be here, please explain it to me?

-- 
Russ Allbery ([EMAIL PROTECTED])             <http://www.eyrie.org/~eagle/>


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to