summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>1999-03-01 06:34:43 +0000
committerJarkko Hietaniemi <jhi@iki.fi>1999-03-01 06:34:43 +0000
commit414a664e2b5f79af383cffac00205f7570368407 (patch)
tree3b8d782082585103ec40921b6fd0633d6dc0fb9b
parentca8cfa5475011a74e81458daa0cc5b23c374bc3a (diff)
parentf3af6f93e0af75505d1e3ad6c2236ce64075726d (diff)
downloadperl-414a664e2b5f79af383cffac00205f7570368407.tar.gz
Integrate from mainperl.
p4raw-id: //depot/cfgperl@3047
-rw-r--r--Changes567
-rw-r--r--INSTALL7
-rw-r--r--MAINTAIN1
-rw-r--r--MANIFEST2
-rw-r--r--README.hpux193
-rw-r--r--jpl/JNI/JNI.xs1
-rw-r--r--lib/File/Compare.pm69
-rw-r--r--lib/File/Spec.pm31
-rw-r--r--lib/File/Spec/Functions.pm83
-rw-r--r--lib/Getopt/Std.pm5
-rw-r--r--lib/Pod/Html.pm2
-rw-r--r--lib/Test/Harness.pm6
-rw-r--r--op.c34
-rw-r--r--patchlevel.h2
-rw-r--r--perl.c3
-rw-r--r--pod/perldelta.pod22
-rw-r--r--pod/perlhist.pod1
-rw-r--r--pod/perltodo.pod17
-rw-r--r--pod/perlvar.pod48
-rw-r--r--pod/pod2man.PL4
-rw-r--r--proto.h2
-rwxr-xr-xt/base/lex.t67
-rwxr-xr-xt/op/eval.t52
-rw-r--r--toke.c23
-rw-r--r--win32/Makefile2
-rw-r--r--win32/config_H.bc16
-rw-r--r--win32/config_H.gc16
-rw-r--r--win32/config_H.vc16
-rw-r--r--win32/makefile.mk2
-rw-r--r--win32/win32.c27
30 files changed, 1212 insertions, 109 deletions
diff --git a/Changes b/Changes
index 0da710ca66..1cfbe33ce8 100644
--- a/Changes
+++ b/Changes
@@ -75,7 +75,572 @@ indicator:
----------------
-Version 5.005_55 Development release working toward 5.006
+Version 5.005_56 Development release working toward 5.006
+----------------
+
+____________________________________________________________________________
+[ 3045] By: gsar on 1999/03/01 03:32:30
+ Log: destroy PL_svref_mutex in perl_destruct()
+ Branch: perl
+ ! perl.c
+____________________________________________________________________________
+[ 3044] By: gsar on 1999/03/01 00:38:50
+ Log: up patchlevel &c.
+ Branch: perl
+ ! Changes patchlevel.h pod/perlhist.pod win32/Makefile
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ ! win32/makefile.mk
+____________________________________________________________________________
+[ 3043] By: gsar on 1999/03/01 00:14:15
+ Log: integrate cfgperl contents into mainline
+ Branch: perl
+ ! pod/perldelta.pod
+ !> Configure config_h.SH
+____________________________________________________________________________
+[ 3042] By: gsar on 1999/02/28 23:55:08
+ Log: slightly edited version of suggested patch
+ From: jan.dubois@ibm.net (Jan Dubois)
+ Date: Mon, 01 Mar 1999 00:32:05 +0100
+ Message-ID: <36dbcf2c.12325433@smtp1.ibm.net>
+ Subject: Re: [PATCH 5.005_55] Cleanup of File::Spec module
+ Branch: perl
+ + lib/File/Spec/Functions.pm
+ ! MANIFEST lib/File/Spec.pm
+____________________________________________________________________________
+[ 3041] By: gsar on 1999/02/28 22:47:19
+ Log: fix subtle bug in eval'' testsuite
+ Branch: perl
+ ! t/op/eval.t
+____________________________________________________________________________
+[ 3040] By: gsar on 1999/02/28 22:46:24
+ Log: avoid literal control characters in change#3039
+ Branch: perl
+ ! t/base/lex.t
+____________________________________________________________________________
+[ 3039] By: gsar on 1999/02/28 21:47:18
+ Log: todo item: permit extended control variables a la ${^Foo} (patch
+ courtesy Mark-Jason Dominus <mjd@plover.com>)
+ Branch: perl
+ ! op.c pod/perldelta.pod pod/perltodo.pod pod/perlvar.pod
+ ! t/base/lex.t toke.c
+____________________________________________________________________________
+[ 3038] By: gsar on 1999/02/28 21:21:05
+ Log: From: abigail@fnx.com
+ Date: Sun, 28 Feb 1999 10:59:16 -0500 (EST)
+ Message-ID: <19990228155916.14496.qmail@alexandra.wayne.fnx.com>
+ Subject: Recognize -> and => inside [A-Z]<> sequences.
+ Branch: perl
+ ! pod/pod2man.PL
+____________________________________________________________________________
+[ 3037] By: gsar on 1999/02/28 21:12:22
+ Log: fix longstanding bug: searches for lexicals originating within eval''
+ weren't stopping at the subroutine boundary correctly
+ Branch: perl
+ ! op.c proto.h t/op/eval.t
+____________________________________________________________________________
+[ 3036] By: gsar on 1999/02/28 20:02:29
+ Log: revert parts of change#2990 to preserve predictable usage of Win32::Foo()
+ as stacked list values
+ From: jan.dubois@ibm.net (Jan Dubois)
+ Date: Sat, 27 Feb 1999 18:24:17 +0100
+ Message-ID: <36e22849.36531259@smtp1.ibm.net>
+ Subject: Re: resend [PATCH 5.005_55] Various win32/win32.c cleanup
+ Branch: perl
+ ! win32/win32.c
+____________________________________________________________________________
+[ 3035] By: gsar on 1999/02/28 19:48:54
+ Log: remove superfluous stack_sp decl
+ Branch: perl
+ ! jpl/JNI/JNI.xs
+____________________________________________________________________________
+[ 3034] By: gsar on 1999/02/28 19:34:58
+ Log: s/print STDERR/warn/ suggested by abigail@fnx.com; add $VERSION
+ Branch: perl
+ ! lib/Getopt/Std.pm
+____________________________________________________________________________
+[ 3033] By: gsar on 1999/02/28 19:23:41
+ Log: add File::Compare::compare_text()
+ From: jan.dubois@ibm.net (Jan Dubois)
+ Date: Fri, 26 Feb 1999 00:20:41 +0100
+ Message-ID: <36dcd8ab.20195659@smtp1.ibm.net>
+ Subject: Re: PodParser 1.07 (was: RE: C<stuff()> vs stuff())
+ Branch: perl
+ ! lib/File/Compare.pm pod/perltodo.pod
+____________________________________________________________________________
+[ 3032] By: gsar on 1999/02/28 19:01:33
+ Log: add README.hpux
+ Branch: perl
+ + README.hpux
+ ! MAINTAIN MANIFEST
+____________________________________________________________________________
+[ 3031] By: gsar on 1999/02/28 18:49:08
+ Log: avoid escaping &amp; et al multiple times (variant of fix suggested by
+ James Cromie <jcromie@fossil.uswc.uswest.com>
+ Branch: perl
+ ! lib/Pod/Html.pm
+____________________________________________________________________________
+[ 3030] By: gsar on 1999/02/28 18:35:09
+ Log: From: jan.dubois@ibm.net (Jan Dubois)
+ Date: Wed, 24 Feb 1999 22:34:56 +0100
+ Message-ID: <36d86f1e.11495549@smtp1.ibm.net>
+ Subject: [PATCH 5.005_55] Test::Harness setting $ENV{HARNESS_ACTIVE}
+ Branch: perl
+ ! lib/Test/Harness.pm
+____________________________________________________________________________
+[ 3029] By: gsar on 1999/02/28 18:28:18
+ Log: add note about env pollution
+ Branch: perl
+ ! INSTALL pod/perltodo.pod
+____________________________________________________________________________
+[ 3028] By: jhi on 1999/02/26 14:40:00
+ Log: HP-UX 11 threads.
+
+ From: Jeff Okamoto <okamoto@xfiles.intercon.hp.com>
+ To: perl5-porters@perl.org
+ Cc: jhi@cc.hut.fi
+ Subject: Maint 5 and _54 with threading on HP-UX 11.00
+ Date: Wed, 3 Feb 1999 12:57:18 -0800 (PST)
+ Message-Id: <199902032057.MAA10218@xfiles.intercon.hp.com>
+
+ NOTE from jhi: the hpux hints could still be more robust by
+ disabling gdbm when necessary.
+
+ Currently if there's a libgdbm.sl (gdbm 1.7.3) which is pre-11,
+ linking -lgdbm -lpthread creates an executable that instantly
+ core dumps on a pthreads internal panic:
+
+ ./gdpt
+
+ Pthread internal error: message: __libc_reinit() failed, file: ../pthreads/pthread.c, line: 1096
+ Return Pointer is 0xc082bf33
+ 17639 quit (core dumped) ./gdpt
+
+ You don't have to *use* either gdbm or pthreads in the executable,
+ just linking them together is enough. Workaround is to recompile
+ the GDBM under HP-UX 11, that makes the problem go away.
+ Branch: maint-5.005/perl
+ ! hints/hpux.sh thread.h
+____________________________________________________________________________
+[ 3025] By: jhi on 1999/02/25 20:41:07
+ Log: Temporary workaround for the config_h.SH versus
+ crosscompile and multiarch plus introduce 'rt'
+ to $libswanted: in UNIX98 sched_yield() lives there.
+ Branch: cfgperl
+ ! Configure config_h.SH
+____________________________________________________________________________
+[ 3024] By: jhi on 1999/02/24 12:54:59
+ Log: Integrate from mainperl.
+ Branch: cfgperl
+ +> t/lib/fatal.t
+ !> (integrate 44 files)
+____________________________________________________________________________
+[ 3023] By: gsar on 1999/02/24 07:02:12
+ Log: integrate cfgperl contents
+ Branch: perl
+ !> (integrate 30 files)
+____________________________________________________________________________
+[ 3022] By: gsar on 1999/02/24 05:59:47
+ Log: From: Daniel Grisinger <dgris@moiraine.dimensional.com>
+ Date: 23 Feb 1999 17:53:22 -0700
+ Message-ID: <m3g17w62rh.fsf@moiraine.dimensional.com>
+ Subject: [PATCH: _55] perldoc -q broken
+ Branch: perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 3021] By: gsar on 1999/02/24 05:51:53
+ Log: ansify perlio.c, fix PerlIO-ish typos
+ Branch: perl
+ ! ext/DynaLoader/dl_beos.xs ext/DynaLoader/dl_cygwin32.xs
+ ! iperlsys.h perlio.c
+____________________________________________________________________________
+[ 3020] By: gsar on 1999/02/24 05:28:06
+ Log: adjust a Perl_malloc() flag for NeXT
+ From: Hans Mulder <hansm@icgned.icgroup.nl>
+ Date: Tue, 23 Feb 99 00:26:25 +0100
+ Message-Id: <9902222329.AA17516@icgned.icgroup.nl>
+ Subject: [PATCH for _55] MUTEX_INIT_CALLS_MALLOC no longer necessary
+ Branch: perl
+ ! perl.h
+____________________________________________________________________________
+[ 3019] By: gsar on 1999/02/24 05:19:42
+ Log: perltodo adjustments from Joshua Pritikin <joshua.pritikin@db.com>
+ Branch: perl
+ ! pod/perltodo.pod
+____________________________________________________________________________
+[ 3018] By: gsar on 1999/02/24 04:15:18
+ Log: From: Joshua Pritikin <joshua.pritikin@db.com>
+ Date: Mon, 22 Feb 1999 11:29:09 -0500 (EST)
+ Message-ID: <Pine.GSO.4.02.9902221128200.500-100000@eq1062.wks.na.deuba.com>
+ Subject: improved error message [PATCH _55] [RESEND]
+ Branch: perl
+ ! sv.c
+____________________________________________________________________________
+[ 3017] By: gsar on 1999/02/24 03:50:34
+ Log: From: Tom Christiansen <tchrist@jhereg.perl.com>
+ Date: Sun, 21 Feb 1999 20:02:18 -0700
+ Message-Id: <199902220302.UAA09981@jhereg.perl.com>
+ Subject: perlfunc updates (against 55)
+ Branch: perl
+ ! pod/perlfunc.pod
+____________________________________________________________________________
+[ 3016] By: gsar on 1999/02/24 03:17:05
+ Log: testsuite adjustments
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Date: Sat, 20 Feb 1999 15:24:57 +0000
+ Message-Id: <E10EEH3-0003Wf-00@taurus.cus.cam.ac.uk>
+ Subject: Not quite OK: perl5.005_55 on SunOS 4.1.3 / gcc
+ Branch: perl
+ ! t/lib/io_sock.t t/op/lex_assign.t
+____________________________________________________________________________
+[ 3015] By: gsar on 1999/02/24 02:54:47
+ Log: avoid modifying readonly values from qw()
+ Branch: perl
+ ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[ 3014] By: gsar on 1999/02/24 02:49:04
+ Log: more "correct" utbuf for utime()
+ Branch: perl
+ ! doio.c
+____________________________________________________________________________
+[ 3013] By: jhi on 1999/02/22 19:27:44
+ Log: Fix MacPerl version, change PowerUX to PowerMAX.
+
+ From: Chris Nandor <pudge@pobox.com>
+ To: jhi@iki.fi
+ Cc: perl5-porters@perl.org
+ Subject: Re: perl current availability as documented by perl.pod
+ Date: Sun, 21 Feb 1999 11:06:03 -0500
+ Message-Id: <v04020a07b2f5df60c9e3@[192.168.0.77]>
+
+ From: Tom Horsley <Tom.Horsley@mail.ccur.com>
+ To: jhi@iki.fi
+ Cc: perl5-porters@perl.org
+ Subject: Re: perl current availability as documented by perl.pod
+ Date: Mon, 22 Feb 1999 13:08:30 GMT
+ Message-Id: <199902221308.NAA19971@cleo.ccur.com>
+ Branch: cfgperl
+ ! pod/perl.pod
+ Branch: maint-5.005/perl
+ ! pod/perl.pod
+____________________________________________________________________________
+[ 3012] By: jhi on 1999/02/22 10:26:11
+ Log: Snapshot the cross-compilation/multiarchitecture stuff
+ (currently broken in next)
+ Branch: cfgperl
+ ! Configure config_h.SH pp.c
+____________________________________________________________________________
+[ 3011] By: jhi on 1999/02/22 10:24:51
+ Log: From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+ To: gsar@activestate.com (Gurusamy Sarathy)
+ Cc: perl5-porters@perl.org (Perl5 Porters)
+ Subject: [PATCH 5.005_55] DB_File 1.64 patch
+ Date: Mon, 22 Feb 1999 10:07:00 +0000 (GMT)
+ Message-Id: <9902221007.AA17751@claudius.bfsec.bt.co.uk>
+ Branch: cfgperl
+ ! ext/DB_File/Changes ext/DB_File/DB_File.pm
+ ! ext/DB_File/DB_File.xs ext/DB_File/typemap t/lib/db-recno.t
+____________________________________________________________________________
+[ 3009] By: jhi on 1999/02/22 09:14:26
+ Log: Scratch #3008 and introduce $crosscompile and $multiarch
+ also in non-Configure lands.
+ Branch: cfgperl
+ ! Configure config_h.SH hints/next_3.sh hints/next_3_0.sh
+ ! hints/next_4.sh vms/subconfigure.com win32/config.bc
+ ! win32/config.gc win32/config.vc win32/config_H.bc
+ ! win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[ 3008] By: jhi on 1999/02/22 08:58:04
+ Log: Add -DMULTIARCH (see change #3006).
+ Branch: cfgperl
+ ! hints/next_3.sh hints/next_3_0.sh hints/next_4.sh
+____________________________________________________________________________
+[ 3007] By: jhi on 1999/02/22 08:54:06
+ Log: Undo the references to local{lib,arch} introduced by #3006.
+ Branch: cfgperl
+ ! Configure config_h.SH
+____________________________________________________________________________
+[ 3006] By: jhi on 1999/02/22 08:43:50
+ Log: From: hansm@icgned.icgroup.nl
+ To: perlbug@perl.com
+ Subject: Not OK: perl 5.00555 on OPENSTEP-Mach-thread 4_2 (UNINSTALLED)
+ Date: Sun, 21 Feb 1999 22:58:55 +0100
+ Reply-To: hansmu@xs4all.nl
+ Message-Id: <9902212201.AA13386@icgned.icgroup.nl>
+
+ plus other Configure changes: prepare for cross-compilation/
+ multiarchitecture builds.
+ Branch: cfgperl
+ ! Configure config_h.SH
+____________________________________________________________________________
+[ 3005] By: jhi on 1999/02/22 08:35:30
+ Log: Configure/Perl knew how to look for use Mach cthreads
+ but Configure didn't let them to be used ($osname 'next').
+ Branch: cfgperl
+ ! Configure config_h.SH
+ Branch: maint-5.005/perl
+ ! Configure
+____________________________________________________________________________
+[ 3004] By: jhi on 1999/02/21 15:46:02
+ Log: Update Acorn AVAILABILITY.
+ Branch: cfgperl
+ ! pod/perl.pod
+ Branch: maint-5.005/perl
+ ! pod/perl.pod
+____________________________________________________________________________
+[ 3003] By: jhi on 1999/02/21 14:50:42
+ Log: From: rjk@linguist.dartmouth.edu (Ronald J. Kimball)
+ To: perl5-porters@perl.org (Perl 5 Porters)
+ Subject: PATCH: perlref.pod - symbolic ref example
+ Date: Sat, 20 Feb 1999 17:32:11 -0500 (EST)
+ Message-Id: <199902202232.RAA62306@linguist.dartmouth.edu>
+ Branch: cfgperl
+ ! pod/perlref.pod
+ Branch: maint-5.005/perl
+ ! pod/perlref.pod
+____________________________________________________________________________
+[ 3002] By: jhi on 1999/02/21 14:35:22
+ Log: Sync cfgperl with maint-5.005 change #3000.
+ Branch: cfgperl
+ ! pod/perlfunc.pod t/op/pack.t
+____________________________________________________________________________
+[ 2999] By: gsar on 1999/02/20 22:48:30
+ Log: From: John Bley <jbb6@acpub.duke.edu>
+ Date: Sat, 20 Feb 1999 16:02:34 EST
+ Message-Id: <Pine.SOL.3.91.990220155832.9913A-100000@soc11.acpub.duke.edu>
+ Subject: [PATCH]5.005_55 (CORE) Sparse intializer in regcomp.c
+ Branch: perl
+ ! regcomp.c
+____________________________________________________________________________
+[ 2998] By: jhi on 1999/02/20 14:13:06
+ Log: Enhanced the endianness description.
+ Branch: cfgperl
+ ! pod/perlfunc.pod
+____________________________________________________________________________
+[ 2996] By: jhi on 1999/02/20 13:55:41
+ Log: Glossary now mostly fixed.
+ Branch: cfgperl
+ ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+ ! config_h.SH
+____________________________________________________________________________
+[ 2994] By: jhi on 1999/02/20 11:58:33
+ Log: Perldeltify GNU/Hurd.
+ Branch: cfgperl
+ ! pod/perldelta.pod
+____________________________________________________________________________
+[ 2993] By: gsar on 1999/02/20 00:59:10
+ Log: fix typo in Perl_sbrk()
+ From: hansm@icgned.icgroup.nl
+ Date: Fri, 19 Feb 1999 23:19:31 +0100
+ Message-Id: <9902192221.AA07213@icgned.icgroup.nl>
+ Subject: Not OK: perl 5.00555 on OPENSTEP-Mach 4_2 (UNINSTALLED)
+ Branch: perl
+ ! malloc.c
+____________________________________________________________________________
+[ 2992] By: gsar on 1999/02/20 00:51:08
+ Log: integrate change#2980 from maint-5.005
+ Branch: perl
+ !> utils/h2xs.PL
+____________________________________________________________________________
+[ 2991] By: gsar on 1999/02/20 00:34:01
+ Log: From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Date: Thu, 18 Feb 1999 18:51:38 +0000
+ Message-Id: <199902181851.SAA14018@crypt.compulink.co.uk>
+ Subject: [PATCH 5.005_55] test failures with MIME-tools-4.122 and perl 5.005_55
+ Branch: perl
+ ! pp_hot.c t/op/pat.t
+____________________________________________________________________________
+[ 2990] By: gsar on 1999/02/20 00:30:48
+ Log: From: jan.dubois@ibm.net (Jan Dubois)
+ Date: Thu, 18 Feb 1999 19:14:07 +0100
+ Message-ID: <36d15809.40853323@smtp1.ibm.net>
+ Subject: resend [PATCH 5.005_55] Various win32/win32.c cleanup
+ Branch: perl
+ ! win32/win32.c
+____________________________________________________________________________
+[ 2989] By: gsar on 1999/02/20 00:27:01
+ Log: do poll() emulation unless HAS_POLL && I_POLL
+ Branch: perl
+ ! ext/IO/poll.h
+____________________________________________________________________________
+[ 2988] By: gsar on 1999/02/19 23:52:12
+ Log: tweak RE for NaNQ? recognition
+ Branch: perl
+ ! t/lib/bigfloatpm.t
+____________________________________________________________________________
+[ 2987] By: gsar on 1999/02/19 23:29:59
+ Log: mention C<use utf8> and C<use warning> in perldelta
+ Branch: perl
+ ! pod/perldelta.pod
+____________________________________________________________________________
+[ 2985] By: jhi on 1999/02/19 20:43:19
+ Log: pack/unpack better in (network-)short-non-16-bits and
+ (network-)long-non-32-bits systems such as Cray C90.
+ Branch: cfgperl
+ ! perl.h pp.c t/op/pack.t
+____________________________________________________________________________
+[ 2984] By: jhi on 1999/02/19 20:38:54
+ Log: Regen Configure.
+ Branch: cfgperl
+ ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+ ! perl.c
+____________________________________________________________________________
+[ 2982] By: jhi on 1999/02/19 19:51:49
+ Log: Configure update: fstatvfs/fstafs/getmntent/hasmntopt were
+ not probed for and
+
+ From: "Kurt D. Starsinic" <kstar@chapin.edu>
+ To: Chaim Frenkel <chaimf@pobox.com>,
+ Russ Allbery <rra@stanford.edu>,
+ Jarkko Hietaniemi <jhi@iki.fi>,
+ Gurusamy Sarathy <gsar@activestate.com>,
+ Graham Barr <gbarr@pobox.com>
+ Cc: bdensch@ameritech.net, perlbug@perl.com
+ Subject: [PATCH] Re: Solaris 7 for Intel
+ Message-ID: <19990219124404.A30182@O2.chapin.edu>
+
+ Glossary is still missing some terms because
+ mkglossary is misbehaving (change #2981 updated
+ Glossary manually)
+ Branch: cfgperl
+ ! Configure Makefile.SH Porting/Glossary Porting/config.sh
+ ! Porting/config_H
+____________________________________________________________________________
+[ 2980] By: gbarr on 1999/02/19 16:06:53
+ Log: Make result of h2xs work when user adds C<use strict>
+ Branch: maint-5.005/perl
+ ! utils/h2xs.PL
+____________________________________________________________________________
+[ 2979] By: gsar on 1999/02/19 05:24:29
+ Log: doc for change#2978
+ Branch: perl
+ ! pod/perlsub.pod
+____________________________________________________________________________
+[ 2978] By: gsar on 1999/02/19 05:08:29
+ Log: bring '*' prototype closer to how it behaves internally
+ Branch: perl
+ + t/lib/fatal.t
+ ! MANIFEST lib/Fatal.pm op.c t/comp/proto.t
+____________________________________________________________________________
+[ 2977] By: gsar on 1999/02/19 02:50:31
+ Log: stem leakage of perly.h #defines #ifndef PERL_CORE
+ Branch: perl
+ ! perly.h
+____________________________________________________________________________
+[ 2975] By: gsar on 1999/02/18 21:41:57
+ Log: distinguish eval'' from BEGIN|INIT|END CVs (fixes buggy propagation
+ of lexical searches in BEGIN|INIT|END)
+ Branch: perl
+ ! cop.h cv.h op.c perly.c perly.y pp_ctl.c t/op/misc.t
+ ! vms/perly_c.vms
+____________________________________________________________________________
+[ 2974] By: gsar on 1999/02/18 21:03:06
+ Log: missing PERL_POLLUTE_MALLOC
+ Branch: perl
+ ! ext/SDBM_File/sdbm/sdbm.h
+____________________________________________________________________________
+[ 2973] By: gsar on 1999/02/18 17:10:49
+ Log: From: Andy Dougherty <doughera@lafayette.edu>
+ Date: Wed, 17 Feb 1999 17:22:50 EST
+ Message-Id: <Pine.GSU.4.05.9902171720490.17243-100000@newton.phys>
+ Subject: [PATCH 5.005_xx] dotsh.pl triggers new warnings
+ Branch: perl
+ ! lib/dotsh.pl
+____________________________________________________________________________
+[ 2972] By: gsar on 1999/02/18 17:04:12
+ Log: s/#defined/#define/
+ Branch: perl
+ ! ext/Data/Dumper/Dumper.xs
+____________________________________________________________________________
+[ 2970] By: gsar on 1999/02/18 03:26:43
+ Log: ensure is data malloc()ed by GDBM is free()d (not Perl_mfree()d)
+ Branch: perl
+ ! ext/GDBM_File/GDBM_File.pm ext/GDBM_File/GDBM_File.xs
+ ! ext/GDBM_File/typemap
+____________________________________________________________________________
+[ 2969] By: gsar on 1999/02/17 23:30:47
+ Log: correct slurp mode doc
+ Branch: perl
+ ! pod/perlfunc.pod pod/perlop.pod
+____________________________________________________________________________
+[ 2968] By: jhi on 1999/02/17 23:15:49
+ Log: Ultrix hints update.
+
+ From: Spider Boardman <spider@zk3.dec.com>
+ To: perlbug@perl.com
+ Subject: Not OK: perl 5.00555 on RISC-ultrix 4.4 (UNINSTALLED)
+ Date: Tue, 16 Feb 1999 23:04:28 -0500
+ Message-Id: <9902170404.AA11036@abyss.zk3.dec.com>
+ Branch: cfgperl
+ ! hints/ultrix_4.sh
+____________________________________________________________________________
+[ 2966] By: jhi on 1999/02/17 23:09:21
+ Log: Change #2965 wiped out some Sarathy's _55 changes.
+ Now unwiped.
+ Branch: cfgperl
+ ! Configure pp.c t/op/pack.t
+____________________________________________________________________________
+[ 2965] By: jhi on 1999/02/17 23:00:04
+ Log: Configure tweaks.
+
+ Fix the Unixware/SCO uname scan:
+
+ From: Tom Hughes <thh@cyberscience.com>
+ To: perlbug@perl.com
+ Subject: Not OK: perl 5.00555 on i386-svr4 [actually Unixware 2.1] (UNINSTALLED)
+ Date: 17 Feb 1999 15:34:15 +0000
+ Message-ID: <yekg185nix4.fsf@elva.cyberscience.com>
+
+ AIX syscalls.exp scan: the syscall might be marked 32, 3264, or 64
+
+ From: Joe Buehler <jhpb@hekimian.com>
+ To: perl5-porters@perl.org
+ Subject: setsid not detected by perl 5.005_02 configure under AIX 4.3
+ Date: 12 Feb 1999 11:25:21 -0500
+ Message-ID: <yd3lni3613i.fsf@ganymede.hekimian.com>
+
+ Make the pthreads joinable constant scan to output to fd 4, not 2.
+ Branch: cfgperl
+ ! Configure
+____________________________________________________________________________
+[ 2964] By: gsar on 1999/02/17 21:30:07
+ Log: From: Tom Christiansen <tchrist@jhereg.perl.com>
+ Date: Wed, 17 Feb 1999 06:53:13 -0700
+ Message-Id: <199902171353.GAA15682@jhereg.perl.com>
+ Subject: PATCH: lib/Pod/Functions.pm for perl5.005_55
+ Branch: perl
+ ! lib/Pod/Functions.pm
+____________________________________________________________________________
+[ 2963] By: gsar on 1999/02/17 21:18:21
+ Log: fix comppad handling for failures in eval 'qr/(?p{...})/'
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Date: Wed, 17 Feb 1999 10:06:01 +0000
+ Message-Id: <199902171006.KAA10204@crypt.compulink.co.uk>
+ Subject: Re: [5.005_53] panic: pad_free curpad
+ Branch: perl
+ ! regcomp.c regexec.c t/op/misc.t
+____________________________________________________________________________
+[ 2962] By: gsar on 1999/02/16 21:26:28
+ Log: NaNQ? tweak
+ Branch: perl
+ ! t/lib/bigfloatpm.t
+____________________________________________________________________________
+[ 2961] By: jhi on 1999/02/16 19:26:38
+ Log: Integrate from mainperl.
+ Branch: cfgperl
+ !> (integrate 37 files)
+____________________________________________________________________________
+[ 2960] By: gsar on 1999/02/16 18:04:29
+ Log: undo change#2465 (qw[] is a real list now)
+ Branch: perl
+ ! pod/perlop.pod
+____________________________________________________________________________
+[ 2959] By: gsar on 1999/02/16 07:09:33
+ Log: this was 5.005_55
+ Branch: perl
+ ! Changes
+
+----------------
+Version 5.005_55
----------------
____________________________________________________________________________
diff --git a/INSTALL b/INSTALL
index 64fa70b7ac..fc2890d57d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -833,6 +833,13 @@ shouldn't do that, but some might.)
=over 4
+=item Environment variable clashes
+
+Configure uses a CONFIG variable that is reported to cause trouble on
+ReliantUnix 5.44. If your system sets this variable, you can try
+unsetting it before you run Configure. Configure should eventually
+be fixed to avoid polluting the namespace of the environment.
+
=item Running Configure Interactively
If Configure runs into trouble, remember that you can always run
diff --git a/MAINTAIN b/MAINTAIN
index deb4b39a1c..6d9733222e 100644
--- a/MAINTAIN
+++ b/MAINTAIN
@@ -53,6 +53,7 @@ README.amiga amiga
README.beos beos
README.cygwin32 cygwin32
README.dos dos
+README.hpux hpux
README.lexwarn lexwarn
README.mpeix mpeix
README.os2 os2
diff --git a/MANIFEST b/MANIFEST
index c38dae9bc6..5f4d59792d 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -36,6 +36,7 @@ README.amiga Notes about AmigaOS port
README.beos Notes about BeOS port
README.cygwin32 Notes about Cygwin32 port
README.dos Notes about dos/djgpp port
+README.hpux Notes about HP/UX port
README.lexwarn Notes about lexical warnings
README.mint Notes about Atari MiNT port
README.mpeix Notes about MPE/iX port
@@ -554,6 +555,7 @@ lib/File/DosGlob.pm Win32 DOS-globbing module
lib/File/Find.pm Routines to do a find
lib/File/Path.pm Do things like `mkdir -p' and `rm -r'
lib/File/Spec.pm portable operations on file names
+lib/File/Spec/Functions.pm Function interface to File::Spec object methods
lib/File/Spec/Mac.pm portable operations on Mac file names
lib/File/Spec/OS2.pm portable operations on OS2 file names
lib/File/Spec/Unix.pm portable operations on Unix file names
diff --git a/README.hpux b/README.hpux
new file mode 100644
index 0000000000..1fda51a76d
--- /dev/null
+++ b/README.hpux
@@ -0,0 +1,193 @@
+If you read this file _as_is_, just ignore the funny characters you
+see. It is written in the POD format (see pod/perlpod.pod) which is
+specially designed to be readable as is.
+
+=head1 NAME
+
+perlhpux - Perl version 5 on Hewlett-Packard Unix (HP-UX) systems
+
+=head1 DESCRIPTION
+
+This document describes various features of HP's Unix operating system (HP-UX)
+that will affect how Perl version 5 (hereafter just Perl) is compiled and/or
+runs.
+
+=head2 Compiling Perl 5 on HP-UX
+
+When compiling Perl, the use of an ANSI C compiler is highly recommended.
+The C compiler that ships with all HP-UX systems is a K&R compiler that
+should only be used to build new kernels.
+
+Perl can be compiled with either HP's ANSI C compiler or with gcc. The
+former is recommended, as not only can it compile Perl with no difficulty,
+but also can take advantage of features listed later that require the use
+of HP compiler-specific command-line flags.
+
+If you decide to use gcc, make sure your installation is recent and complete,
+and be sure to read the Perl README file for more gcc-specific details.
+
+=head2 PA-RISC
+
+HP's current Unix systems run on its own Precision Architecture (PA-RISC) chip.
+HP-UX used to run on the Motorola MC68000 family of chips, but any machine with
+this chip in it is quite obsolete and this document will not attempt to address
+issues for compiling Perl on the Motorola chipset.
+
+The most recent version of PA-RISC at the time of this document's last update
+is 2.0.
+
+=head2 PA-RISC 1.0
+
+The original version of PA-RISC, HP no longer sells any system with this chip.
+
+The following systems contain PA-RISC 1.0 chips:
+
+ 600, 635, 645, 800, 808, 815, 822, 825, 832, 834, 835, 840,
+ 842, 845, 850, 852, 855, 860, 865, 870, 890
+
+=head2 PA-RISC 1.1
+
+An upgrade to the PA-RISC design, it shipped for many years in many different
+system.
+
+The following systems contain with PA-RISC 1.1 chips:
+
+ 705, 710, 712, 715, 720, 722, 725, 728, 730, 735, 743, 745, 747, 750,
+ 755, 770, 807S, 817S, 827S, 837S, 847S, 857S, 867S, 877S, 887S, 897S,
+ D200, D210, D220, D230, D250, D260, D310, D320, D330, D350, D360, D400,
+ E25, E35, E45, E55, F10, F20, F30, G30, G40, G50, G60, G70, H30, H40,
+ H50, H60, H70, I30, I40, I50, I60, I70, K100, K200, K210, K220, K400,
+ K410, K420, T500, T520
+
+
+=head2 PA-RISC 2.0
+
+The most recent upgrade to the PA-RISC design, it added support for 64-bit
+integer data.
+
+The following systems contain PA-RISC 2.0 chips:
+
+ D270, D280, D370, D380, K250, K260, K370, K380, K450, K460, K570, K580,
+ T600, V2200
+
+=head2 Portability Between PA-RISC Versions
+
+An executable compiled on a PA-RISC 2.0 platform will not execute on a
+PA-RISC 1.1 platform, even if they are running the same version of HP-UX.
+If you are building Perl on a PA-RISC 2.0 platform and want that Perl to
+to also run on a PA-RISC 1.1, the compiler flag +DAportable should be used.
+
+It is no longer possible to compile PA-RISC 1.0 executables on either the
+PA-RISC 1.1 and 2.0 platforms.
+
+=head2 Building Dynamic Extensions on HP-UX
+
+HP-UX supports dynamically loadable libraries (shared libraries).
+Shared libraries end with the suffix .sl.
+
+Shared libraries created on a platform using a particular PA-RISC version
+are not usable on platforms using an earlier PA-RISC version by default.
+However, this backwards compatibility may be enabled using the same
++DAportable compiler flag (with the same PA-RISC 1.0 caveat mentioned above).
+
+To create a shared library, the following steps must be performed:
+
+ 1. Compile source modules with +z or +Z flag to create a .o module
+ which contains Position-Independent Code (PIC). The linker will
+ tell you in the next step if +Z was needed.
+
+ 2. Link the shared library using the -b flag. If the code calls
+ any functions in other system libraries (e.g., libm), it must
+ be included on this line.
+
+(Note that these steps are usually handled automatically by the extension's
+Makefile).
+
+If these dependent libraries are not listed at shared library creation
+time, you will get fatal "Unresolved symbol" errors at run time when the
+library is loaded.
+
+You may create a shared library that referers to another library, which
+may be either an archive library or a shared library. If it is a
+shared library, this is called a "dependent library".
+The dependent library's name is recorded in the main shared library,
+but it is not linked into the shared library.
+Instead, it is loaded when the main shared library is loaded.
+
+If the referred library is an archive library, then it is treated as a
+simple collection of .o modules (all of which must contain PIC). These
+modules are then linked into the shared library.
+
+Note that it is okay to create a library which contains a dependent library
+that is already linked into perl.
+
+It is no longer possible to link PA-RISC 1.0 shared libraries.
+
+=head2 The HP ANSI C Compiler
+
+When using this compiler to build Perl, you should make sure that
+the flag -Aa is added to the cpprun and cppstdin variables in the
+config.sh file.
+
+=head2 Using Large Files with Perl
+
+Beginning with HP-UX version 10.10, files larger than 2GB (2^31) may be
+created and manipulated.
+Three separate methods of doing this are available.
+The best method is to compile Perl using the -D_FILE_OFFSET_BITS=64
+compiler flag.
+This causes Perl to be compiled using structures and functions in which
+these are 64 bits wide, rather than 32 bits wide.
+
+There are only two drawbacks to this approach:
+the first is that the seek and tell functions (both the builtin version
+and the POSIX module's version) will not correctly
+function for these large files
+(POSIX declared the offset arguments in seek and tell as being of type long).
+The second is that any extension which calls any file-manipulating C function
+will need to be recompiled.
+
+=head2 Threaded Perl
+
+It is impossible to compile a version of threaded Perl on any version of
+HP-UX before 10.30, and it is strongly suggested that you be running on
+HP-UX 11.00 at least.
+
+To compile Perl with thread, add -Dusethreads to the arguments of Configure.
+Ensure that the -D_POSIX_C_SOURCE=199506L compiler flag is automatically
+added to the list of flags. Also make sure that -lpthread is listed before
+-lc in the list of libraries to link Perl with.
+
+As of the date of this document, Perl threads are not fully supported on HP-UX.
+
+=head2 64-bit Perl
+
+Beginning with HP-UX 11.00, programs compiled under HP-UX can take advantage
+of the LP64 programming environment (LP64 means Longs and Pointers are 64 bits
+wide).
+
+Work is being performed on Perl to make it 64-bit compliant on all versions
+of Unix. Once this is complete, scalar variables will be able to hold
+numbers larger than 2^32 with complete precision.
+
+As of the date of this document, Perl is not 64-bit compliant on HP-UX.
+
+Should a user wish to experiment with compiling Perl in the LP64 environment,
+the following steps must be taken: libraries must be searched only within
+/lib/pa20_64, the compiler flag +DD64 must be used, and the C library is
+now located at /lib/pa20_64/libc.sl.
+
+On the brighter side, the large file problem goes away, as longs are now
+64 bits wide.
+
+=head1 AUTHOR
+
+Jeff Okamoto <okamoto@corp.hp.com>
+
+With much assistance regarding shared libraries from Marc Sabatella.
+
+=head1 DATE
+
+Version 0.1: 1999/2/22
+
+=cut
diff --git a/jpl/JNI/JNI.xs b/jpl/JNI/JNI.xs
index 10eb2cf4ab..080e10f60c 100644
--- a/jpl/JNI/JNI.xs
+++ b/jpl/JNI/JNI.xs
@@ -12,7 +12,6 @@
#include <jni.h>
#include <dlfcn.h>
-extern SV** stack_sp;
extern JNIEnv* jplcurenv;
extern int jpldebug;
diff --git a/lib/File/Compare.pm b/lib/File/Compare.pm
index 2f9c45c4c6..0ee84bdba5 100644
--- a/lib/File/Compare.pm
+++ b/lib/File/Compare.pm
@@ -6,10 +6,10 @@ use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $Too_Big *FROM *TO);
require Exporter;
use Carp;
-$VERSION = '1.1001';
+$VERSION = '1.1002';
@ISA = qw(Exporter);
@EXPORT = qw(compare);
-@EXPORT_OK = qw(cmp);
+@EXPORT_OK = qw(cmp compare_text);
$Too_Big = 1024 * 1024 * 2;
@@ -22,13 +22,11 @@ sub compare {
croak("Usage: compare( file1, file2 [, buffersize]) ")
unless(@_ == 2 || @_ == 3);
- my $from = shift;
- my $to = shift;
- my $closefrom=0;
- my $closeto=0;
- my ($size, $fromsize, $status, $fr, $tr, $fbuf, $tbuf);
- local(*FROM, *TO);
- local($\) = '';
+ my ($from,$to,$size) = @_;
+ my $text_mode = defined($size) && $size < 0;
+
+ my ($fromsize,$closefrom,$closeto);
+ local (*FROM, *TO);
croak("from undefined") unless (defined $from);
croak("to undefined") unless (defined $to);
@@ -40,9 +38,11 @@ sub compare {
*FROM = $from;
} else {
open(FROM,"<$from") or goto fail_open1;
- binmode FROM;
+ unless ($text_mode) {
+ binmode FROM;
+ $fromsize = -s FROM;
+ }
$closefrom = 1;
- $fromsize = -s FROM;
}
if (ref($to) &&
@@ -52,32 +52,41 @@ sub compare {
*TO = $to;
} else {
open(TO,"<$to") or goto fail_open2;
- binmode TO;
+ binmode TO unless $text_mode;
$closeto = 1;
}
- if ($closefrom && $closeto) {
+ if (!$text_mode && $closefrom && $closeto) {
# If both are opened files we know they differ if their size differ
goto fail_inner if $fromsize != -s TO;
}
- if (@_) {
- $size = shift(@_) + 0;
- croak("Bad buffer size for compare: $size\n") unless ($size > 0);
- } else {
- $size = $fromsize;
- $size = 1024 if ($size < 512);
- $size = $Too_Big if ($size > $Too_Big);
+ if ($text_mode) {
+ local $/ = "\n";
+ my ($fline,$tline);
+ while (defined($fline = <FROM>)) {
+ unless (defined($tline = <TO>) && $fline eq $tline) {
+ goto fail_inner;
+ }
+ }
+ goto fail_inner if defined($tline = <TO>);
}
+ else {
+ unless (defined($size) && $size > 0) {
+ $size = $fromsize;
+ $size = 1024 if $size < 512;
+ $size = $Too_Big if $size > $Too_Big;
+ }
- $fbuf = '';
- $tbuf = '';
- while(defined($fr = read(FROM,$fbuf,$size)) && $fr > 0) {
- unless (defined($tr = read(TO,$tbuf,$fr)) and $tbuf eq $fbuf) {
- goto fail_inner;
+ my ($fr,$tr,$fbuf,$tbuf);
+ $fbuf = $tbuf = '';
+ while(defined($fr = read(FROM,$fbuf,$size)) && $fr > 0) {
+ unless (defined($tr = read(TO,$tbuf,$fr)) && $tbuf eq $fbuf) {
+ goto fail_inner;
+ }
}
+ goto fail_inner if defined($tr = read(TO,$tbuf,$size)) && $tr > 0;
}
- goto fail_inner if (defined($tr = read(TO,$tbuf,$size)) && $tr > 0);
close(TO) || goto fail_open2 if $closeto;
close(FROM) || goto fail_open1 if $closefrom;
@@ -93,7 +102,7 @@ sub compare {
fail_open2:
if ($closefrom) {
- $status = $!;
+ my $status = $!;
$! = 0;
close FROM;
$! = $status unless $!;
@@ -104,6 +113,9 @@ sub compare {
*cmp = \&compare;
+# Using a negative buffer size puts compare into text_mode
+sub compare_text { compare(@_[0..1], -1) }
+
1;
__END__
@@ -129,6 +141,9 @@ from File::Compare by default.
File::Compare::cmp is a synonym for File::Compare::compare. It is
exported from File::Compare only by request.
+File::Compare::compare_text does a line by line comparison of the two
+files. It stops as soon as a difference is detected.
+
=head1 RETURN
File::Compare::compare return 0 if the files are equal, 1 if the
diff --git a/lib/File/Spec.pm b/lib/File/Spec.pm
index 9de9a8036f..b71e357cdc 100644
--- a/lib/File/Spec.pm
+++ b/lib/File/Spec.pm
@@ -3,7 +3,7 @@ package File::Spec;
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '0.6';
+$VERSION = '0.8';
my %module = (MacOS => 'Mac',
MSWin32 => 'Win32',
@@ -23,11 +23,15 @@ File::Spec - portably perform operations on file names
=head1 SYNOPSIS
-C<use File::Spec;>
+ use File::Spec;
-C<$x=File::Spec-E<gt>catfile('a','b','c');>
+ $x=File::Spec->catfile('a', 'b', 'c');
-which returns 'a/b/c' under Unix.
+which returns 'a/b/c' under Unix. Or:
+
+ use File::Spec::Functions;
+
+ $x = catfile('a', 'b', 'c');
=head1 DESCRIPTION
@@ -49,28 +53,31 @@ OS specific routines is available in a separate module, including:
File::Spec::VMS
The module appropriate for the current OS is automatically loaded by
-File::Spec. Since some modules (like VMS) make use of OS specific
-facilities, it may not be possible to load all modules under all operating
-systems.
+File::Spec. Since some modules (like VMS) make use of facilities available
+only under that OS, it may not be possible to load all modules under all
+operating systems.
Since File::Spec is object oriented, subroutines should not called directly,
as in:
File::Spec::catfile('a','b');
-
+
but rather as class methods:
File::Spec->catfile('a','b');
-For a reference of available functions, please consult L<File::Spec::Unix>,
-which contains the entire set, and inherited by the modules for other
-platforms. For further information, please see L<File::Spec::Mac>,
+For simple uses, L<File::Spec::Functions> provides convenient functional
+forms of these methods.
+
+For a list of available methods, please consult L<File::Spec::Unix>,
+which contains the entire set, and which is inherited by the modules for
+other platforms. For further information, please see L<File::Spec::Mac>,
L<File::Spec::OS2>, L<File::Spec::Win32>, or L<File::Spec::VMS>.
=head1 SEE ALSO
File::Spec::Unix, File::Spec::Mac, File::Spec::OS2, File::Spec::Win32,
-File::Spec::VMS, ExtUtils::MakeMaker
+File::Spec::VMS, File::Spec::Functions, ExtUtils::MakeMaker
=head1 AUTHORS
diff --git a/lib/File/Spec/Functions.pm b/lib/File/Spec/Functions.pm
new file mode 100644
index 0000000000..77561abf09
--- /dev/null
+++ b/lib/File/Spec/Functions.pm
@@ -0,0 +1,83 @@
+package File::Spec::Functions;
+
+use File::Spec;
+use strict;
+
+use vars qw(@ISA @EXPORT);
+
+require Exporter;
+
+@ISA = qw(Exporter);
+
+@EXPORT = qw(
+ canonpath
+ catdir
+ catfile
+ curdir
+ devnull
+ rootdir
+ tmpdir
+ updir
+ no_upwards
+ file_name_is_absolute
+ path
+ splitpath
+ splitdir
+ catpath
+ abs2rel
+ rel2abs
+);
+
+foreach my $meth (@EXPORT) {
+ no strict 'refs';
+ *{$meth} = File::Spec->can($meth);
+}
+
+
+1;
+__END__
+
+=head1 NAME
+
+File::Spec::Functions - portably perform operations on file names
+
+=head1 SYNOPSIS
+
+ use File::Spec::Functions;
+ $x = catfile('a','b');
+
+=head1 DESCRIPTION
+
+This module exports convenience functions for all of the class methods
+provided by File::Spec.
+
+For a reference of available functions, please consult L<File::Spec::Unix>,
+which contains the entire set, and which is inherited by the modules for
+other platforms. For further information, please see L<File::Spec::Mac>,
+L<File::Spec::OS2>, L<File::Spec::Win32>, or L<File::Spec::VMS>.
+
+=head2 Exports
+
+The following functions are exported by default.
+
+ canonpath
+ catdir
+ catfile
+ curdir
+ devnull
+ rootdir
+ tmpdir
+ updir
+ no_upwards
+ file_name_is_absolute
+ path
+ splitpath
+ splitdir
+ catpath
+ abs2rel
+ rel2abs
+
+=head1 SEE ALSO
+
+File::Spec, File::Spec::Unix, File::Spec::Mac, File::Spec::OS2,
+File::Spec::Win32, File::Spec::VMS, ExtUtils::MakeMaker
diff --git a/lib/Getopt/Std.pm b/lib/Getopt/Std.pm
index c2cd1234f4..390bf14e96 100644
--- a/lib/Getopt/Std.pm
+++ b/lib/Getopt/Std.pm
@@ -42,8 +42,7 @@ the argument or 1 if no argument is specified.
@ISA = qw(Exporter);
@EXPORT = qw(getopt getopts);
-
-# $RCSfile: getopt.pl,v $$Revision: 4.1 $$Date: 92/08/07 18:23:58 $
+$VERSION = $VERSION = '1.01';
# Process single-character switches with switch clustering. Pass one argument
# which is a string containing all switches that take an argument. For each
@@ -145,7 +144,7 @@ sub getopts ($;$) {
}
}
else {
- print STDERR "Unknown option: $first\n";
+ warn "Unknown option: $first\n";
++$errs;
if($rest ne '') {
$ARGV[0] = "-$rest";
diff --git a/lib/Pod/Html.pm b/lib/Pod/Html.pm
index 9245315dbd..4fe7586025 100644
--- a/lib/Pod/Html.pm
+++ b/lib/Pod/Html.pm
@@ -1299,7 +1299,7 @@ WARN
sub html_escape {
my $rest = $_[0];
- $rest =~ s/&/&amp;/g;
+ $rest =~ s/&(?!\w+;|#)/&amp;/g; # XXX not bulletproof
$rest =~ s/</&lt;/g;
$rest =~ s/>/&gt;/g;
$rest =~ s/"/&quot;/g;
diff --git a/lib/Test/Harness.pm b/lib/Test/Harness.pm
index 219ffb9a7c..738f36d4fc 100644
--- a/lib/Test/Harness.pm
+++ b/lib/Test/Harness.pm
@@ -13,6 +13,8 @@ $have_devel_corestack = 0;
$VERSION = "1.1602";
+$ENV{HARNESS_ACTIVE} = 1;
+
# Some experimental versions of OS/2 build have broken $?
my $ignore_exitcode = $ENV{HARNESS_IGNORE_EXITCODE};
@@ -458,6 +460,10 @@ If relative, directory name is with respect to the current directory at
the moment runtests() was called. Putting absolute path into
C<HARNESS_FILELEAK_IN_DIR> may give more predicatable results.
+Harness sets C<HARNESS_ACTIVE> before executing the individual tests.
+This allows the tests to determine if they are being executed through the
+harness or by any other means.
+
=head1 SEE ALSO
L<Test> for writing test scripts and also L<Benchmark> for the
diff --git a/op.c b/op.c
index 279fae814a..fae524eb71 100644
--- a/op.c
+++ b/op.c
@@ -48,7 +48,7 @@ static OP *too_few_arguments _((OP *o, char* name));
static OP *too_many_arguments _((OP *o, char* name));
static void null _((OP* o));
static PADOFFSET pad_findlex _((char* name, PADOFFSET newoff, U32 seq,
- CV* startcv, I32 cx_ix, I32 saweval));
+ CV* startcv, I32 cx_ix, I32 saweval, U32 flags));
static OP *newDEFSVOP _((void));
static OP *new_logop _((I32 type, I32 flags, OP **firstp, OP **otherp));
static void simplify_sort _((OP *o));
@@ -129,7 +129,21 @@ pad_allocmy(char *name)
name[1] == '_' && (int)strlen(name) > 2))
{
if (!isPRINT(name[1])) {
- name[3] = '\0';
+ /* 1999-02-27 mjd@plover.com */
+ char *p;
+ p = strchr(name, '\0');
+ /* The next block assumes the buffer is at least 205 chars
+ long. At present, it's always at least 256 chars. */
+ if (p-name > 200) {
+ strcpy(name+200, "...");
+ p = name+199;
+ }
+ else {
+ p[1] = '\0';
+ }
+ /* Move everything else down one character */
+ for (; p-name > 2; p--)
+ *p = *(p-1);
name[2] = toCTRL(name[1]);
name[1] = '^';
}
@@ -176,8 +190,11 @@ pad_allocmy(char *name)
return off;
}
+#define FINDLEX_NOSEARCH 1 /* don't search outer contexts */
+
STATIC PADOFFSET
-pad_findlex(char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval)
+pad_findlex(char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval,
+ U32 flags)
{
dTHR;
CV *cv;
@@ -272,6 +289,9 @@ pad_findlex(char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 s
}
}
+ if (flags & FINDLEX_NOSEARCH)
+ return 0;
+
/* Nothing in current lexical context--try eval's context, if any.
* This is necessary to let the perldb get at lexically scoped variables.
* XXX This will also probably interact badly with eval tree caching.
@@ -283,7 +303,7 @@ pad_findlex(char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 s
default:
if (i == 0 && saweval) {
seq = cxstack[saweval].blk_oldcop->cop_seq;
- return pad_findlex(name, newoff, seq, PL_main_cv, -1, saweval);
+ return pad_findlex(name, newoff, seq, PL_main_cv, -1, saweval, 0);
}
break;
case CXt_EVAL:
@@ -306,7 +326,7 @@ pad_findlex(char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 s
continue;
}
seq = cxstack[saweval].blk_oldcop->cop_seq;
- return pad_findlex(name, newoff, seq, cv, i-1, saweval);
+ return pad_findlex(name, newoff, seq, cv, i-1, saweval,FINDLEX_NOSEARCH);
}
}
@@ -366,7 +386,7 @@ pad_findmy(char *name)
}
/* See if it's in a nested scope */
- off = pad_findlex(name, 0, seq, outside, cxstack_ix, 0);
+ off = pad_findlex(name, 0, seq, outside, cxstack_ix, 0, 0);
if (off) {
/* If there is a pending local definition, this new alias must die */
if (pendoff)
@@ -3666,7 +3686,7 @@ cv_clone2(CV *proto, CV *outside)
char *name = SvPVX(namesv); /* XXX */
if (SvFLAGS(namesv) & SVf_FAKE) { /* lexical from outside? */
I32 off = pad_findlex(name, ix, SvIVX(namesv),
- CvOUTSIDE(cv), cxstack_ix, 0);
+ CvOUTSIDE(cv), cxstack_ix, 0, 0);
if (!off)
PL_curpad[ix] = SvREFCNT_inc(ppad[ix]);
else if (off != ix)
diff --git a/patchlevel.h b/patchlevel.h
index 2cfdec6b25..5ac8ca96ea 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -5,7 +5,7 @@
#define PERL_REVISION 5 /* age */
#define PERL_VERSION 5 /* epoch */
-#define PERL_SUBVERSION 55 /* generation */
+#define PERL_SUBVERSION 56 /* generation */
/*
local_patches -- list of locally applied less-than-subversion patches.
diff --git a/perl.c b/perl.c
index 836ec10458..bda1498b3e 100644
--- a/perl.c
+++ b/perl.c
@@ -563,6 +563,9 @@ perl_destruct(register PerlInterpreter *sv_interp)
MUTEX_DESTROY(&PL_eval_mutex);
MUTEX_DESTROY(&PL_cred_mutex);
COND_DESTROY(&PL_eval_cond);
+#ifdef EMULATE_ATOMIC_REFCOUNTS
+ MUTEX_DESTROY(&PL_svref_mutex);
+#endif /* EMULATE_ATOMIC_REFCOUNTS */
/* As the penultimate thing, free the non-arena SV for thrsv */
Safefree(SvPVX(PL_thrsv));
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index d841d28b87..329b1d0a08 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -161,6 +161,28 @@ strings. See L<perlfunc/"pack">.
The new format type modifer '_' is useful for packing and unpacking
native shorts, ints, and longs. See L<perlfunc/"pack">.
+=head2 $^X variables may now have names longer than one character
+
+Formerly, $^X was synonymous with ${"\cX"}, but $^XY was a syntax
+error. Now variable names that begin with a control character may be
+arbitrarily long. However, for compatibility reasons, these variables
+I<must> be written with explicit braces, as C<${^XY}> for example.
+C<${^XYZ}> is synonymous with ${"\cXYZ"}. Variable names with more
+than one control character, such as C<${^XY^Z}>, are illegal.
+
+The old syntax has not changed. As before, the `^X' may either be a
+literal control-X character or the two character sequence `caret' plus
+`X'. When the braces are omitted, the variable name stops after the
+control character. Thus C<"$^XYZ"> continues to be synonymous with
+C<$^X . "YZ"> as before.
+
+As before, lexical variables may not have names beginning with control
+characters. As before, variables whose names begin with a control
+character are always forced to be in package `main'. These variables
+are all reserved for future extensions, except the ones that begin
+with C<^_>, which may be used by user programs and will not acquire a
+special meaning in any future version of Perl.
+
=head1 Significant bug fixes
=head2 E<lt>HANDLEE<gt> on empty files
diff --git a/pod/perlhist.pod b/pod/perlhist.pod
index 40aa83c1f2..b5bda55177 100644
--- a/pod/perlhist.pod
+++ b/pod/perlhist.pod
@@ -316,6 +316,7 @@ the strings?).
5.005_53 1998-Oct-31
5.005_54 1998-Nov-30
5.005_55 1999-Feb-16
+ 5.005_56 1999-Mar-01
=head2 SELECTED RELEASE SIZES
diff --git a/pod/perltodo.pod b/pod/perltodo.pod
index fe339dec79..4b5a5063e3 100644
--- a/pod/perltodo.pod
+++ b/pod/perltodo.pod
@@ -117,11 +117,6 @@ Verify complete 64 bit support so that the value of sysseek, or C<-s>, or
stat(), or tell can fit into a perl number without losing precision.
Work with the perl-64bit mailing list on perl.org.
-=head2 Figure a way out of $^(capital letter)
-
-Figure out a clean way to extend $^(capital letter) beyond
-the 26 alphabets. (${^WORD} maybe?)
-
=head2 Prototypes
=over 4
@@ -237,6 +232,7 @@ will be difficult.
CPP-space: restrict CPP symbols exported from headers
header-space: move into CORE/perl/
API-space: begin list of things that constitute public api
+ env-space: Configure should use PERL_CONFIG instead of CONFIG etc.
=head2 MULTIPLICITY
@@ -378,7 +374,9 @@ Make C<perldoc> tell users what they need to add to their .login or
=head2 Install ALL Documentation
Make the standard documentation kit include the VMS, OS/2, Win32,
-Threads, etc information.
+Threads, etc information. installperl and pod/Makefile should know
+enough to copy README.foo to perlfoo.pod before building everything,
+when appropriate.
=head2 Outstanding issues to be documented
@@ -839,6 +837,13 @@ Can we install modules as bytecode?
=head1 Recently Finished Tasks
+=head2 Figure a way out of $^(capital letter)
+
+Figure out a clean way to extend $^(capital letter) beyond
+the 26 alphabets. (${^WORD} maybe?)
+
+Mark-Jason Dominus sent a patch which went into 5.005_56.
+
=head2 Filenames
Make filenames in the distribution and in the standard module set
diff --git a/pod/perlvar.pod b/pod/perlvar.pod
index 2dafc1ca1a..5c851d9c15 100644
--- a/pod/perlvar.pod
+++ b/pod/perlvar.pod
@@ -1005,3 +1005,51 @@ pipe C<close>, overwriting the old value.
For more details, see the individual descriptions at L<$@>, L<$!>, L<$^E>,
and L<$?>.
+
+
+=head2 Technical Note on the Syntax of Variable Names
+
+Variable names in Perl can have several formats. Usually, they must
+begin with a letter or underscore, in which case they can be
+arbitrarily long (up to an internal limit of 256 characters) and may
+contain letters, digits, underscores, or the special sequence C<::>.
+In this case the part before the last C<::> is taken to be a I<package
+qualifier>; see L<perlmod>.
+
+Perl variable names may also be a sequence of digits or a single
+punctuation or control character. These names are all reserved for
+special uses by Perl; for example, the all-digits names are used to
+hold backreferences after a regulare expression match. Perl has a
+special syntax for the single-control-character names: It understands
+C<^X> (caret C<X>) to mean the control-C<X> character. For example,
+the notation C<$^W> (dollar-sign caret C<W>) is the scalar variable
+whose name is the single character control-C<W>. This is better than
+typing a literal control-C<W> into your program.
+
+Finally, new in Perl 5.006, Perl variable names may be alphanumeric
+strings that begin with control characters. These variables must be
+written in the form C<${^Foo}>; the braces are not optional.
+C<${^Foo}> denotes the scalar variable whose name is a control-C<F>
+followed by two C<o>'s. These variables are reserved for future
+special uses by Perl, except for the ones that begin with C<^_>
+(control-underscore). No control-character name that begins with
+C<^_> will acquire a special meaning in any future version of Perl;
+such names may therefore be used safely in programs. C<^_> itself,
+however, I<is> reserved.
+
+All Perl variables that begin with digits, control characters, or
+punctuation characters are exempt from the effects of the C<package>
+declaration and are always forced to be in package C<main>. A few
+other names are also exempt:
+
+ ENV STDIN
+ INC STDOUT
+ ARGV STDERR
+ ARGVOUT
+ SIG
+
+In particular, the new special C<${^_XYZ}> variables are always taken
+to be in package C<main> regardless of any C<package> declarations
+presently in scope.
+
+
diff --git a/pod/pod2man.PL b/pod/pod2man.PL
index 3c55d6e29c..11bb74bd67 100644
--- a/pod/pod2man.PL
+++ b/pod/pod2man.PL
@@ -678,8 +678,8 @@ $indent = 0;
$begun = "";
-# Unrolling [^A-Z>]|[A-Z](?!<) gives: // MRE pp 165.
-my $nonest = '(?:[^A-Z>]*(?:[A-Z](?!<)[^A-Z>]*)*)';
+# Unrolling [^-=A-Z>]|[A-Z](?!<)|[-=][\x00-\xFF] gives: // MRE pp 165.
+my $nonest = '(?:[^-=A-Z>]*(?:(?:[-=][\x00-\xFF]|[A-Z](?!<))[^-=A-Z>]*)*)';
while (<>) {
if ($cutting) {
diff --git a/proto.h b/proto.h
index d2898fe87e..e2ea784f11 100644
--- a/proto.h
+++ b/proto.h
@@ -814,7 +814,7 @@ OP *scalarboolean _((OP *o));
OP *too_few_arguments _((OP *o, char* name));
OP *too_many_arguments _((OP *o, char* name));
void null _((OP* o));
-PADOFFSET pad_findlex _((char* name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval));
+PADOFFSET pad_findlex _((char* name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval, U32 flags));
OP *newDEFSVOP _((void));
char* gv_ename _((GV *gv));
CV *cv_clone2 _((CV *proto, CV *outside));
diff --git a/t/base/lex.t b/t/base/lex.t
index 045cb22eb0..6bb39d0ae7 100755
--- a/t/base/lex.t
+++ b/t/base/lex.t
@@ -2,7 +2,7 @@
# $RCSfile: lex.t,v $$Revision: 4.1 $$Date: 92/08/07 18:27:04 $
-print "1..30\n";
+print "1..41\n";
$x = 'x';
@@ -117,3 +117,68 @@ $foo =~ s/^not /substr(<<EOF, 0, 0)/e;
Ignored
EOF
print $foo;
+
+# Tests for new extended control-character variables
+# MJD 19990227
+
+{ my $CX = "\cX";
+ my $CXY ="\cXY";
+ $ {$CX} = 17;
+ $ {$CXY} = 23;
+ if ($ {^XY} != 23) { print "not " }
+ print "ok 31\n";
+
+# Does the syntax where we use the literal control character still work?
+ if (eval "\$ {\cX}" != 17 or $@) { print "not " }
+ print "ok 32\n";
+
+ eval "\$\cN = 24"; # Literal control character
+ if ($@ or ${"\cN"} != 24) { print "not " }
+ print "ok 33\n";
+ if ($^N != 24) { print "not " } # Control character escape sequence
+ print "ok 34\n";
+
+# Does the old UNBRACED syntax still do what it used to?
+ if ("$^XY" ne "17Y") { print "not " }
+ print "ok 35\n";
+
+ sub XX () { 6 }
+ $ {"\cN\cXX"} = 119;
+ $^N = 5; # This should be an unused ^Var.
+ $N = 5;
+ # The second caret here should be interpreted as an xor
+ if (($^N^XX) != 3) { print "not " }
+ print "ok 36\n";
+# if (($N ^ XX()) != 3) { print "not " }
+# print "ok 32\n";
+
+ # These next two tests are trying to make sure that
+ # $^FOO is always global; it doesn't make sense to `my' it.
+ #
+ eval 'my $^X;';
+ print "not " unless index ($@, 'Can\'t use global $^X in "my"') > -1;
+ print "ok 37\n";
+# print "($@)\n" if $@;
+
+ eval 'my $ {^XYZ};';
+ print "not " unless index ($@, 'Can\'t use global $^XYZ in "my"') > -1;
+ print "ok 38\n";
+# print "($@)\n" if $@;
+
+# Now let's make sure that caret variables are all forced into the main package.
+ package Someother;
+ $^N = 'Someother';
+ $ {^Nostril} = 'Someother 2';
+ $ {^M} = 'Someother 3';
+ package main;
+ print "not " unless $^N eq 'Someother';
+ print "ok 39\n";
+ print "not " unless $ {^Nostril} eq 'Someother 2';
+ print "ok 40\n";
+ print "not " unless $ {^M} eq 'Someother 3';
+ print "ok 41\n";
+
+
+}
+
+
diff --git a/t/op/eval.t b/t/op/eval.t
index 498c63aaf3..dc163e9e8f 100755
--- a/t/op/eval.t
+++ b/t/op/eval.t
@@ -1,6 +1,6 @@
#!./perl
-print "1..29\n";
+print "1..36\n";
eval 'print "ok 1\n";';
@@ -90,15 +90,46 @@ my $X = sub {
my $x = 25;
eval <<'EOT'; die if $@;
- sub do_eval {
+ print "# $x\n"; # clone into eval's pad
+ sub do_eval1 {
eval $_[0]; die if $@;
}
EOT
-do_eval('print "ok $x\n"');
+do_eval1('print "ok $x\n"');
$x++;
-do_eval('eval q[print "ok $x\n"]');
+do_eval1('eval q[print "ok $x\n"]');
$x++;
-do_eval('sub { eval q[print "ok $x\n"] }->()');
+do_eval1('sub { eval q[print "ok $x\n"] }->()');
+$x++;
+
+# calls from within eval'' should clone outer lexicals
+
+eval <<'EOT'; die if $@;
+ sub do_eval2 {
+ eval $_[0]; die if $@;
+ }
+do_eval2('print "ok $x\n"');
+$x++;
+do_eval2('eval q[print "ok $x\n"]');
+$x++;
+do_eval2('sub { eval q[print "ok $x\n"] }->()');
+$x++;
+EOT
+
+# calls outside eval'' should NOT clone lexicals from called context
+
+$main::x = 'ok';
+eval <<'EOT'; die if $@;
+ # $x unbound here
+ sub do_eval3 {
+ eval $_[0]; die if $@;
+ }
+EOT
+do_eval3('print "$x ' . $x . '\n"');
+$x++;
+do_eval3('eval q[print "$x ' . $x . '\n"]');
+$x++;
+do_eval3('sub { eval q[print "$x ' . $x . '\n"] }->()');
$x++;
# can recursive subroutine-call inside eval'' see its own lexicals?
@@ -129,3 +160,14 @@ eval <<'EOT';
}
EOT
create_closure("ok $x\n")->();
+$x++;
+
+# does lexical search terminate correctly at subroutine boundary?
+$main::r = "ok $x\n";
+sub terminal { eval 'print $r' }
+{
+ my $r = "not ok $x\n";
+ eval 'terminal($r)';
+}
+$x++;
+
diff --git a/toke.c b/toke.c
index 211f9b275e..f1aca91221 100644
--- a/toke.c
+++ b/toke.c
@@ -74,6 +74,10 @@ static char ident_too_long[] = "Identifier too long";
? isALNUM(*(p)) \
: isALNUM_utf8((U8*)p))
+/* In variables name $^X, these are the legal values for X.
+ * 1999-02-27 mjd-perl-patch@plover.com */
+#define isCONTROLVAR(x) (isUPPER(x) || strchr("[\\]^_?", (x)))
+
/* The following are arranged oddly so that the guard on the switch statement
* can get by with a single comparison (if the compiler is smart enough).
*/
@@ -5160,7 +5164,7 @@ scan_ident(register char *s, register char *send, char *dest, STRLEN destlen, I3
if (s < send)
*d = *s++;
d[1] = '\0';
- if (*d == '^' && *s && (isUPPER(*s) || strchr("[\\]^_?", *s))) {
+ if (*d == '^' && *s && isCONTROLVAR(*s)) {
*d = toCTRL(*s);
s++;
}
@@ -5188,8 +5192,10 @@ scan_ident(register char *s, register char *send, char *dest, STRLEN destlen, I3
s = e;
}
else {
- while (isALNUM(*s) || *s == ':')
+ while ((isALNUM(*s) || *s == ':') && d < e)
*d++ = *s++;
+ if (d >= e)
+ croak(ident_too_long);
}
*d = '\0';
while (s < send && (*s == ' ' || *s == '\t')) s++;
@@ -5206,6 +5212,19 @@ scan_ident(register char *s, register char *send, char *dest, STRLEN destlen, I3
PL_lex_brackstack[PL_lex_brackets++] = XOPERATOR;
return s;
}
+ }
+ /* Handle extended ${^Foo} variables
+ * 1999-02-27 mjd-perl-patch@plover.com */
+ else if (!isALNUM(*d) && !isPRINT(*d) /* isCTRL(d) */
+ && isALNUM(*s))
+ {
+ d++;
+ while (isALNUM(*s) && d < e) {
+ *d++ = *s++;
+ }
+ if (d >= e)
+ croak(ident_too_long);
+ *d = '\0';
}
if (*s == '}') {
s++;
diff --git a/win32/Makefile b/win32/Makefile
index d8094597ec..7daffb3d34 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -29,7 +29,7 @@ INST_TOP = $(INST_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-INST_VER = \5.00555
+INST_VER = \5.00556
#
# uncomment to enable threads-capabilities
diff --git a/win32/config_H.bc b/win32/config_H.bc
index cfa64748f3..7437cf6b92 100644
--- a/win32/config_H.bc
+++ b/win32/config_H.bc
@@ -34,8 +34,8 @@
* This symbol is the filename expanded version of the BIN symbol, for
* programs that do not want to deal with that at run-time.
*/
-#define BIN "c:\\perl\\5.00555\\bin\\MSWin32-x86" /**/
-#define BIN_EXP "c:\\perl\\5.00555\\bin\\MSWin32-x86" /**/
+#define BIN "c:\\perl\\5.00556\\bin\\MSWin32-x86" /**/
+#define BIN_EXP "c:\\perl\\5.00556\\bin\\MSWin32-x86" /**/
/* HAS_ALARM:
* This symbol, if defined, indicates that the alarm routine is
@@ -2021,7 +2021,7 @@
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define ARCHLIB "c:\\perl\\5.00555\\lib\\MSWin32-x86" /**/
+#define ARCHLIB "c:\\perl\\5.00556\\lib\\MSWin32-x86" /**/
/*#define ARCHLIB_EXP "" /**/
/* DLSYM_NEEDS_UNDERSCORE:
@@ -2292,8 +2292,8 @@
* This symbol contains the ~name expanded version of PRIVLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define PRIVLIB "c:\\perl\\5.00555\\lib" /**/
-#define PRIVLIB_EXP (win32_get_privlib("5.00555")) /**/
+#define PRIVLIB "c:\\perl\\5.00556\\lib" /**/
+#define PRIVLIB_EXP (win32_get_privlib("5.00556")) /**/
/* SELECT_MIN_BITS:
* This symbol holds the minimum number of bits operated by select.
@@ -2317,7 +2317,7 @@
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITEARCH "c:\\perl\\site\\5.00555\\lib\\MSWin32-x86" /**/
+#define SITEARCH "c:\\perl\\site\\5.00556\\lib\\MSWin32-x86" /**/
/*#define SITEARCH_EXP "" /**/
/* SITELIB:
@@ -2333,8 +2333,8 @@
* This symbol contains the ~name expanded version of SITELIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITELIB "c:\\perl\\site\\5.00555\\lib" /**/
-#define SITELIB_EXP (win32_get_sitelib("5.00555")) /**/
+#define SITELIB "c:\\perl\\site\\5.00556\\lib" /**/
+#define SITELIB_EXP (win32_get_sitelib("5.00556")) /**/
/* STARTPERL:
* This variable contains the string to put in front of a perl
diff --git a/win32/config_H.gc b/win32/config_H.gc
index 0d30b29ce2..ddb8524fad 100644
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -34,8 +34,8 @@
* This symbol is the filename expanded version of the BIN symbol, for
* programs that do not want to deal with that at run-time.
*/
-#define BIN "c:\\perl\\5.00555\\bin\\MSWin32-x86" /**/
-#define BIN_EXP "c:\\perl\\5.00555\\bin\\MSWin32-x86" /**/
+#define BIN "c:\\perl\\5.00556\\bin\\MSWin32-x86" /**/
+#define BIN_EXP "c:\\perl\\5.00556\\bin\\MSWin32-x86" /**/
/* HAS_ALARM:
* This symbol, if defined, indicates that the alarm routine is
@@ -2021,7 +2021,7 @@
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define ARCHLIB "c:\\perl\\5.00555\\lib\\MSWin32-x86" /**/
+#define ARCHLIB "c:\\perl\\5.00556\\lib\\MSWin32-x86" /**/
/*#define ARCHLIB_EXP "" /**/
/* DLSYM_NEEDS_UNDERSCORE:
@@ -2292,8 +2292,8 @@
* This symbol contains the ~name expanded version of PRIVLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define PRIVLIB "c:\\perl\\5.00555\\lib" /**/
-#define PRIVLIB_EXP (win32_get_privlib("5.00555")) /**/
+#define PRIVLIB "c:\\perl\\5.00556\\lib" /**/
+#define PRIVLIB_EXP (win32_get_privlib("5.00556")) /**/
/* SELECT_MIN_BITS:
* This symbol holds the minimum number of bits operated by select.
@@ -2317,7 +2317,7 @@
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITEARCH "c:\\perl\\site\\5.00555\\lib\\MSWin32-x86" /**/
+#define SITEARCH "c:\\perl\\site\\5.00556\\lib\\MSWin32-x86" /**/
/*#define SITEARCH_EXP "" /**/
/* SITELIB:
@@ -2333,8 +2333,8 @@
* This symbol contains the ~name expanded version of SITELIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITELIB "c:\\perl\\site\\5.00555\\lib" /**/
-#define SITELIB_EXP (win32_get_sitelib("5.00555")) /**/
+#define SITELIB "c:\\perl\\site\\5.00556\\lib" /**/
+#define SITELIB_EXP (win32_get_sitelib("5.00556")) /**/
/* STARTPERL:
* This variable contains the string to put in front of a perl
diff --git a/win32/config_H.vc b/win32/config_H.vc
index 3b2185fd4e..4a8a097512 100644
--- a/win32/config_H.vc
+++ b/win32/config_H.vc
@@ -34,8 +34,8 @@
* This symbol is the filename expanded version of the BIN symbol, for
* programs that do not want to deal with that at run-time.
*/
-#define BIN "c:\\perl\\5.00555\\bin\\MSWin32-x86" /**/
-#define BIN_EXP "c:\\perl\\5.00555\\bin\\MSWin32-x86" /**/
+#define BIN "c:\\perl\\5.00556\\bin\\MSWin32-x86" /**/
+#define BIN_EXP "c:\\perl\\5.00556\\bin\\MSWin32-x86" /**/
/* HAS_ALARM:
* This symbol, if defined, indicates that the alarm routine is
@@ -2021,7 +2021,7 @@
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define ARCHLIB "c:\\perl\\5.00555\\lib\\MSWin32-x86" /**/
+#define ARCHLIB "c:\\perl\\5.00556\\lib\\MSWin32-x86" /**/
/*#define ARCHLIB_EXP "" /**/
/* DLSYM_NEEDS_UNDERSCORE:
@@ -2292,8 +2292,8 @@
* This symbol contains the ~name expanded version of PRIVLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define PRIVLIB "c:\\perl\\5.00555\\lib" /**/
-#define PRIVLIB_EXP (win32_get_privlib("5.00555")) /**/
+#define PRIVLIB "c:\\perl\\5.00556\\lib" /**/
+#define PRIVLIB_EXP (win32_get_privlib("5.00556")) /**/
/* SELECT_MIN_BITS:
* This symbol holds the minimum number of bits operated by select.
@@ -2317,7 +2317,7 @@
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITEARCH "c:\\perl\\site\\5.00555\\lib\\MSWin32-x86" /**/
+#define SITEARCH "c:\\perl\\site\\5.00556\\lib\\MSWin32-x86" /**/
/*#define SITEARCH_EXP "" /**/
/* SITELIB:
@@ -2333,8 +2333,8 @@
* This symbol contains the ~name expanded version of SITELIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITELIB "c:\\perl\\site\\5.00555\\lib" /**/
-#define SITELIB_EXP (win32_get_sitelib("5.00555")) /**/
+#define SITELIB "c:\\perl\\site\\5.00556\\lib" /**/
+#define SITELIB_EXP (win32_get_sitelib("5.00556")) /**/
/* STARTPERL:
* This variable contains the string to put in front of a perl
diff --git a/win32/makefile.mk b/win32/makefile.mk
index 127e1590d4..574fa6aa82 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -33,7 +33,7 @@ INST_TOP *= $(INST_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-INST_VER *= \5.00555
+INST_VER *= \5.00556
#
# uncomment to enable threads-capabilities
diff --git a/win32/win32.c b/win32/win32.c
index 4ed826715f..726c7c552e 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -2234,13 +2234,13 @@ XS(w32_GetCwd)
* then it worked, set PV valid,
* else leave it 'undef'
*/
+ EXTEND(SP,1);
if (SvCUR(sv)) {
SvPOK_on(sv);
- EXTEND(SP,1);
ST(0) = sv;
XSRETURN(1);
}
- XSRETURN_EMPTY;
+ XSRETURN_UNDEF;
}
static
@@ -2261,15 +2261,16 @@ XS(w32_GetNextAvailDrive)
dXSARGS;
char ix = 'C';
char root[] = "_:\\";
+
+ EXTEND(SP,1);
while (ix <= 'Z') {
root[0] = ix++;
if (GetDriveType(root) == 1) {
root[2] = '\0';
- EXTEND(SP,1);
XSRETURN_PV(root);
}
}
- XSRETURN_EMPTY;
+ XSRETURN_UNDEF;
}
static
@@ -2296,13 +2297,13 @@ XS(w32_LoginName)
dXSARGS;
char *name = getlogin_buffer;
DWORD size = sizeof(getlogin_buffer);
+ EXTEND(SP,1);
if (GetUserName(name,&size)) {
- EXTEND(SP,1);
/* size includes NULL */
ST(0) = sv_2mortal(newSVpv(name,size-1));
XSRETURN(1);
}
- XSRETURN_EMPTY;
+ XSRETURN_UNDEF;
}
static
@@ -2311,13 +2312,13 @@ XS(w32_NodeName)
dXSARGS;
char name[MAX_COMPUTERNAME_LENGTH+1];
DWORD size = sizeof(name);
+ EXTEND(SP,1);
if (GetComputerName(name,&size)) {
- EXTEND(SP,1);
/* size does NOT include NULL :-( */
ST(0) = sv_2mortal(newSVpv(name,size));
XSRETURN(1);
}
- XSRETURN_EMPTY;
+ XSRETURN_UNDEF;
}
@@ -2329,6 +2330,7 @@ XS(w32_DomainName)
/* mingw32 (and Win95) don't have NetWksta*(), so do it the old way */
char name[256];
DWORD size = sizeof(name);
+ EXTEND(SP,1);
if (GetUserName(name,&size)) {
char sid[1024];
DWORD sidlen = sizeof(sid);
@@ -2337,7 +2339,6 @@ XS(w32_DomainName)
SID_NAME_USE snu;
if (LookupAccountName(NULL, name, (PSID)&sid, &sidlen,
dname, &dnamelen, &snu)) {
- EXTEND(SP,1);
XSRETURN_PV(dname); /* all that for this */
}
}
@@ -2348,6 +2349,7 @@ XS(w32_DomainName)
char dname[256];
DWORD dnamelen = sizeof(dname);
PWKSTA_INFO_100 pwi;
+ EXTEND(SP,1);
if (NERR_Success == NetWkstaGetInfo(NULL, 100, (LPBYTE*)&pwi)) {
if (pwi->wki100_langroup && *(pwi->wki100_langroup)) {
WideCharToMultiByte(CP_ACP, NULL, pwi->wki100_langroup,
@@ -2358,11 +2360,10 @@ XS(w32_DomainName)
-1, (LPSTR)dname, dnamelen, NULL, NULL);
}
NetApiBufferFree(pwi);
- EXTEND(SP,1);
XSRETURN_PV(dname);
}
#endif
- XSRETURN_EMPTY;
+ XSRETURN_UNDEF;
}
static
@@ -2436,7 +2437,7 @@ XS(w32_FormatMessage)
msgbuf, sizeof(msgbuf)-1, NULL))
XSRETURN_PV(msgbuf);
- XSRETURN_EMPTY;
+ XSRETURN_UNDEF;
}
static
@@ -2509,7 +2510,7 @@ XS(w32_GetShortPathName)
ST(0) = shortpath;
XSRETURN(1);
}
- XSRETURN_EMPTY;
+ XSRETURN_UNDEF;
}
static