summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Ing-Simmons <nik@tiuk.ti.com>2001-06-20 08:56:39 +0000
committerNick Ing-Simmons <nik@tiuk.ti.com>2001-06-20 08:56:39 +0000
commit9f6a1155c416d294df8ecfbdeefadf8438f463ae (patch)
tree17bfe75b0adda6ad8a9e298c232829c5698ea958
parent5d0f390387801a9d64f5847c6ea27f18454bd071 (diff)
parentcb5953d685cec7d1e5d677ac4d2ddbe33ef0a803 (diff)
downloadperl-9f6a1155c416d294df8ecfbdeefadf8438f463ae.tar.gz
Integrate mainline.
p4raw-id: //depot/perlio@10745
-rw-r--r--AUTHORS8
-rwxr-xr-xConfigure31
-rw-r--r--Makefile.micro2
-rw-r--r--Porting/Glossary4
-rw-r--r--Porting/config.sh13
-rw-r--r--Porting/config_H14
-rw-r--r--config_h.SH6
-rw-r--r--configure.com9
-rwxr-xr-xembed.pl2
-rwxr-xr-xext/POSIX/POSIX.t5
-rw-r--r--lib/warnings.t4
-rw-r--r--perlapi.c4
-rw-r--r--perlio.c13
-rw-r--r--pod/perldiag.pod6
-rw-r--r--pod/perlfunc.pod18
-rw-r--r--pod/perltoc.pod14
-rwxr-xr-xt/TEST7
-rw-r--r--t/lib/1_compile.t1
-rw-r--r--t/lib/warnings/pp28
-rwxr-xr-xt/op/pat.t20
-rw-r--r--toke.c2
-rw-r--r--uconfig.h8
-rwxr-xr-xuconfig.sh1
-rw-r--r--util.c99
-rw-r--r--vms/descrip_mms.template30
-rw-r--r--vms/test.com8
-rw-r--r--vos/config.alpha.def1
-rw-r--r--vos/config.alpha.h6
-rw-r--r--vos/config.ga.def1
-rw-r--r--vos/config.ga.h6
-rw-r--r--win32/config_H.bc6
-rw-r--r--win32/config_H.gc6
-rw-r--r--win32/config_H.vc6
33 files changed, 185 insertions, 204 deletions
diff --git a/AUTHORS b/AUTHORS
index 24cf7c92b7..8934ab3d9b 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -43,6 +43,7 @@ Anthony David <adavid@netinfo.com.au>
Anton Berezin <tobez@tobez.org>
Art Green <Art_Green@mercmarine.com>
Artur <artur@vogon-solutions.com>
+Artur Bergman <artur@contiller.se>
Barrie Slaymaker <barries@slaysys.com>
Barry Friedman
Ben Tilly <ben_tilly@hotmail.com>
@@ -67,6 +68,7 @@ Brian Grossman
Brian Harrison <brie@corp.home.net>
Brian Jepson <bjepson@home.com>
Brian Katzung
+Brian McCauley <nobull@mail.com>
Brian Reichert <reichert@internet.com>
Brian S. Cashman <bsc@umich.edu>
Bruce Barnett <barnett@grymoire.crd.ge.com>
@@ -161,6 +163,7 @@ Ed Mooring <mooring@Lynx.COM>
Ed Peschko <epeschko@den-mdev1>
Edward Avis <epa98@doc.ic.ac.uk>
Edward Peschko <edwardp@excitehome.net>
+Edward Moy <emoy@apple.com>
Elaine -HFB- Ashton <elaine@chaos.wustl.edu>
Eric Arnold <eric.arnold@sun.com>
Eric Bartley <bartley@icd.cc.purdue.edu>
@@ -203,12 +206,14 @@ Greg Ward <gward@ase.com>
Gregory Martin Pfeil <pfeilgm@technomadic.org>
Guenter Schmidt <gsc@bruker.de>
Guido Flohr <gufl0000@stud.uni-sb.de>
+Guruprasad S <SGURUPRASAD@novell.com>
Gurusamy Sarathy <gsar@activestate.com>
Gustaf Neumann
Guy Decoux <decoux@moulon.inra.fr>
Gwyn Judd <b.judd@xtra.co.nz>
H.J. Lu <hjl@nynexst.com>
H.Merijn Brand <h.m.brand@hccnet.nl>
+Hal Morris <hom00@utsglobal.com>
Hal Pomeranz <pomeranz@netcom.com>
Hallvard B Furuseth <h.b.furuseth@usit.uio.no>
Hannu Napari <Hannu.Napari@hut.fi>
@@ -308,6 +313,7 @@ John Salinas <jsalinas@cray.com>
John Stoffel <jfs@fluent.com>
John Tobey <jtobey@john-edwin-tobey.org>
Jon Eveland <jweveland@yahoo.com>
+Jon Gunnip <jongunnip@hotmail.com>
Jon Orwant <orwant@oreilly.com>
Jonathan Biggar <jon@sems.com>
Jonathan D Johnston <jdjohnston2@juno.com>
@@ -515,6 +521,7 @@ Samuli Kärkkäinen <skarkkai@woods.iki.fi>
Scott Bronson <bronson@rinspin.com>
Scott Gifford <sgifford@tir.com>
Scott Henry <scotth@sgi.com>
+Scott L. Miller <Scott.L.Miller@Compaq.com>
Sean Robinson <robinson_s@sc.maricopa.edu>
Sean Sheedy <seans@ncube.com>
Sebastien Barre <Sebastien.Barre@utc.fr>
@@ -556,6 +563,7 @@ Thomas Conté <tom@fr.uu.net>
Thomas Dorner <Thomas.Dorner@start.de>
Thomas Kofler
Thomas König
+Thomas Wegner <wegner_thomas@yahoo.com>
Tim Adye <T.J.Adye@rl.ac.uk>
Tim Ayers <tayers@bridge.com>
Tim Bunce <Tim.Bunce@ig.co.uk>
diff --git a/Configure b/Configure
index e7d4ced8ba..2f76d15210 100755
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Tue Jun 19 02:14:42 EET DST 2001 [metaconfig 3.0 PL70]
+# Generated on Wed Jun 20 08:47:08 EET DST 2001 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
@@ -485,7 +485,6 @@ d_seekdir=''
d_telldir=''
d_readlink=''
d_readv=''
-d_realpath=''
d_recvmsg=''
d_rename=''
d_rmdir=''
@@ -8448,6 +8447,13 @@ int main()
Gconvert((DOUBLETYPE)123.456, 8, 0, buf);
checkit("123.456", buf);
+ /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */
+ Gconvert((DOUBLETYPE)1e30, 8, 0, buf);
+ if (strlen(buf) > 5)
+ checkit("1e+030", buf); /* for Microsoft */
+ else
+ checkit("1e+30", buf);
+
exit(0);
}
EOP
@@ -11400,10 +11406,6 @@ eval $inlibc
set readv d_readv
eval $inlibc
-: see if realpath exists
-set realpath d_realpath
-eval $inlibc
-
: see if recvmsg exists
set recvmsg d_recvmsg
eval $inlibc
@@ -13791,10 +13793,11 @@ if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
output=''
set try -DTRY_FPUTC
if eval $compile; then
- $run ./try 2>/dev/null
$rm -f try.out
+ $run ./try 2>/dev/null
+ code="$?"
$from try.out
- if $test ! -s try.out -a "X$?" = X42; then
+ if $test ! -s try.out -a "X$code" = X42; then
output=-DTRY_FPUTC
fi
fi
@@ -13802,10 +13805,11 @@ if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
'')
set try -DTRY_FPRINTF
if eval $compile; then
- $run ./try 2>/dev/null
$rm -f try.out
+ $run ./try 2>/dev/null
+ code="$?"
$from try.out
- if $test ! -s try.out -a "X$?" = X42; then
+ if $test ! -s try.out -a "X$code" = X42; then
output=-DTRY_FPRINTF
fi
fi
@@ -13816,9 +13820,9 @@ fi
case "$fflushNULL" in
'') set try -DTRY_FFLUSH_NULL $output
if eval $compile; then
+ $rm -f try.out
$run ./try 2>/dev/null
code="$?"
- $rm -f try.out
$from try.out
if $test -s try.out -a "X$code" = X42; then
fflushNULL="`$cat try.out`"
@@ -13943,7 +13947,9 @@ EOM
EOM
$rm -f try.out
$run ./try 2>/dev/null
- if $test -s try.out -a "X$?" = X42; then
+ code=$?
+ $from try.out
+ if $test -s try.out -a "X$code" = X42; then
fflushall="`$cat try.out`"
fi
fi
@@ -16706,7 +16712,6 @@ d_quad='$d_quad'
d_readdir='$d_readdir'
d_readlink='$d_readlink'
d_readv='$d_readv'
-d_realpath='$d_realpath'
d_recvmsg='$d_recvmsg'
d_rename='$d_rename'
d_rewinddir='$d_rewinddir'
diff --git a/Makefile.micro b/Makefile.micro
index 4ed2a1c907..78113aaad6 100644
--- a/Makefile.micro
+++ b/Makefile.micro
@@ -16,7 +16,7 @@ O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udump$(_O) \
uregcomp$(_O) uregexec$(_O) urun$(_O) \
uscope$(_O) usv$(_O) utaint$(_O) utoke$(_O) \
unumeric$(_O) ulocale$(_O) \
- uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) \
+ uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O)
microperl: $(O)
$(LD) -o $@ $(O) $(LIBS)
diff --git a/Porting/Glossary b/Porting/Glossary
index 26e6e4ca92..fa87e63ffe 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -1258,10 +1258,6 @@ d_readv (d_readv.U):
This variable conditionally defines the HAS_READV symbol, which
indicates to the C program that the readv() routine is available.
-d_realpath (d_realpath.U):
- This variable conditionally defines the HAS_REALPATH symbol, which
- indicates to the C program that the realpath() routine is available.
-
d_recvmsg (d_recvmsg.U):
This variable conditionally defines the HAS_RECVMSG symbol, which
indicates to the C program that the recvmsg() routine is available.
diff --git a/Porting/config.sh b/Porting/config.sh
index b804e9526b..5dc8a7e033 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -8,7 +8,7 @@
# Package name : perl5
# Source directory : .
-# Configuration time: Fri Jun 15 02:15:37 EET DST 2001
+# Configuration time: Wed Jun 20 08:48:18 EET DST 2001
# Configured by : jhi
# Target system : osf1 alpha.hut.fi v4.0 878 alpha
@@ -63,7 +63,7 @@ ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_
ccversion='V5.6-082'
cf_by='jhi'
cf_email='yourname@yourhost.yourplace.com'
-cf_time='Fri Jun 15 02:15:37 EET DST 2001'
+cf_time='Wed Jun 20 08:48:18 EET DST 2001'
charsize='1'
chgrp=''
chmod=''
@@ -85,7 +85,7 @@ cppstdin='cppstdin'
cppsymbols='_AES_SOURCE=1 __alpha=1 __ALPHA=1 _ANSI_C_SOURCE=1 __LANGUAGE_C__=1 _LONGLONG=1 __osf__=1 _OSF_SOURCE=1 _POSIX_C_SOURCE=199506 _POSIX_SOURCE=1 _REENTRANT=1 __STDC__=1 _SYSTYPE_BSD=1 __unix__=1 _XOPEN_SOURCE=1'
cryptlib=''
csh='csh'
-d_Gconvert='gcvt((x),(n),(b))'
+d_Gconvert='sprintf((b),"%.*g",(n),(x))'
d_PRIEUldbl='define'
d_PRIFUldbl='define'
d_PRIGUldbl='define'
@@ -287,7 +287,6 @@ d_quad='define'
d_readdir='define'
d_readlink='define'
d_readv='define'
-d_realpath='define'
d_recvmsg='define'
d_rename='define'
d_rewinddir='define'
@@ -438,7 +437,7 @@ eunicefix=':'
exe_ext=''
expr='expr'
extensions='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar PerlIO/Via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread Time/HiRes Time/Piece XS/Typemap attrs re Errno'
-fflushNULL='undef'
+fflushNULL='define'
fflushall='undef'
find=''
firstmakefile='makefile'
@@ -670,7 +669,7 @@ patchlevel='7'
path_sep=':'
perl5='/u/vieraat/vieraat/jhi/Perl/bin/perl'
perl=''
-perl_patchlevel='10575'
+perl_patchlevel='10721'
perladmin='yourname@yourhost.yourplace.com'
perllibs='-lm -liconv -lutil -lpthread -lexc'
perlpath='/opt/perl/bin/perl'
@@ -870,7 +869,7 @@ PERL_SUBVERSION=1
PERL_API_REVISION=5
PERL_API_VERSION=5
PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=10575
+PERL_PATCHLEVEL=10721
PERL_CONFIG_SH=true
# Variables propagated from previous config.sh file.
pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
diff --git a/Porting/config_H b/Porting/config_H
index 9aea69c251..b2c523d3a3 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -17,7 +17,7 @@
/*
* Package name : perl5
* Source directory : .
- * Configuration time: Fri Jun 15 02:15:37 EET DST 2001
+ * Configuration time: Wed Jun 20 08:48:18 EET DST 2001
* Configured by : jhi
* Target system : osf1 alpha.hut.fi v4.0 878 alpha
*/
@@ -1019,7 +1019,7 @@
* 4 and 8. The default is eight, for safety.
*/
#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
-#define MEM_ALIGNBYTES 8
+# define MEM_ALIGNBYTES 8
#else
#define MEM_ALIGNBYTES 8
#endif
@@ -1362,7 +1362,7 @@
* d_Gconvert='sprintf((b),"%.*g",(n),(x))'
* The last two assume trailing zeros should not be kept.
*/
-#define Gconvert(x,n,t,b) gcvt((x),(n),(b))
+#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
/* HAS_GETCWD:
* This symbol, if defined, indicates that the getcwd routine is
@@ -2324,7 +2324,7 @@
* Note that if fflushNULL is defined, fflushall will not
* even be probed for and will be left undefined.
*/
-/*#define FFLUSH_NULL / **/
+#define FFLUSH_NULL /**/
/*#define FFLUSH_ALL / **/
/* Fpos_t:
@@ -3372,12 +3372,6 @@
*/
/*#define HAS_FLOCK_PROTO / **/
-/* HAS_REALPATH:
- * This symbol, if defined, indicates that the realpath routine is
- * available to do resolve paths.
- */
-#define HAS_REALPATH /**/
-
/* HAS_SIGPROCMASK:
* This symbol, if defined, indicates that the sigprocmask
* system call is available to examine or change the signal mask
diff --git a/config_h.SH b/config_h.SH
index 35bfb1b1b7..235369c4dc 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -3392,12 +3392,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_flockproto HAS_FLOCK_PROTO /**/
-/* HAS_REALPATH:
- * This symbol, if defined, indicates that the realpath routine is
- * available to do resolve paths.
- */
-#$d_realpath HAS_REALPATH /**/
-
/* HAS_SIGPROCMASK:
* This symbol, if defined, indicates that the sigprocmask
* system call is available to examine or change the signal mask
diff --git a/configure.com b/configure.com
index d5de2003f4..a7459b049d 100644
--- a/configure.com
+++ b/configure.com
@@ -2149,10 +2149,6 @@ $ ans = F$EDIT(ans,"TRIM,COMPRESS,LOWERCASE")
$ IF ans.eqs."decc" then Has_Dec_C_Sockets = "T"
$ IF ans.eqs."socketshr" then Has_socketshr = "T"
$ ENDIF
-$ IF Has_Dec_C_Sockets .or. Has_socketshr
-$ THEN
-$ static_ext = f$edit(static_ext+" "+"Socket","trim,compress")
-$ ENDIF
$!
$!
$! Ask if they want to build with VMS_DEBUG perl
@@ -2485,7 +2481,10 @@ $ dflt = dflt - "GDBM_File" ! needs porting/special library
$ dflt = dflt - "IPC/SysV" ! needs to be ported
$ dflt = dflt - "NDBM_File" ! needs porting/special library
$ dflt = dflt - "ODBM_File" ! needs porting/special library
-$ dflt = dflt - "Socket" ! on VMS is optional static extension
+$ IF .NOT. Has_socketshr .AND. .NOT. Has_Dec_C_Sockets
+$ THEN
+$ dflt = dflt - "Socket" ! optional on VMS
+$ ENDIF
$ dflt = F$EDIT(dflt,"TRIM,COMPRESS")
$!
$! Ask for their default list of extensions to build
diff --git a/embed.pl b/embed.pl
index 5f44cebceb..64e0e5ba3f 100755
--- a/embed.pl
+++ b/embed.pl
@@ -2058,7 +2058,7 @@ Apd |void |sv_pos_b2u |SV* sv|I32* offsetp
Aopd |char* |sv_pvn_force |SV* sv|STRLEN* lp
Apd |char* |sv_pvutf8n_force|SV* sv|STRLEN* lp
Apd |char* |sv_pvbyten_force|SV* sv|STRLEN* lp
-Apd |int |sv_realpath |SV* sv|char *path|STRLEN len
+Apd |int |sv_realpath |SV* sv|char *path|STRLEN maxlen
Apd |char* |sv_reftype |SV* sv|int ob
Apd |void |sv_replace |SV* sv|SV* nsv
Apd |void |sv_report_used
diff --git a/ext/POSIX/POSIX.t b/ext/POSIX/POSIX.t
index 09bd88c2a9..cf08269f94 100755
--- a/ext/POSIX/POSIX.t
+++ b/ext/POSIX/POSIX.t
@@ -135,5 +135,8 @@ try_strftime(27, "Fri Mar 31 00:00:00 2000 091", 0,0,0, 31,2,100);
$| = 0;
# The following line assumes buffered output, which may be not true with EMX:
-print '@#!*$@(!@#$' unless ($^O eq 'os2' || $^O eq 'uwin' || $^O eq 'os390');
+print '@#!*$@(!@#$' unless ($^O eq 'os2' || $^O eq 'uwin' || $^O eq 'os390' ||
+ (defined $ENV{PERLIO} &&
+ $ENV{PERLIO} eq 'unix' &&
+ $Config::Config{useperlio}));
_exit(0);
diff --git a/lib/warnings.t b/lib/warnings.t
index 09b41fbd64..addcea2bd3 100644
--- a/lib/warnings.t
+++ b/lib/warnings.t
@@ -21,9 +21,9 @@ my @prgs = () ;
my @w_files = () ;
if (@ARGV)
- { print "ARGV = [@ARGV]\n" ; @w_files = map { s#^#./pragma/warn/#; $_ } @ARGV }
+ { print "ARGV = [@ARGV]\n" ; @w_files = map { s#^#./lib/warnings/#; $_ } @ARGV }
else
- { @w_files = sort glob("pragma/warn/*") }
+ { @w_files = sort glob("lib/warnings/*") }
my $files = 0;
foreach my $file (@w_files) {
diff --git a/perlapi.c b/perlapi.c
index e910818596..8c5901c3a2 100644
--- a/perlapi.c
+++ b/perlapi.c
@@ -3172,9 +3172,9 @@ Perl_sv_pvbyten_force(pTHXo_ SV* sv, STRLEN* lp)
#undef Perl_sv_realpath
int
-Perl_sv_realpath(pTHXo_ SV* sv, char *path, STRLEN len)
+Perl_sv_realpath(pTHXo_ SV* sv, char *path, STRLEN maxlen)
{
- return ((CPerlObj*)pPerl)->Perl_sv_realpath(sv, path, len);
+ return ((CPerlObj*)pPerl)->Perl_sv_realpath(sv, path, maxlen);
}
#undef Perl_sv_reftype
diff --git a/perlio.c b/perlio.c
index 590abf6290..c7ea8f1989 100644
--- a/perlio.c
+++ b/perlio.c
@@ -2800,17 +2800,24 @@ PerlIOBuf_unread(PerlIO *f, const void *vbuf, Size_t count)
if (PerlIOBase(f)->flags & PERLIO_F_RDBUF)
{
avail = (b->ptr - b->buf);
+ if (avail > (SSize_t) count)
+ avail = count;
}
else
{
avail = b->bufsiz;
+ /* Adjust this here to keep a subsequent tell() correct.
+ * (b->ptr - b->buf) *MUST* be an accurate reflection of the amount
+ * unread in this buffer. (See previous part of the if for an example,
+ * or try PERLIO=unix on t/io/tell.t.)
+ */
+ if (avail > (SSize_t) count)
+ avail = count;
b->end = b->buf + avail;
b->ptr = b->end;
PerlIOBase(f)->flags |= PERLIO_F_RDBUF;
- b->posn -= b->bufsiz;
+ b->posn -= avail;
}
- if (avail > (SSize_t) count)
- avail = count;
if (avail > 0)
{
b->ptr -= avail;
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index de8956be94..75f9ec08a1 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -3286,6 +3286,12 @@ assignment or as a subroutine argument for example).
(F) Your Perl was compiled with B<-D>SETUID_SCRIPTS_ARE_SECURE_NOW, but
a version of the setuid emulator somehow got run anyway.
+=item sv_realpath: %s
+
+(S) You probably used some form of getcwd. The implementation of
+that functionality detected something odd in your filesystem
+environment and gave up (returning undef).
+
=item Switch (?(condition)... contains too many branches in regex;
marked by <-- HERE in m/%s/
diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index 89123011ca..67c305ca6b 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -2812,19 +2812,25 @@ STDERR:
print STDOUT "stdout 2\n";
print STDERR "stderr 2\n";
-If you specify C<< '<&=N' >>, where C<N> is a number, then Perl will do an
-equivalent of C's C<fdopen> of that file descriptor; this is more
-parsimonious of file descriptors. For example:
+If you specify C<< '<&=N' >>, where C<N> is a number, then Perl will
+do an equivalent of C's C<fdopen> of that file descriptor; this is
+more parsimonious of file descriptors. For example:
open(FILEHANDLE, "<&=$fd")
+
or
+
open(FILEHANDLE, "<&=", $fd)
-Note that if perl is using the standard C libaries fdopen() then on many UNIX systems,
-fdopen() is known to fail when file descriptors
+Note that if Perl is using the standard C libraries' fdopen() then on
+many UNIX systems, fdopen() is known to fail when file descriptors
exceed a certain value, typically 255. If you need more file
descriptors than that, consider rebuilding Perl to use the C<PerlIO>.
+You can see whether Perl has been compiled with PerlIO or not by
+running C<perl -V> and looking for C<useperlio=> line. If C<useperlio>
+is C<define>, you have PerlIO, otherwise you don't.
+
If you open a pipe on the command C<'-'>, i.e., either C<'|-'> or C<'-|'>
with 2-arguments (or 1-argument) form of open(), then
there is an implicit fork done, and the return value of open is the pid
@@ -5510,7 +5516,7 @@ Does the opposite of a C<shift>. Or the opposite of a C<push>,
depending on how you look at it. Prepends list to the front of the
array, and returns the new number of elements in the array.
- unshift(ARGV, '-e') unless $ARGV[0] =~ /^-/;
+ unshift(@ARGV, '-e') unless $ARGV[0] =~ /^-/;
Note the LIST is prepended whole, not one element at a time, so the
prepended elements stay in the same order. Use C<reverse> to do the
diff --git a/pod/perltoc.pod b/pod/perltoc.pod
index 1094d8c92d..0912724c6b 100644
--- a/pod/perltoc.pod
+++ b/pod/perltoc.pod
@@ -3908,7 +3908,7 @@ PUSHn, PUSHp, PUSHs, PUSHu, PUTBACK, Renew, Renewc, require_pv, RETVAL,
Safefree, savepv, savepvn, SAVETMPS, SP, SPAGAIN, ST, strEQ, strGE, strGT,
strLE, strLT, strNE, strnEQ, strnNE, StructCopy, SvCUR, SvCUR_set, SvEND,
SvGETMAGIC, SvGROW, SvIOK, SvIOKp, SvIOK_notUV, SvIOK_off, SvIOK_on,
-SvIOK_only, SvIOK_only_UV, SvIOK_UV, SvIV, SvIVx, SvIVX, SvLEN, SvNIOK,
+SvIOK_only, SvIOK_only_UV, SvIOK_UV, SvIV, SvIVX, SvIVx, SvLEN, SvNIOK,
SvNIOKp, SvNIOK_off, SvNOK, SvNOKp, SvNOK_off, SvNOK_on, SvNOK_only, SvNV,
SvNVx, SvNVX, SvOK, SvOOK, SvPOK, SvPOKp, SvPOK_off, SvPOK_on, SvPOK_only,
SvPOK_only_UTF8, SvPV, SvPVbyte, SvPVbytex, SvPVbytex_force,
@@ -4575,22 +4575,26 @@ I<The Road goes ever on and on, down from the door where it began.>
=item Incompatible Changes
+=over 4
+
+=item 64-bit platforms and malloc
+
=item Future Deprecations
+=back
+
=item Core Enhancements
=item Modules and Pragmata
=over 4
-=item New Modules
+=item New Modules and Distribution
=item Updated And Improved Modules and Pragmata
=back
-=item Performance Enhancements
-
=item Utility Changes
=item New Documentation
@@ -4651,6 +4655,8 @@ I<The Road goes ever on and on, down from the door where it began.>
=item Self-tying of Arrays and Hashes Is Forbidden
+=item Variable Attributes are not Currently Usable for Tieing
+
=item Building Extensions Can Fail Because Of Largefiles
=item The Compiler Suite Is Still Experimental
diff --git a/t/TEST b/t/TEST
index 5fcc26865a..0a63f0e5f0 100755
--- a/t/TEST
+++ b/t/TEST
@@ -190,7 +190,8 @@ EOT
or print "can't deparse '$deparse': $!.\n";
}
elsif ($type eq 'perl') {
- my $run = "./perl $testswitch $switch $utf $test |";
+ my $perl = $ENV{PERL} || './perl';
+ my $run = "$perl $testswitch $switch $utf $test |";
open(RESULTS,$run) or print "can't run '$run': $!.\n";
}
else {
@@ -250,9 +251,11 @@ EOT
}
if ($ENV{PERL_3LOG}) {
my $tpp = $test;
+ $tpp =~ s:^../::;
$tpp =~ s:/:_:g;
$tpp =~ s:\.t$::;
- rename("perl.3log", "perl.3log.$tpp");
+ rename("perl.3log", "perl.3log.$tpp") ||
+ die "rename: perl3.log to perl.3log.$tpp: $!\n";
}
$next = $next - 1;
if ($ok && $next == $max) {
diff --git a/t/lib/1_compile.t b/t/lib/1_compile.t
index 29db2ccb70..027ced1f2d 100644
--- a/t/lib/1_compile.t
+++ b/t/lib/1_compile.t
@@ -251,6 +251,7 @@ UNIVERSAL
User::grent
User::pwent
XS::Typemap
+attributes
attrs
autouse
base
diff --git a/t/lib/warnings/pp b/t/lib/warnings/pp
index 62f054a6ee..83786a023e 100644
--- a/t/lib/warnings/pp
+++ b/t/lib/warnings/pp
@@ -63,7 +63,7 @@ my $b = { 1,2,3};
EXPECT
Odd number of elements in hash assignment at - line 3.
########
-# pp.c
+# pp_pack.c
use warnings 'pack' ;
use warnings 'unpack' ;
my @a = unpack ("A,A", "22") ;
@@ -85,7 +85,7 @@ my $c = $$a;
EXPECT
Use of uninitialized value in scalar dereference at - line 4.
########
-# pp.c
+# pp_pack.c
use warnings 'pack' ;
sub foo { my $a = "a"; return $a . $a++ . $a++ }
my $a = pack("p", &foo) ;
@@ -108,16 +108,16 @@ $_ = "\x80 \xff" ;
reverse ;
EXPECT
########
-# pp.c
+# pp_pack.c
use warnings 'pack' ;
-print unpack("C", pack("C", -1)), "\n";
-print unpack("C", pack("C", 0)), "\n";
-print unpack("C", pack("C", 255)), "\n";
-print unpack("C", pack("C", 256)), "\n";
-print unpack("c", pack("c", -129)), "\n";
-print unpack("c", pack("c", -128)), "\n";
-print unpack("c", pack("c", 127)), "\n";
-print unpack("c", pack("c", 128)), "\n";
+print unpack("C", pack("C", -1)), "\n",
+ unpack("C", pack("C", 0)), "\n",
+ unpack("C", pack("C", 255)), "\n",
+ unpack("C", pack("C", 256)), "\n",
+ unpack("c", pack("c", -129)), "\n",
+ unpack("c", pack("c", -128)), "\n",
+ unpack("c", pack("c", 127)), "\n",
+ unpack("c", pack("c", 128)), "\n";
no warnings 'pack' ;
print unpack("C", pack("C", -1)), "\n";
print unpack("C", pack("C", 0)), "\n";
@@ -129,9 +129,9 @@ print unpack("c", pack("c", 127)), "\n";
print unpack("c", pack("c", 128)), "\n";
EXPECT
Character in "C" format wrapped at - line 3.
-Character in "C" format wrapped at - line 6.
-Character in "c" format wrapped at - line 7.
-Character in "c" format wrapped at - line 10.
+Character in "C" format wrapped at - line 3.
+Character in "c" format wrapped at - line 3.
+Character in "c" format wrapped at - line 3.
255
0
255
diff --git a/t/op/pat.t b/t/op/pat.t
index c59e31f87f..942e6e65f9 100755
--- a/t/op/pat.t
+++ b/t/op/pat.t
@@ -6,7 +6,7 @@
$| = 1;
-print "1..630\n";
+print "1..632\n";
BEGIN {
chdir 't' if -d 't';
@@ -1765,3 +1765,21 @@ EOT
print "ok 630\n";
}
+$_ = "foo";
+
+eval <<"EOT"; die if $@;
+ /f
+ o\r
+ o
+ \$
+ /x && print "ok 631\n";
+EOT
+
+eval <<"EOT"; die if $@;
+ /f
+ o
+ o
+ \$\r
+ /x && print "ok 632\n";
+EOT
+
diff --git a/toke.c b/toke.c
index fca0f73bb8..34e2fd4306 100644
--- a/toke.c
+++ b/toke.c
@@ -1374,7 +1374,7 @@ S_scan_const(pTHX_ char *start)
else if (*s == '$') {
if (!PL_lex_inpat) /* not a regexp, so $ must be var */
break;
- if (s + 1 < send && !strchr("()| \n\t", s[1]))
+ if (s + 1 < send && !strchr("()| \r\n\t", s[1]))
break; /* in regexp, $ might be tail anchor */
}
diff --git a/uconfig.h b/uconfig.h
index 67578fae84..4d51056e86 100644
--- a/uconfig.h
+++ b/uconfig.h
@@ -1015,7 +1015,7 @@
* 4 and 8. The default is eight, for safety.
*/
#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
-#define MEM_ALIGNBYTES 8
+# define MEM_ALIGNBYTES 8
#else
#define MEM_ALIGNBYTES 4
#endif
@@ -3368,12 +3368,6 @@
*/
/*#define HAS_FLOCK_PROTO / **/
-/* HAS_REALPATH:
- * This symbol, if defined, indicates that the realpath routine is
- * available to do resolve paths.
- */
-/*#define HAS_REALPATH / **/
-
/* HAS_SIGPROCMASK:
* This symbol, if defined, indicates that the sigprocmask
* system call is available to examine or change the signal mask
diff --git a/uconfig.sh b/uconfig.sh
index 52e34b7b75..ca35351d25 100755
--- a/uconfig.sh
+++ b/uconfig.sh
@@ -218,7 +218,6 @@ d_quad='undef'
d_readdir='undef'
d_readlink='undef'
d_readv='undef'
-d_realpath='undef'
d_recvmsg='undef'
d_rename='undef'
d_rewinddir='undef'
diff --git a/util.c b/util.c
index 7a7d5f16d4..1d69fe5602 100644
--- a/util.c
+++ b/util.c
@@ -56,14 +56,14 @@ long lastxycount[MAXXCOUNT][MAXYCOUNT];
# define FD_CLOEXEC 1 /* NeXT needs this */
#endif
-/* paranoid version of system's malloc() */
-
/* NOTE: Do not call the next three routines directly. Use the macros
* in handy.h, so that we can easily redefine everything to do tracking of
* allocated hunks back to the original New to track down any memory leaks.
* XXX This advice seems to be widely ignored :-( --AD August 1996.
*/
+/* paranoid version of system's malloc() */
+
Malloc_t
Perl_safesysmalloc(MEM_SIZE size)
{
@@ -742,7 +742,7 @@ Perl_fbm_instr(pTHX_ unsigned char *big, register unsigned char *bigend, SV *lit
*/
/* If SvTAIL is actually due to \Z or \z, this gives false positives
- if PL_multiline. In fact if !PL_multiline the autoritative answer
+ if PL_multiline. In fact if !PL_multiline the authoritative answer
is not supported yet. */
char *
@@ -781,8 +781,14 @@ Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift
/* The value of pos we can stop at: */
stop_pos = SvCUR(bigstr) - end_shift - (SvCUR(littlestr) - 1 - previous);
if (previous + start_shift > stop_pos) {
+/*
+ stop_pos does not include SvTAIL in the count, so this check is incorrect
+ (I think) - see [ID 20010618.006] and t/op/study.t. HVDS 2001/06/19
+*/
+#if 0
if (previous + start_shift == stop_pos + 1) /* A fake '\n'? */
goto check_tail;
+#endif
return Nullch;
}
while (pos < previous + start_shift) {
@@ -3618,6 +3624,9 @@ Perl_sv_getcwd(pTHX_ register SV *sv)
SvGROW(sv, 128);
while ((getcwd(SvPVX(sv), SvLEN(sv)-1) == NULL) && errno == ERANGE) {
+ if (SvLEN(sv) + 128 >= MAXPATHLEN) {
+ SV_CWD_RETURN_UNDEF;
+ }
SvGROW(sv, SvLEN(sv) + 128);
}
SvCUR_set(sv, strlen(SvPVX(sv)));
@@ -3681,6 +3690,10 @@ Perl_sv_getcwd(pTHX_ register SV *sv)
SV_CWD_RETURN_UNDEF;
}
+ if (pathlen + namelen + 1 >= MAXPATHLEN) {
+ SV_CWD_RETURN_UNDEF;
+ }
+
SvGROW(sv, pathlen + namelen + 1);
if (pathlen) {
@@ -3731,62 +3744,44 @@ Perl_sv_getcwd(pTHX_ register SV *sv)
/*
=for apidoc sv_realpath
-Wrap or emulate realpath(3).
+Emulate realpath(3).
+
+The real realpath() is not used because it's a known can of worms.
+We may have bugs but hey, they are our very own.
=cut
*/
int
-Perl_sv_realpath(pTHX_ SV *sv, char *path, STRLEN len)
+Perl_sv_realpath(pTHX_ SV *sv, char *path, STRLEN maxlen)
{
#ifndef PERL_MICRO
- char name[MAXPATHLEN] = { 0 }, *s;
+ char name[MAXPATHLEN] = { 0 };
+ char dotdots[MAXPATHLEN] = { 0 };
+ char *s;
STRLEN pathlen, namelen;
+ DIR *parent;
+ Direntry_t *dp;
+ struct stat cst, pst, tst;
- /* Don't use strlen() to avoid running off the end. */
- s = memchr(path, '\0', MAXPATHLEN);
- pathlen = s ? s - path : MAXPATHLEN;
-
-#ifdef HAS_REALPATH
-
- /* Be paranoid about the use of realpath(),
- * it is an infamous source of buffer overruns. */
-
- /* Is the source buffer too long? */
- if (pathlen == MAXPATHLEN) {
- Perl_warn(aTHX_ "sv_realpath: realpath(\"%s\"): %c= (MAXPATHLEN = %d)",
- path, s ? '=' : '>', MAXPATHLEN);
- SV_CWD_RETURN_UNDEF;
- }
-
- /* Here goes nothing. */
- if (realpath(path, name) == NULL) {
- Perl_warn(aTHX_ "sv_realpath: realpath(\"%s\"): %s",
- path, Strerror(errno));
+ if (!sv || !path || !maxlen) {
+ Perl_warn(aTHX_ "sv_realpath: realpath(0x%x, 0x%x, "")",
+ sv, path, maxlen);
SV_CWD_RETURN_UNDEF;
}
- /* Is the destination buffer too long?
+ /* Is the source buffer too long?
* Don't use strlen() to avoid running off the end. */
- s = memchr(name, '\0', MAXPATHLEN);
- namelen = s ? s - name : MAXPATHLEN;
- if (namelen == MAXPATHLEN) {
- Perl_warn(aTHX_ "sv_realpath: realpath(\"%s\"): %c= (MAXPATHLEN = %d)",
- path, s ? '=' : '>', MAXPATHLEN);
+ if (maxlen >= MAXPATHLEN)
+ pathlen = maxlen;
+ else {
+ s = memchr(path, '\0', MAXPATHLEN);
+ pathlen = s ? s - path : MAXPATHLEN;
+ }
+ if (pathlen >= MAXPATHLEN) {
+ Perl_warn(aTHX_ "sv_realpath: source too large");
SV_CWD_RETURN_UNDEF;
}
- /* The coast is clear? */
- sv_setpvn(sv, name, namelen);
- SvPOK_only(sv);
-
- return TRUE;
-#else
- {
- DIR *parent;
- Direntry_t *dp;
- char dotdots[MAXPATHLEN] = { 0 };
- struct stat cst, pst, tst;
-
if (PerlLIO_stat(path, &cst) < 0) {
Perl_warn(aTHX_ "sv_realpath: stat(\"%s\"): %s",
path, Strerror(errno));
@@ -3795,10 +3790,9 @@ Perl_sv_realpath(pTHX_ SV *sv, char *path, STRLEN len)
(void)SvUPGRADE(sv, SVt_PV);
- if (!len) {
- len = strlen(path);
- }
- Copy(path, dotdots, len, char);
+ Copy(path, dotdots, maxlen, char);
+
+ pathlen = 0;
for (;;) {
strcat(dotdots, "/..");
@@ -3858,6 +3852,11 @@ Perl_sv_realpath(pTHX_ SV *sv, char *path, STRLEN len)
SV_CWD_RETURN_UNDEF;
}
+ if (pathlen + namelen + 1 >= MAXPATHLEN) {
+ Perl_warn(aTHX_ "sv_realpath: too long name");
+ SV_CWD_RETURN_UNDEF;
+ }
+
SvGROW(sv, pathlen + namelen + 1);
if (pathlen) {
/* shift down */
@@ -3884,10 +3883,8 @@ Perl_sv_realpath(pTHX_ SV *sv, char *path, STRLEN len)
SvPOK_only(sv);
return TRUE;
- }
-#endif
#else
- return FALSE;
+ return FALSE; /* MICROPERL */
#endif
}
diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template
index 022dcccabf..c4cae568ae 100644
--- a/vms/descrip_mms.template
+++ b/vms/descrip_mms.template
@@ -237,16 +237,8 @@ MYEXT = DynaLoader
# there are any object files specified
# These must be built separately, or you must add rules below to build them
myextobj = [.ext.dynaloader]dl_vms$(O),
-#: We include the Socket extension by default if we're building with socket
-#: support, since it's small and not really worth bothering to keep track
-#: of separately.
-.ifdef SOCKET
-EXT = $(MYEXT) Socket
-extobj = $(myextobj) [.ext.socket]socket$(O),
-.else
EXT = $(MYEXT)
extobj = $(myextobj)
-.endif
.ifdef LIBS2
.else
@@ -616,7 +608,7 @@ dynext : $(LIBPREREQ) $(DBG)perlshr$(E) preplibrary
$(MINIPERL) $(MMS$SOURCE)
Copy/Log [.pod]podselect.com $(MMS$TARGET)
-preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM)
+preplibrary : $(MINIPERL_EXE) $(LIBPREREQ)
@ Write Sys$Output "Autosplitting Perl library . . ."
@ Create/Directory [.lib.auto]
@ $(MINIPERL) -e "use AutoSplit; autosplit_lib_modules(@ARGV)" [.lib]*.pm [.lib.*]*.pm
@@ -861,15 +853,6 @@ printconfig :
.ifdef SOCKET
-.ifdef LINK_ONLY
-.else
-[.ext.Socket]Socket$(O) : [.ext.Socket]Socket.c
- $(CC) $(CFLAGS) /Object=$(MMS$TARGET) $(MMS$SOURCE)
-
-[.ext.Socket]Socket.c : [.ext.Socket]Socket.xs [.lib.ExtUtils]XSSymSet.pm $(MINIPERL_EXE)
- $(XSUBPP) $(MMS$SOURCE) >$(MMS$TARGET)
-.endif # !LINK_ONLY
-
vmsish.h : $(SOCKH)
$(SOCKO) : $(SOCKC) EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h opnames.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h perlio.h
@@ -880,8 +863,6 @@ $(SOCKC) : [.vms]$(SOCKC)
$(SOCKH) : [.vms]$(SOCKH)
Copy/Log/NoConfirm [.vms]$(SOCKH) []$(SOCKH)
-[.lib]Socket.pm : [.ext.Socket]Socket.pm
- Copy/Log/NoConfirm $(MMS$SOURCE) $(MMS$TARGET)
.endif
# The following files are generated automatically
@@ -958,8 +939,8 @@ archify : all
# Should move to VMS installperl when we get one
.ifdef SOCKET
$(SOCKARCH) : $(SOCKH)
- @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
- Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+ @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
+ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
.endif
$(ARCHCORE)av.h : av.h
@ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
@@ -1262,7 +1243,6 @@ tidy : cleanlis
- If F$Search("Perlshr_Gbl*.Mar;-1") .nes."" Then Purge/NoConfirm/Log Perlshr_Gbl*.Mar
- If F$Search("[.Ext.DynaLoader]DL_VMS$(O);-1").nes."" Then Purge/NoConfirm/Log [.Ext.DynaLoader]DL_VMS$(O)
- If F$Search("[.Ext.DynaLoader]DL_VMS.C;-1").nes."" Then Purge/NoConfirm/Log [.Ext.DynaLoader]DL_VMS.C
- - If F$Search("[.Ext.Socket]Socket.C;-1").nes."" Then Purge/NoConfirm/Log [.Ext.DynaLoader]DL_VMS.C
- If F$Search("[.Ext.Opcode...];-1").nes."" Then Purge/NoConfirm/Log [.Ext.Opcode]
- If F$Search("[.VMS.Ext...]*.C;-1").nes."" Then Purge/NoConfirm/Log [.VMS.Ext...]*.C
- If F$Search("[.VMS.Ext...]*$(O);-1").nes."" Then Purge/NoConfirm/Log [.VMS.Ext...]*$(O)
@@ -1270,7 +1250,6 @@ tidy : cleanlis
- If F$Search("[.Lib.Auto...]autosplit.ix;-1").nes."" Then Purge/NoConfirm/Log [.Lib.Auto...]autosplit.ix
- If F$Search("[.Lib]DynaLoader.pm;-1").nes."" Then Purge/NoConfirm/Log [.Lib]DynaLoader.pm
- If F$Search("[.Lib]XSLoader.pm;-1").nes."" Then Purge/NoConfirm/Log [.Lib]XSLoader.pm
- - If F$Search("[.Lib]Socket.pm;-1").nes."" Then Purge/NoConfirm/Log [.Lib]Socket.pm
- If F$Search("[.Lib]Config.pm;-1").nes."" Then Purge/NoConfirm/Log [.Lib]Config.pm
- If F$Search("$(ARCHDIR)Config.pm;-1").nes."" Then Purge/NoConfirm/Log $(ARCHDIR)Config.pm
- If F$Search("[.lib.ExtUtils]Miniperl.pm").nes."" Then Purge/NoConfirm/Log [.lib.ExtUtils]Miniperl.pm
@@ -1303,8 +1282,6 @@ clean : tidy cleantest
- If F$Search("[.Ext.DynaLoader]DL_VMS.C").nes."" Then Delete/NoConfirm/Log [.Ext.DynaLoader]DL_VMS.C;*
- If F$Search("[.Ext.DynaLoader]DynaLoader.pm").nes."" Then Delete/NoConfirm/Log [.Ext.DynaLoader]DynaLoader.pm;*
- If F$Search("[.Ext.DynaLoader]XSLoader.pm").nes."" Then Delete/NoConfirm/Log [.Ext.DynaLoader]XSLoader.pm;*
- - If F$Search("[.Ext.Socket]Socket$(O)").nes."" Then Delete/NoConfirm/Log [.Ext.Socket]Socket$(O);*
- - If F$Search("[.Ext.Socket]Socket.C").nes."" Then Delete/NoConfirm/Log [.Ext.Socket]Socket.C;*
- If F$Search("[.VMS.Ext...]*.C").nes."" Then Delete/NoConfirm/Log [.VMS.Ext...]*.C;*
- If F$Search("[.VMS.Ext...]*$(O)").nes."" Then Delete/NoConfirm/Log [.VMS.Ext...]*$(O);*
- If F$Search("[.pod]*.com").nes."" Then Delete/NoConfirm/Log [.pod]*.com;*
@@ -1324,7 +1301,6 @@ realclean : clean
- If F$Search("*.TS").nes."" Then Delete/NoConfirm/Log *.TS;*
- If F$Search("[.Lib]DynaLoader.pm").nes."" Then Delete/NoConfirm/Log [.Lib]DynaLoader.pm;*
- If F$Search("[.Lib]XSLoader.pm").nes."" Then Delete/NoConfirm/Log [.Lib]XSLoader.pm;*
- - If F$Search("[.Lib]Socket.pm").nes."" Then Delete/NoConfirm/Log [.Lib]Socket.pm;*
- If F$Search("[.Lib]Config.pm").nes."" Then Delete/NoConfirm/Log [.Lib]Config.pm;*
- If F$Search("[.Lib]*.com").nes."" Then Delete/NoConfirm/Log [.Lib]*.com;*
- If F$Search("[.pod]*.com").nes."" Then Delete/NoConfirm/Log [.pod]*.com;*
diff --git a/vms/test.com b/vms/test.com
index 6fae18dba5..80f3452964 100644
--- a/vms/test.com
+++ b/vms/test.com
@@ -112,6 +112,7 @@ $ Deck/Dollar=$$END-OF-TEST$$
# of Unixisms in the tests. (The Perl operators being tested may work fine,
# but the tests may use other operators which don't.)
use Config;
+use File::Spec;
@compexcl=('cpp.t');
@ioexcl=('argv.t','dup.t','fs.t','pipe.t');
@@ -143,8 +144,9 @@ if (lc($ARGV[0]) eq '-v') {
chdir 't' if -f 't/TEST';
if ($ARGV[0] eq '') {
- foreach (<[.*]*.t>) {
- s/.*[\[.]t./[./;
+ foreach (<[-.ext...]*.t>, <[-.lib...]*.t>, <[.*]*.t>) {
+ $_ = File::Spec->abs2rel($_);
+ s/\[([a-z]+)/[.$1/; # hmm, abs2rel doesn't do subdirs of the cwd
($fname = $_) =~ s/.*\]//;
if ($skip{"\L$fname"}) { push(@skipped,$_); }
else { push(@ARGV,$_); }
@@ -166,7 +168,7 @@ while ($test = shift) {
}
$te = $test;
chop($te);
- $te .= '.' x (24 - length($te));
+ $te .= '.' x (40 - length($te));
open(script,"$test") || die "Can't run $test.\n";
$_ = <script>;
close(script);
diff --git a/vos/config.alpha.def b/vos/config.alpha.def
index 23196501c3..006551691c 100644
--- a/vos/config.alpha.def
+++ b/vos/config.alpha.def
@@ -194,7 +194,6 @@ $d_quad='undef'
$d_readdir='define'
$d_readlink='define'
$d_readv='undef'
-$d_realpath='undef'
$d_recvmsg='undef'
$d_rename='define'
$d_rewinddir='define'
diff --git a/vos/config.alpha.h b/vos/config.alpha.h
index 54dfc0c7fe..3f47acfcd0 100644
--- a/vos/config.alpha.h
+++ b/vos/config.alpha.h
@@ -3368,12 +3368,6 @@
*/
/*#define HAS_FLOCK_PROTO /**/
-/* HAS_REALPATH:
- * This symbol, if defined, indicates that the realpath routine is
- * available to do resolve paths.
- */
-/*#define HAS_REALPATH /**/
-
/* HAS_SIGPROCMASK:
* This symbol, if defined, indicates that the sigprocmask
* system call is available to examine or change the signal mask
diff --git a/vos/config.ga.def b/vos/config.ga.def
index 9a0a02cf98..4d49cf53ad 100644
--- a/vos/config.ga.def
+++ b/vos/config.ga.def
@@ -194,7 +194,6 @@ $d_quad='undef'
$d_readdir='define'
$d_readlink='define'
$d_readv='undef'
-$d_realpath='undef'
$d_recvmsg='undef'
$d_rename='define'
$d_rewinddir='define'
diff --git a/vos/config.ga.h b/vos/config.ga.h
index 8c4dd35376..5b283e3f13 100644
--- a/vos/config.ga.h
+++ b/vos/config.ga.h
@@ -3368,12 +3368,6 @@
*/
/*#define HAS_FLOCK_PROTO /**/
-/* HAS_REALPATH:
- * This symbol, if defined, indicates that the realpath routine is
- * available to do resolve paths.
- */
-/*#define HAS_REALPATH /**/
-
/* HAS_SIGPROCMASK:
* This symbol, if defined, indicates that the sigprocmask
* system call is available to examine or change the signal mask
diff --git a/win32/config_H.bc b/win32/config_H.bc
index 6efd9cac9a..6f1d3c1914 100644
--- a/win32/config_H.bc
+++ b/win32/config_H.bc
@@ -3368,12 +3368,6 @@
*/
/*#define HAS_FLOCK_PROTO /**/
-/* HAS_REALPATH:
- * This symbol, if defined, indicates that the realpath routine is
- * available to do resolve paths.
- */
-/*#define HAS_REALPATH /**/
-
/* HAS_SIGPROCMASK:
* This symbol, if defined, indicates that the sigprocmask
* system call is available to examine or change the signal mask
diff --git a/win32/config_H.gc b/win32/config_H.gc
index 0f20bce9c2..ce85240be0 100644
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -3368,12 +3368,6 @@
*/
/*#define HAS_FLOCK_PROTO /**/
-/* HAS_REALPATH:
- * This symbol, if defined, indicates that the realpath routine is
- * available to do resolve paths.
- */
-/*#define HAS_REALPATH /**/
-
/* HAS_SIGPROCMASK:
* This symbol, if defined, indicates that the sigprocmask
* system call is available to examine or change the signal mask
diff --git a/win32/config_H.vc b/win32/config_H.vc
index 476245ea42..e48c157707 100644
--- a/win32/config_H.vc
+++ b/win32/config_H.vc
@@ -3368,12 +3368,6 @@
*/
/*#define HAS_FLOCK_PROTO /**/
-/* HAS_REALPATH:
- * This symbol, if defined, indicates that the realpath routine is
- * available to do resolve paths.
- */
-/*#define HAS_REALPATH /**/
-
/* HAS_SIGPROCMASK:
* This symbol, if defined, indicates that the sigprocmask
* system call is available to examine or change the signal mask