summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/lib/FindBin.pm
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>1999-05-02 14:33:17 +0000
committermarkm <markm@FreeBSD.org>1999-05-02 14:33:17 +0000
commit77644ee620b6a79cf8c538abaf7cd301a875528d (patch)
treeb4adabf341898a4378f4b7f8c7fb65f3f7c77769 /contrib/perl5/lib/FindBin.pm
parent4fcbc3669aa997848e15198cc9fb856287a6788c (diff)
downloadFreeBSD-src-77644ee620b6a79cf8c538abaf7cd301a875528d.zip
FreeBSD-src-77644ee620b6a79cf8c538abaf7cd301a875528d.tar.gz
Maintenance releace 3 of perl5.005. Includes support for threads.
Diffstat (limited to 'contrib/perl5/lib/FindBin.pm')
-rw-r--r--contrib/perl5/lib/FindBin.pm47
1 files changed, 14 insertions, 33 deletions
diff --git a/contrib/perl5/lib/FindBin.pm b/contrib/perl5/lib/FindBin.pm
index d6bd7b7..9e1c0a0 100644
--- a/contrib/perl5/lib/FindBin.pm
+++ b/contrib/perl5/lib/FindBin.pm
@@ -55,7 +55,10 @@ Workaround is to invoke perl as
=head1 AUTHORS
-Graham Barr E<lt>F<bodg@tiuk.ti.com>E<gt>
+FindBin is supported as part of the core perl distribution. Please send bug
+reports to E<lt>F<perlbug@perl.org>E<gt> using the perlbug program included with perl.
+
+Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
Nick Ing-Simmons E<lt>F<nik@tiuk.ti.com>E<gt>
=head1 COPYRIGHT
@@ -64,10 +67,6 @@ Copyright (c) 1995 Graham Barr & Nick Ing-Simmons. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
-=head1 REVISION
-
-$Revision: 1.4 $
-
=cut
package FindBin;
@@ -77,31 +76,13 @@ require Exporter;
use Cwd qw(getcwd abs_path);
use Config;
use File::Basename;
+use File::Spec;
@EXPORT_OK = qw($Bin $Script $RealBin $RealScript $Dir $RealDir);
%EXPORT_TAGS = (ALL => [qw($Bin $Script $RealBin $RealScript $Dir $RealDir)]);
@ISA = qw(Exporter);
-$VERSION = $VERSION = sprintf("%d.%02d", q$Revision: 1.41 $ =~ /(\d+)\.(\d+)/);
-
-sub is_abs_path
-{
- local $_ = shift if (@_);
- if ($^O eq 'MSWin32' || $^O eq 'dos')
- {
- return m#^[a-z]:[\\/]#i;
- }
- elsif ($^O eq 'VMS')
- {
- # If it's a logical name, expand it.
- $_ = $ENV{$_} while /^[\w\$\-]+$/ and $ENV{$_};
- return m!^/! or m![<\[][^.\-\]>]! or /:[^<\[]/;
- }
- else
- {
- return m#^/#;
- }
-}
+$VERSION = $VERSION = "1.42";
BEGIN
{
@@ -131,13 +112,12 @@ BEGIN
&& -f $script)
{
my $dir;
- my $pathvar = 'PATH';
-
- foreach $dir (split(/$Config{'path_sep'}/,$ENV{$pathvar}))
+ foreach $dir (File::Spec->path)
{
- if(-r "$dir/$script" && (!$IsWin32 || -x _))
+ my $scr = File::Spec->catfile($dir, $script);
+ if(-r $scr && (!$IsWin32 || -x _))
{
- $script = "$dir/$script";
+ $script = $scr;
if (-f $0)
{
@@ -160,7 +140,8 @@ BEGIN
# Ensure $script contains the complete path incase we C<chdir>
- $script = getcwd() . "/" . $script unless is_abs_path($script);
+ $script = File::Spec->catfile(getcwd(), $script)
+ unless File::Spec->file_name_is_absolute($script);
($Script,$Bin) = fileparse($script);
@@ -172,9 +153,9 @@ BEGIN
($RealScript,$RealBin) = fileparse($script);
last unless defined $linktext;
- $script = (is_abs_path($linktext))
+ $script = (File::Spec->file_name_is_absolute($linktext))
? $linktext
- : $RealBin . "/" . $linktext;
+ : File::Spec->catfile($RealBin, $linktext);
}
# Get absolute paths to directories
OpenPOWER on IntegriCloud