Greetings,

here are :lib:blib.pm and :lib:blib.t patches for MacPerl 5.7.3/5.8.0.


diff -ru blib.pm.orig blib.pm
--- blib.pm.orig        Mon May 27 18:31:03 2002
+++ blib.pm     Tue May 28 21:13:22 2002
@@ -37,6 +37,7 @@
  =cut

  use Cwd;
+use File::Spec;

  use vars qw($VERSION $Verbose);
  $VERSION = '1.01';
@@ -52,20 +53,32 @@
     $dir = shift;
     $dir =~ s/blib\z//;
     $dir =~ s,/+\z,,;
-   $dir = '.' unless ($dir);
+   $dir = File::Spec->curdir() unless ($dir);
     die "$dir is not a directory\n" unless (-d $dir);
    }
- my $i   = 5;
+ my $i = 5;
+ my ($blib, $blib_lib, $blib_arch);
   while ($i--)
    {
-   my $blib = "${dir}/blib";
-   if (-d $blib && -d "$blib/arch" && -d "$blib/lib")
+   $blib = File::Spec->catdir($dir, "blib");
+   $blib_lib = File::Spec->catdir($blib, "lib");
+
+   if ($^O eq 'MacOS')
+    {
+        $blib_arch = File::Spec->catdir($blib_lib, "MacPPC");
+       }
+   else
+    {
+        $blib_arch = File::Spec->catdir($blib, "arch");
+       }
+
+   if (-d $blib && -d $blib_arch && -d $blib_lib)
      {
-     unshift(@INC,"$blib/arch","$blib/lib");
+     unshift(@INC,$blib_arch,$blib_lib);
       warn "Using $blib\n" if $Verbose;
       return;
-    }
-   $dir .= "/..";
+       }
+   $dir = File::Spec->catdir($dir, File::Spec->updir());
    }
   die "Cannot find blib even in $dir\n";
  }



diff -ru blib.t.orig blib.t
--- blib.t.orig Mon May 27 18:33:42 2002
+++ blib.t      Tue May 28 21:26:22 2002
@@ -6,10 +6,11 @@
  }

  use strict;
+my ($blib, $blib_arch, $blib_lib, @blib_dirs);

  sub _cleanup {
-    rmdir foreach reverse qw(blib blib/arch blib/lib);
-    unlink "stderr";
+    rmdir foreach reverse (@_);
+    unlink "stderr" unless ($^O eq 'MacOS');
  }

  sub _mkdirs {
@@ -18,16 +19,32 @@
          mkdir $dir or die "Can't mkdir $dir: $!" if ! -d $dir;
      }
  }
-

-BEGIN { _cleanup }
+
+BEGIN {
+       if ($^O eq 'MacOS')
+       {
+               $blib = ":blib:";
+               $blib_lib = ":blib:lib:";
+               $blib_arch = ":blib:lib:MacPPC:";
+               @blib_dirs = ($blib, $blib_lib, $blib_arch); # order 
is important !
+       }
+       else
+       {
+               $blib = "blib";
+               $blib_arch = "blib/arch";
+               $blib_lib = "blib/lib";
+               @blib_dirs = ($blib, $blib_arch, $blib_lib);
+       }
+       _cleanup( @blib_dirs );
+}

  use Test::More tests => 7;

  eval 'use blib;';
  ok( $@ =~ /Cannot find blib/, 'Fails if blib directory not found' );

-_mkdirs(qw(blib blib/arch blib/lib));
+_mkdirs( @blib_dirs );

  {
      my $warnings = '';
@@ -39,7 +56,7 @@
  is( @INC, 3, '@INC now has 3 elements' );
  is( $INC[2],    '../lib',       'blib added to the front of @INC' );

-ok( grep(m|blib/lib$|, @INC[0,1])  == 1,     '  blib/lib in @INC');
-ok( grep(m|blib/arch$|, @INC[0,1]) == 1,     '  blib/arch in @INC');
+ok( grep(m|$blib_lib$|, @INC[0,1])  == 1,     '  blib/lib in @INC');
+ok( grep(m|$blib_arch$|, @INC[0,1]) == 1,     '  blib/arch in @INC');

-END { _cleanup(); }
+END { _cleanup( @blib_dirs ); }


__END__ of 2 patches


Best regards,

--Thomas




Reply via email to