From: Jarkko Hietaniemi Date: Sun, 8 Jul 2001 16:17:32 +0000 (+0000) Subject: Integrate changes #11193, 11205, 11209 from macperl. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=4d6b4052f6d8ee82bf0dff017df8eaa089f29e9f;p=p5sagit%2Fp5-mst-13.2.git Integrate changes #11193, 11205, 11209 from macperl. Fix up AutoLoader to fudge for Mac paths in import(). Allow symbols in try_symbol() to begin with "_". Small portability fix for Mac OS. p4raw-link: @11209 on //depot/maint-5.6/macperl: 6ad6b2be750c4cb30e974afa9b2e179a2f381679 p4raw-link: @11205 on //depot/maint-5.6/macperl: 85661f92e975162c5b6280ce9e0b3cd6ee7563fd p4raw-link: @11193 on //depot/maint-5.6/macperl: 87cd12a80943bf11d0d777d1855d8572168f9887 p4raw-id: //depot/perl@11219 p4raw-integrated: from //depot/maint-5.6/macperl@11217 'merge in' lib/AutoLoader.pm lib/Cwd.pm makedef.pl (@11007..) --- diff --git a/lib/AutoLoader.pm b/lib/AutoLoader.pm index 10d13ba..4b2261e 100644 --- a/lib/AutoLoader.pm +++ b/lib/AutoLoader.pm @@ -1,6 +1,6 @@ package AutoLoader; -use 5.005_64; +use 5.6.0; our(@EXPORT, @EXPORT_OK, $VERSION); my $is_dosish; @@ -68,7 +68,8 @@ AUTOLOAD { unless ($filename =~ m{^([a-z?]:)?[\\/]}is) { $filename = "./$filename"; } - }elsif ($is_vms) { + } + elsif ($is_vms) { # XXX todo by VMSmiths $filename = "./$filename"; } @@ -143,7 +144,13 @@ sub import { my $path = $INC{$calldir . '.pm'}; if (defined($path)) { # Try absolute path name. - $path =~ s#^(.*)$calldir\.pm$#$1auto/$calldir/autosplit.ix#; + if ($is_macos) { + (my $malldir = $calldir) =~ tr#/#:#; + $path =~ s#^(.*)$malldir\.pm\z#$1auto:$malldir:autosplit.ix#s; + } else { + $path =~ s#^(.*)$calldir\.pm\z#$1auto/$calldir/autosplit.ix#; + } + eval { require $path; }; # If that failed, try relative path with normal @INC searching. if ($@) { diff --git a/lib/Cwd.pm b/lib/Cwd.pm index 7192665..3c5c50a 100644 --- a/lib/Cwd.pm +++ b/lib/Cwd.pm @@ -1,5 +1,5 @@ package Cwd; -require 5.000; +require 5.6.0; =head1 NAME @@ -73,13 +73,35 @@ environment variable will be kept up to date. (See L.) Note that it will only be kept up to date if all packages which use chdir import it from Cwd. +=head1 NOTES + +=over 4 + +=item * + +On Mac OS (Classic), the path separator is ':', not '/', and the +current directory is denoted as ':', not '.'. To move up the directory +tree, you will use '::' to move up one level, but ':::' and so on to +move up the tree two or more levels (i.e. the equivalent to '../../..' +is '::::'). Generally, you should be careful about specifying relative pathnames. +While a full path always begins with a volume name, a relative pathname +should always begin with a ':'. If specifying a volume name only, a +trailing ':' is required. + +Actually, on Mac OS, the C, C and C +functions are all aliases for the C function, which, on Mac OS, +calls `pwd`. Likewise, the C function is an alias for +C. + +=back + =cut use strict; use Carp; -our $VERSION = '2.04'; +our $VERSION = '2.05'; use base qw/ Exporter /; our @EXPORT = qw(cwd getcwd fastcwd fastgetcwd); @@ -220,7 +242,8 @@ sub chdir { sub fast_abs_path { my $cwd = getcwd(); - my $path = @_ ? shift : '.'; + require File::Spec; + my $path = @_ ? shift : File::Spec->curdir; CORE::chdir($path) || croak "Cannot chdir to $path:$!"; my $realpath = getcwd(); CORE::chdir($cwd) || croak "Cannot chdir back to $cwd:$!"; diff --git a/makedef.pl b/makedef.pl index 12eab67..a1713f4 100644 --- a/makedef.pl +++ b/makedef.pl @@ -749,7 +749,7 @@ else { sub try_symbol { my $symbol = shift; - return if $symbol !~ /^[A-Za-z]/; + return if $symbol !~ /^[A-Za-z_]/; return if $symbol =~ /^\#/; $symbol =~s/\r//g; chomp($symbol);