On Sun, May 05, 2019 at 04:53:05PM +0200, Ingo Schwarze wrote:
> Hi Andrew,
> 
> Andrew Fresh wrote on Fri, May 03, 2019 at 06:24:16PM -0700:
> 
> > I committed this after moving the waitpid down a few lines, after the
> > last read from the filehandle.
> 
> Oops.  Sorry for missing that, and thanks for committing it,
> and for catching that additional issue.
> 
> > I will say that `perldoc -oterm unicook` looks a lot better with the
> > right fonts and LC_CTYPE=en_US.UTF-8 than the output from -oman, but it
> > looks a lot worse with LC_CTYPE=C so probably -oman is a better default.
> 
> Specifically,
> 
>   LC_CTYPE=en_US.UTF-8 LESS=-R perldoc -oterm  # produces UTF-8 (fine)
>   LC_CTYPE=en_US.UTF-8 perldoc -oman           # produces UTF-8 (fine)
>                                                # with the patch below
> 
>   LC_CTYPE=C LESS=-R perldoc -oterm unicook    # produces UTF-8 (bad)
>   LC_CTYPE=C perldoc -oman unicook             # produces ASCII (good)
> 
> So -oterm is definitely a bad default, and fixing it may be a waste
> of time.  I see no point in maintaining alternative output modes that
> provide little to no benefit.
> 
> > Perhaps I can figure out how to get ToMan to do the right thing in the
> > right locale someday.
> 
> The first chunk in the patch below seems to be all that is needed.
> 
> IIRC, we already do a similar thing in pod2man(1).

This is true, we do similar in pod2man and so the same fix here seems
correct.

When trying to push this upstream I will probably set it to 1 only if
$self->_is_mandoc, and then someone else can figure out adding it if
they're stuck on groff.  (that is assuming that there's not some crappy
mandoc that's popular on some strange system that perl wants to support,
but I will suggest it anyway.

It does appear that the -Owidth patch does what Pod::Perldoc wants it
to.  So, although I find it harder to read when it spans a wide
terminal, both of these are:

OK afresh1@


> Of course, both chunks can be OK'ed / objected to independently,
> they are completely independent of each other.  I'm merely leaving
> both in place such that they don't get forgotten.
> 
> Yours,
>   Ingo
> 
> 
> Index: ToMan.pm
> ===================================================================
> RCS file: 
> /cvs/src/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm,v
> retrieving revision 1.9
> diff -u -p -r1.9 ToMan.pm
> --- ToMan.pm  4 May 2019 01:14:34 -0000       1.9
> +++ ToMan.pm  5 May 2019 14:39:01 -0000
> @@ -144,7 +144,9 @@ sub _get_podman_switches {
>      #
>      # See RT #77465
>      #
> -    #push @switches, 'utf8' => 1;
> +    # Then again, do *not* comment it out on OpenBSD:
> +    # mandoc handles UTF-8 input just fine.
> +    push @switches, 'utf8' => 1;
>  
>       $self->debug( "Pod::Man switches are [@switches]\n" );
>  
> @@ -225,6 +227,10 @@ sub _collect_nroff_switches {
>               my $c = $cols * 39 / 40;
>               $cols = $c > $cols - 2 ? $c : $cols -2;
>               push @render_switches, '-rLL=' . (int $c) . 'n' if $cols > 80;
> +             }
> +
> +     if( $self->_is_mandoc ) {
> +             push @render_switches, '-Owidth=' . $self->_get_columns;
>               }
>  
>       # I hear persistent reports that adding a -c switch to $render

-- 
andrew - http://afresh1.com

At the source of every error which is blamed on the computer, you
will find at least two human errors, including the error of blaming
it on the computer.

Reply via email to