develooper Front page | perl.perl5.changes | Postings from April 2008

Change 33747: [PATCH] update Pod-Perldoc to version 3.14_04

From:
Rafael Garcia-Suarez
Date:
April 26, 2008 08:15
Subject:
Change 33747: [PATCH] update Pod-Perldoc to version 3.14_04
Change 33747 by rgs@scipion on 2008/04/26 15:06:16

	Subject: [PATCH] update Pod-Perldoc to version 3.14_04
	From: "Adriano Ferreira" <a.r.ferreira@gmail.com>
	Date: Wed, 23 Apr 2008 09:45:35 -0300
	Message-ID: <73ddeb6c0804230545v75fee05dmeb849636addb14e1@mail.gmail.com>

Affected files ...

... //depot/perl/lib/Pod/Perldoc.pm#19 edit

Differences ...

==== //depot/perl/lib/Pod/Perldoc.pm#19 (text) ====
Index: perl/lib/Pod/Perldoc.pm
--- perl/lib/Pod/Perldoc.pm#18~31763~	2007-08-30 01:51:20.000000000 -0700
+++ perl/lib/Pod/Perldoc.pm	2008-04-26 08:06:16.000000000 -0700
@@ -12,7 +12,7 @@
 use vars qw($VERSION @Pagers $Bindir $Pod2man
   $Temp_Files_Created $Temp_File_Lifetime
 );
-$VERSION = '3.14_02';
+$VERSION = '3.14_04';
 #..........................................................................
 
 BEGIN {  # Make a DEBUG constant very first thing...
@@ -824,17 +824,20 @@
 
 #.........................................................................
 
-sub pod_dirs { # @dirs = pod_dirs($translator);
-    my $tr = shift;
-    return $tr->pod_dirs if $tr->can('pod_dirs');
-    
-    my $mod = ref $tr || $tr;
-    $mod =~ s|::|/|g;
-    $mod .= '.pm';
-
-    my $dir = $INC{$mod};
-    $dir =~ s/\.pm\z//;
-    return $dir;
+sub new_translator { # $tr = $self->new_translator($lang);
+    my $self = shift;
+    my $lang = shift;
+
+    my $pack = 'POD2::' . uc($lang);
+    eval "require $pack";
+    if ( !$@ && $pack->can('new') ) {
+	return $pack->new();
+    }
+
+    eval { require POD2::Base };
+    return if $@;
+    
+    return POD2::Base->new({ lang => $lang });
 }
 
 #.........................................................................
@@ -842,15 +845,17 @@
 sub add_translator { # $self->add_translator($lang);
     my $self = shift;
     for my $lang (@_) {
-        my $pack = 'POD2::' . uc($lang);
-        eval "require $pack";
-        if ( $@ ) {
-            # XXX warn: non-installed translator package
+        my $tr = $self->new_translator($lang);
+        if ( defined $tr ) {
+            push @{ $self->{'translators'} }, $tr;
+            push @{ $self->{'extra_search_dirs'} }, $tr->pod_dirs;
+
+            $self->aside( "translator for '$lang' loaded\n" );
         } else {
-            push @{ $self->{'translators'} }, $pack;
-            push @{ $self->{'extra_search_dirs'} }, pod_dirs($pack);
-            # XXX DEBUG
+            # non-installed or bad translator package
+            warn "Perldoc cannot load translator package for '$lang': ignored\n";
         }
+
     }
     return;
 }
@@ -1456,13 +1461,13 @@
   
   # Does this look like a module or extension directory?
   
-  if (-f "Makefile.PL") {
+  if (-f "Makefile.PL" || -f "Build.PL") {
 
     # Add "." and "lib" to @INC (if they exist)
     eval q{ use lib qw(. lib); 1; } or die;
 
     # don't add if superuser
-    if ($< && $> && -f "blib") {   # don't be looking too hard now!
+    if ($< && $> && -d "blib") {   # don't be looking too hard now!
       eval q{ use blib; 1 };
       warn $@ if $@ && $self->opt_v;
     }
End of Patch.



Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About