Looks like there is still a problem. If you use: C<-u> Pod::Man will now output: \f(CW\*(C`\-u\*(C'\fR which, when formatted by nroff, still has the backslash in place. Now granted, it makes more sense to us B<-u> (which doesn't have this problem), but that's not the point :-) For a test case, the following suffices: =pod =head1 SYNOPSIS foo C<-v> =cut - todd In message <ylr9cgaqll.fsf@windlord.stanford.edu> so spake Russ Allbery (rra): > That was an annoying one. Thanks for the catch. Could you try this patch > and let me know if it fixes the problem? > > diff -u -r1.2 Man.pm > --- Man.pm 2000/03/19 07:30:13 1.2 > +++ Man.pm 2000/04/09 03:37:39 > @@ -550,6 +550,21 @@ > return bless \ "$tmp", 'Pod::Man::String'; > } > > + # C<> needs to fix hyphens and underscores but can't apply guesswork and > + # can't just apply those fixes to the entire string, since then it might > + # mess up the results of guesswork on substrings. So we do this > + # somewhat roundabout way of handling it. > + if ($command eq 'C') { > + my @children = $seq->parse_tree ()->children; > + for (@children) { > + unless (ref) { > + s/-/\\-/g; > + s/__/_\\|_/g; > + } > + } > + $seq->parse_tree ()->children (@children); > + } > + > # C<>, L<>, X<>, and E<> don't apply guesswork to their contents. > local $_ = $self->collapse ($seq->parse_tree, $command =~ /^[CELX]$/); > > @@ -576,8 +591,6 @@ > } elsif ($command eq 'I') { > return bless \ ('\f(IS' . $_ . '\f(IE'), 'Pod::Man::String'; > } elsif ($command eq 'C') { > - s/-/\\-/g; > - s/__/_\\|_/g; > return bless \ ('\f(FS\*(C`' . $_ . "\\*(C'\\f(FE"), > 'Pod::Man::String'; > } > > -- > Russ Allbery (rra@stanford.edu) <http://www.eyrie.org/~eagle/>Thread Previous | Thread Next