[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]
PATCH to Cwd.pm: *realpath = \&abs_path
Isn't this function technically equivalent to realpath(3)? If so,
I have two requests.
1) Please allow it to be called as that more familiar name as
well, which is more what someone who uses Cwd::getcwd()
is apt to expect, since that function mimics getcwd(3).
Patch appended. :-)
2) Consider making this an XS module that just calls the
safer and more reasonable libc functions getcwd(3) and
fastpath(3) where those are available. Patch not appended. :-(
--tom
--- /usr/local/src/perl5.005_63/lib/Cwd.pm Tue Jul 20 11:17:59 1999
+++ /tmp/Cwd.pm Thu Jan 27 04:52:16 2000
@@ -20,7 +20,7 @@
chdir "/tmp";
print $ENV{'PWD'};
- use Cwd 'abs_path';
+ use Cwd 'abs_path'; # aka realpath()
print abs_path($ENV{'PWD'});
use Cwd 'fast_abs_path';
@@ -32,8 +32,11 @@
in Perl.
The abs_path() function takes a single argument and returns the
-absolute pathname for that argument. It uses the same algorithm as
-getcwd(). (actually getcwd() is abs_path("."))
+absolute pathname for that argument. It uses the same algorithm
+as getcwd(). (Actually, getcwd() is abs_path(".")) Symbolic links
+and relative-path components ("." and "..") are resolved to return
+the canonical pathname, just like realpath(3). Also callable as
+realpath().
The fastcwd() function looks the same as getcwd(), but runs faster.
It's also more dangerous because it might conceivably chdir() you out
@@ -72,7 +75,7 @@
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(cwd getcwd fastcwd fastgetcwd);
-@EXPORT_OK = qw(chdir abs_path fast_abs_path);
+@EXPORT_OK = qw(chdir abs_path fast_abs_path realpath fast_realpath);
# The 'natural and safe form' for UNIX (pwd may be setuid root)
@@ -257,6 +260,10 @@
$cwd;
}
+# added function alias for those of us more
+# used to the libc function. --tchrist 27-Jan-00
+*realpath = \&abs_path;
+
sub fast_abs_path {
my $cwd = getcwd();
my $path = shift || '.';
@@ -265,6 +272,10 @@
CORE::chdir($cwd) || croak "Cannot chdir back to $cwd:$!";
$realpath;
}
+
+# added function alias to follow principle of least surprise
+# based on previous aliasing. --tchrist 27-Jan-00
+*fast_realpath = \&fast_abs_path;
# --- PORTING SECTION ---
[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]