This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #95034] Make perldoc <url> use a reasonabe name
authorFather Chrysostomos <sprout@cpan.org>
Sun, 18 Sep 2011 21:17:50 +0000 (14:17 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 18 Sep 2011 21:20:38 +0000 (14:20 -0700)
This patch makes perldoc with a URL use a somewhat reasonable name
based on the basename of the URL, instead of displaying PALLEGCSYO or
BJ1KKH1675 in the pod header (based on the tmp file name).

It treats all URLs the same (changing perldoc.pod to PERLDOC), instead
of treating .pm’s specially.  Maybe this could be improved later.

dist/Pod-Perldoc/lib/Pod/Perldoc.pm
dist/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm
pod/perldelta.pod

index b8c9181..cdfea45 100644 (file)
@@ -12,7 +12,7 @@ use File::Spec::Functions qw(catfile catdir splitdir);
 use vars qw($VERSION @Pagers $Bindir $Pod2man
   $Temp_Files_Created $Temp_File_Lifetime
 );
-$VERSION = '3.15_06';
+$VERSION = '3.15_07';
 #..........................................................................
 
 BEGIN {  # Make a DEBUG constant very first thing...
@@ -731,6 +731,9 @@ sub grand_search_init {
                 my ($fh, $filename) = File::Temp::tempfile(UNLINK => 1);
                 $fh->print($response->{content});
                 push @found, $filename;
+                ($self->{podnames}{$filename} =
+                  m{.*/([^/#?]+)} ? uc $1 : "UNKNOWN")
+                   =~ s/\.P(?:[ML]|OD)\z//;
             }
             else {
                 print STDERR "No " .
@@ -1141,6 +1144,11 @@ sub render_findings {
   $self->{'output_is_binary'} =
     $formatter->can('write_with_binmode') && $formatter->write_with_binmode;
 
+  if( $self->{podnames} and exists $self->{podnames}{$file} and
+      $formatter->can('name') ) {
+    $formatter->name($self->{podnames}{$file});
+  }
+
   my ($out_fh, $out) = $self->new_output_file(
     ( $formatter->can('output_extension') && $formatter->output_extension )
      || undef,
index 09b0e81..f456a24 100644 (file)
@@ -26,6 +26,7 @@ sub fixed           { shift->_perldoc_elem('fixed'          , @_) }
 sub fixedbold       { shift->_perldoc_elem('fixedbold'      , @_) }
 sub fixeditalic     { shift->_perldoc_elem('fixeditalic'    , @_) }
 sub fixedbolditalic { shift->_perldoc_elem('fixedbolditalic', @_) }
+sub name            { shift->_perldoc_elem('name'           , @_) }
 sub quotes          { shift->_perldoc_elem('quotes'         , @_) }
 sub release         { shift->_perldoc_elem('release'        , @_) }
 sub section         { shift->_perldoc_elem('section'        , @_) }
index 9820c0a..98d56fb 100644 (file)
@@ -338,6 +338,13 @@ L<perlfaq> has been upgraded from version 5.01500302 to version 5.0150034.
 
 =item *
 
+L<Pod::Perldoc> has been upgraded from version 3.15_06 to 3.15_07.
+
+When rendering a file specified as an HTTP URL, it now use a manpage name
+based on the URL, instead of the name of the temporary file.
+
+=item *
+
 L<Pod::Simple> has been upgraded from version 3.18 to version 3.19.
 
 =item *