Change 11219 by jhi@alpha on 2001/07/08 16:17:32
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.
Affected files ...
... //depot/perl/lib/AutoLoader.pm#24 integrate
... //depot/perl/lib/Cwd.pm#43 integrate
... //depot/perl/makedef.pl#75 integrate
Differences ...
==== //depot/perl/lib/AutoLoader.pm#24 (text) ====
Index: perl/lib/AutoLoader.pm
--- perl/lib/AutoLoader.pm.~1~ Sun Jul 8 10:30:06 2001
+++ perl/lib/AutoLoader.pm Sun Jul 8 10:30:06 2001
@@ -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 @@
unless ($filename =~ m{^([a-z?]:)?[\\/]}is) {
$filename = "./$filename";
}
- }elsif ($is_vms) {
+ }
+ elsif ($is_vms) {
# XXX todo by VMSmiths
$filename = "./$filename";
}
@@ -143,7 +144,13 @@
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 ($@) {
==== //depot/perl/lib/Cwd.pm#43 (text) ====
Index: perl/lib/Cwd.pm
--- perl/lib/Cwd.pm.~1~ Sun Jul 8 10:30:06 2001
+++ perl/lib/Cwd.pm Sun Jul 8 10:30:06 2001
@@ -1,5 +1,5 @@
package Cwd;
-require 5.000;
+require 5.6.0;
=head1 NAME
@@ -73,13 +73,35 @@
L<perlsub/Overriding Builtin Functions>.) 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<getcwd()>, C<fastgetcwd()> and C<fastcwd()>
+functions are all aliases for the C<cwd()> function, which, on Mac OS,
+calls `pwd`. Likewise, the C<abs_path()> function is an alias for
+C<fast_abs_path()>.
+
+=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 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:$!";
==== //depot/perl/makedef.pl#75 (text) ====
Index: perl/makedef.pl
--- perl/makedef.pl.~1~ Sun Jul 8 10:30:06 2001
+++ perl/makedef.pl Sun Jul 8 10:30:06 2001
@@ -749,7 +749,7 @@
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);
End of Patch.