From: Jarkko Hietaniemi <jhi@iki.fi>
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<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 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);