X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FFindBin.pm;h=0d75414a33c1f09be650593970d6bde0a6d6ba3b;hb=46471bde41ad0777edf7b89818df6730e8b55c20;hp=353a904647ffbf2459696218f04b58a27b263d92;hpb=34da6cec5a776efea53d807532e089a20e26cba6;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/FindBin.pm b/lib/FindBin.pm index 353a904..0d75414 100644 --- a/lib/FindBin.pm +++ b/lib/FindBin.pm @@ -104,7 +104,7 @@ use File::Spec; %EXPORT_TAGS = (ALL => [qw($Bin $Script $RealBin $RealScript $Dir $RealDir)]); @ISA = qw(Exporter); -$VERSION = "1.46"; +$VERSION = "1.48"; sub cwd2 { my $cwd = getcwd(); @@ -142,24 +142,19 @@ sub init { my $dir; foreach $dir (File::Spec->path) - { + { my $scr = File::Spec->catfile($dir, $script); - if(-r $scr && (!$dosish || -x _)) + + # $script can been found via PATH but perl could have + # been invoked as 'perl file'. Do a dumb check to see + # if $script is a perl program, if not then keep $script = $0 + # + # well we actually only check that it is an ASCII file + # we know its executable so it is probably a script + # of some sort. + if(-f $scr && -r _ && ($dosish || -x _) && -s _ && -T _) { $script = $scr; - - if (-f $0) - { - # $script has been found via PATH but perl could have - # been invoked as 'perl file'. Do a dumb check to see - # if $script is a perl program, if not then $script = $0 - # - # well we actually only check that it is an ASCII file - # we know its executable so it is probably a script - # of some sort. - - $script = $0 unless(-T $script); - } last; } } @@ -188,7 +183,11 @@ sub init } # Get absolute paths to directories - $Bin = abs_path($Bin) if($Bin); + if ($Bin) { + my $BinOld = $Bin; + $Bin = abs_path($Bin); + defined $Bin or $Bin = File::Spec->canonpath($BinOld); + } $RealBin = abs_path($RealBin) if($RealBin); } }