summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-02-14 00:52:17 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-02-14 00:52:17 +0000
commitb17fe6e572cf341e620c89fc18fb670ef7f916a6 (patch)
tree0f36b3f5c9025b2d3b30683ab3ff6101a5cda843
parentaa4575bf4ce4d2fd206049550c639de7bbca57c4 (diff)
parentb796b44505ce0254194b536d877a8bf6dbdda0da (diff)
downloadperl-b17fe6e572cf341e620c89fc18fb670ef7f916a6.tar.gz
[win32] integrate mainline
p4raw-id: //depot/win32/perl@523
-rw-r--r--hints/qnx.sh18
-rw-r--r--lib/Cwd.pm21
-rw-r--r--patchlevel.h2
-rw-r--r--pp_hot.c2
-rwxr-xr-xt/op/magic.t2
5 files changed, 31 insertions, 14 deletions
diff --git a/hints/qnx.sh b/hints/qnx.sh
index 947c98f679..7b7c9e616b 100644
--- a/hints/qnx.sh
+++ b/hints/qnx.sh
@@ -36,18 +36,8 @@
# Resolved in 970211 Beta
# lib/io_udp.t test hangs because of a bug in getsockname().
# Fixed in latest BETA socket3r.lib
-# If there is a softlink in your path, Findbin will fail.
-# This is a documented feature of perl's getpwd().
# There is currently no support for dynamically linked
# libraries.
-# op/magic.t failure due to a feature of QNX which rewrites script
-# names before they are executed. I think you'll find that if
-# you cd `fullpath -t` before doing the make, the test will pass.
-#----------------------------------------------------------------
-# At present, all QNX systems are equivalent architectures,
-# so it might be reasonable to call archname=qnx rather than
-# making an unnecessary distinction between AT-qnx and PCI-qnx,
-# for example.
#----------------------------------------------------------------
# These hints were submitted by:
# Norton T. Allen
@@ -62,6 +52,14 @@ echo "Some tests may fail. Please read the hints/qnx.sh file."
echo ""
#----------------------------------------------------------------
+# At present, all QNX systems are equivalent architectures,
+# so it is reasonable to call archname=x86-qnx rather than
+# making an unnecessary distinction between AT-qnx and PCI-qnx,
+# for example.
+#----------------------------------------------------------------
+archname='x86-qnx'
+
+#----------------------------------------------------------------
# QNX doesn't come with a csh and the ports of tcsh I've used
# don't work reliably:
#----------------------------------------------------------------
diff --git a/lib/Cwd.pm b/lib/Cwd.pm
index 048842b4ac..19ff497759 100644
--- a/lib/Cwd.pm
+++ b/lib/Cwd.pm
@@ -360,6 +360,19 @@ sub _dos_cwd {
return $ENV{'PWD'};
}
+sub _qnx_cwd {
+ $ENV{'PWD'} = `/usr/bin/fullpath -t`;
+ chop $ENV{'PWD'};
+ return $ENV{'PWD'};
+}
+
+sub _qnx_abs_path {
+ my $path = shift || '.';
+ my $realpath=`/usr/bin/fullpath -t $path`;
+ chop $realpath;
+ return $realpath;
+}
+
{
local $^W = 0; # assignments trigger 'subroutine redefined' warning
@@ -394,6 +407,14 @@ sub _dos_cwd {
*fastcwd = \&_dos_cwd;
*abs_path = \&fast_abs_path;
}
+ elsif ($^O eq 'qnx') {
+ *cwd = \&_qnx_cwd;
+ *getcwd = \&_qnx_cwd;
+ *fastgetcwd = \&_qnx_cwd;
+ *fastcwd = \&_qnx_cwd;
+ *abs_path = \&_qnx_abs_path;
+ *fast_abs_path = \&_qnx_abs_path;
+ }
}
# package main; eval join('',<DATA>) || die $@; # quick test
diff --git a/patchlevel.h b/patchlevel.h
index d27f1a3723..9ac7aa290a 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -1,5 +1,5 @@
#define PATCHLEVEL 4
-#define SUBVERSION 58
+#define SUBVERSION 59
/*
local_patches -- list of locally applied less-than-subversion patches.
diff --git a/pp_hot.c b/pp_hot.c
index 1815b66eb5..2bb1cb7a49 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -2032,8 +2032,6 @@ PP(pp_entersub)
}
#endif /* USE_THREADS */
- gimme = GIMME;
-
if (CvXSUB(cv)) {
if (CvOLDSTYLE(cv)) {
I32 (*fp3)_((int,int,int));
diff --git a/t/op/magic.t b/t/op/magic.t
index ace49b546d..ab23d84cc5 100755
--- a/t/op/magic.t
+++ b/t/op/magic.t
@@ -109,7 +109,7 @@ ok 18, $$ > 0, $$;
# $^X and $0
{
if ($^O eq 'qnx') {
- chomp($wd = `pwd`);
+ chomp($wd = `/usr/bin/fullpath -t`);
}
else {
$wd = '.';