[MacPerl-Porters] [PATCHES] blib.pm & blib.t for MacPerl 5.7.3/5.8.0
[email protected] (Thomas Wegner) Wed, 29 May 2002 19:11:21 +0200
| Newsgroups | perl.macperl.porters |
|---|---|
| Message-ID | <p04320401b91a6d60334a@[149.225.16.81]> |
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