diff options
author | Perl 5 Porters <perl5-porters@africa.nicoh.com> | 1997-01-16 07:24:00 +1200 |
---|---|---|
committer | Chip Salzenberg <chip@atlantic.net> | 1997-01-16 07:24:00 +1200 |
commit | 44a8e56aa037ed0f03f0506f6f85f5ed290c78e1 (patch) | |
tree | cb236761929c3161f91de24c86322902758b6efb /pp.c | |
parent | 8227f81cbd3d53a745747c4247824562383badae (diff) | |
download | perl-44a8e56aa037ed0f03f0506f6f85f5ed290c78e1.tar.gz |
[inseparable changes from patch from perl5.003_20 to perl5.003_21]
BUILD PROCESS
Subject: Make MachTen hints file warn about db-recno failures
Date: Wed, 8 Jan 1997 12:07:18 +0100
From: Dominic Dunlop <domo@slipper.ip.lu>
Files: hints/machten.sh
Msg-ID: <v03010d00aef92fba6aca@[194.51.248.78]>
(applied based on p5p patch as commit a4c70ab8da3ec1d87c83e5c617f4550814ec1724)
Subject: 5.003_20, FreeBSD 3.0 and minor patch
Date: Wed, 8 Jan 1997 14:37:47 +0100
From: Ollivier Robert <roberto@eurocontrol.fr>
Files: Configure
Msg-ID: <Mutt.19970108143747.roberto@caerdonn.eurocontrol.fr>
(applied based on p5p patch as commit 50e0d465254be88fb90ac23584812a529741b4b1)
CORE LANGUAGE CHANGES
Subject: Fix overloading via inherited autoloaded functions
Date: Mon, 13 Jan 1997 05:22:47 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: gv.c lib/overload.pm pod/perldiag.pod t/pragma/overload.t
Msg-ID: <199701131022.FAA22830@monk.mps.ohio-state.edu>
(applied based on p5p patch as commit a9bc755754f0db5e848e65dfd2e63a96af50ffd4)
Subject: Method call fixes: Don't cache in alias, don't skip undef
From: Chip Salzenberg <chip@atlantic.net>
Files: global.sym gv.c gv.h hv.c op.c pod/perlguts.pod pod/perltoc.pod pp.c pp_ctl.c pp_hot.c proto.h scope.c sv.c t/op/method.t
Subject: Formats can be closures
From: Chip Salzenberg <chip@atlantic.net>
Files: cv.h op.c perly.c perly.c.diff perly.y pp_sys.c sv.h
Subject: Quote 'foo' in C<$x{-foo}>
From: Chip Salzenberg <chip@atlantic.net>
Files: toke.c
Subject: Forbid C< x->{y} > and C< x->[0] > under C<strict refs>
From: Chip Salzenberg <chip@atlantic.net>
Files: op.c pod/perldiag.pod t/pragma/strict-refs
Subject: Allow <=> to return undef when operands are not ordered
From: Chip Salzenberg <chip@perl.com>
Files: MANIFEST pp.c t/op/cmp.t
CORE PORTABILITY
Subject: Re: Perl 5.003_20: OS/2 patches
Date: Fri, 10 Jan 1997 06:02:16 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: hints/os2.sh os2/Changes os2/os2.c os2/os2ish.h pp_sys.c
Msg-ID: <199701101102.GAA19051@monk.mps.ohio-state.edu>
(applied based on p5p patch as commit 9a3e71f668bd84b1cf53dd3ea10f588d59ecfebb)
Subject: VMS patches for _20
Date: Tue, 14 Jan 1997 17:34:43 -0500 (EST)
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Files: configpm dosish.h os2/os2ish.h plan9/plan9ish.h proto.h t/pragma/strict.t t/pragma/subs.t t/pragma/warning.t toke.c unixish.h vms/Makefile vms/config.vms vms/descrip.mms vms/genconfig.pl vms/perly_c.vms vms/test.com vms/vmsish.h x2p/a2p.h x2p/str.c
private-msgid: <01IE7MGK7ULQ003K5M@hmivax.humgen.upenn.edu>
Subject: Irix 6.3 & 6.4 and perl5.003_20
Date: Mon, 13 Jan 1997 17:42:50 -0500 (EST)
From: John Stoffel <jfs@fluent.com>
Files: MANIFEST hints/irix_6_3.sh hints/irix_6_4.sh
Msg-ID: <199701132242.RAA14601@jfs.Fluent.COM>
(applied based on p5p patch as commit 8a1e91d771b51ae31eed1ac5944c63934213fb07)
Subject: Patch: MachTen hints, Configure
Date: Tue, 14 Jan 1997 13:43:13 +0100
From: Dominic Dunlop <domo@slipper.ip.lu>
Files: Configure hints/machten.sh
private-msgid: <v03010d00af0123a93670@[194.51.248.75]>
Subject: Rename aux.sh to aux_3.sh for MS-LOSS
From: Chip Salzenberg <chip@atlantic.net>
Files: MANIFEST hints/aux_3.sh
DOCUMENTATION
Subject: Full documentation generation patch
Date: Wed, 15 Jan 97 11:16:28 +0100
From: Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Files: MANIFEST pod/roffitall pod/rofftoc
Msg-ID: <15309.853323388@lyon.grenoble.hp.com>
(applied based on p5p patch as commit a3270a1d7469cab9221ab0050a0e6695bd0047d8)
Subject: Document use of pos() and /\G/
Date: Mon, 13 Jan 1997 15:13:12 -0500
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Files: pod/perlfunc.pod pod/perlnews.pod pod/perlop.pod pod/perlre.pod pod/perltoc.pod pod/perltrap.pod
Msg-ID: <199701132013.PAA26606@aatma.engin.umich.edu>
(applied based on p5p patch as commit b2a07c1c241ec86f010fc0ea3bfa54c8ec28be90)
Subject: Document new closure warnings
From: Chip Salzenberg <chip@atlantic.net>
Files: op.c pod/perldiag.pod
Subject: Misc. doc patches missing in _20
Date: Tue, 07 Jan 1997 22:55:33 -0500
From: Roderick Schertler <roderick@gate.net>
Files: pod/perlsub.pod pod/perltoc.pod pod/perlvar.pod
Msg-ID: <102.852695733@eeyore.ibcinc.com>
(applied based on p5p patch as commit b88f04ff2985d0899964b90ae56789d88f6b353e)
LIBRARY AND EXTENSIONS
Subject: Localize info about filesystems being case-forgiving
From: Chip Salzenberg <chip@atlantic.net>
Files: lib/File/Basename.pm pod/checkpods.PL pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL utils/c2ph.PL utils/h2ph.PL utils/h2xs.PL utils/perlbug.PL utils/perldoc.PL utils/pl2pm.PL utils/splain.PL x2p/find2perl.PL x2p/s2p.PL
Subject: Eliminate warning from C<use overload>
From: Chip Salzenberg <chip@atlantic.net>
Files: lib/overload.pm
OTHER CORE CHANGES
Subject: Fix C< eval { my $x; eval '$x' } >
From: Chip Salzenberg <chip@atlantic.net>
Files: op.c t/op/misc.t
Subject: Don't warn if eval '' uses outer func's lexicals
From: Chip Salzenberg <chip@atlantic.net>
Files: op.c
Subject: Avoid memory wastage in wait(); make pidstatus global
From: Chip Salzenberg <chip@atlantic.net>
Files: global.sym interp.sym perl.c perl.h pp_sys.c
Subject: Forbid ++ and -- on readonly values
Date: Fri, 10 Jan 1997 19:47:16 -0800 (PST)
From: "John Q. Linux" <jql@accessone.com>
Files: pp.c pp_hot.c
Msg-ID: <Pine.LNX.3.95.970110193330.11249D-100000@jql.accessone.com>
(applied based on p5p patch as commit 74c80e585086695d5428ab316ca82fd6931aeabd)
Subject: Keep array from dying during foreach(@array)
From: Chip Salzenberg <chip@atlantic.net>
Files: cop.h pp_ctl.c
Subject: Fix C< $a="simple"; split /($a)/o >
From: Chip Salzenberg <chip@atlantic.net>
Files: pp.c t/op/misc.t
Subject: Fix for anon-lists with tied entries coredump
Date: Fri, 10 Jan 1997 02:45:11 -0500
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Files: pp.c
Msg-ID: <199701100745.CAA13057@aatma.engin.umich.edu>
(applied based on p5p patch as commit d976ac8220f8890bb7663152c4870f60e8e018c8)
Subject: Don't set SVf_PADBUSY on immortal SVs
From: Chip Salzenberg <chip@atlantic.net>
Files: op.c
Subject: Patch for Object subroutines
Date: Tue, 7 Jan 1997 20:56:02 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: cop.h
Msg-ID: <199701080156.UAA15366@monk.mps.ohio-state.edu>
(applied based on p5p patch as commit 174150afa5efdafc0e94a18211d3c9aa06b15cd9)
Subject: Use an SVt_PVLV to hold stacked OP pointers when debugging
From: Chip Salzenberg <chip@atlantic.net>
Files: pp.c pp_hot.c
Subject: Undo change that freed large pad vars
From: Chip Salzenberg <chip@atlantic.net>
Files: scope.c
TESTS
Subject: UNIVERSAL tests
From: Roderick Schertler <roderick@gate.net>
Files: MANIFEST t/op/universal.t
Subject: Test deletion of array during foreach
From: Jarkko Hietaniemi <jhi@alpha.hut.fi>
Files: t/op/misc.t
UTILITIES
Subject: Don't search for pod if path is already valid
Date: Wed, 08 Jan 1997 15:25:19 -0800
From: Wayne Scott <wscott@ichips.intel.com>
Files: utils/perldoc.PL
Msg-ID: <199701082325.PAA04521@pdxlx008.intel.com>
(applied based on p5p patch as commit 88f0eda82bb679b4e6445ccb17e18d0781c6a5da)
Subject: Yet another perldoc option
Date: Thu, 3 Oct 1996 00:00:35 +0200
From: Gisle Aas <aas@aas.no>
Files: utils/perldoc.PL
Msg-ID: <199610022200.AAA15334@furubotn.sn.no>
(applied based on p5p patch as commit a2333f3625faa17fb193cfa25c3d598cb59f105f)
Subject: Re: perldoc, temp files, async pagers
Date: 07 Jan 1997 22:54:14 -0500
From: Roderick Schertler <roderick@gate.net>
Files: utils/perldoc.PL
Msg-ID: <pzwwtoom8p.fsf@eeyore.ibcinc.com>
(applied based on p5p patch as commit 7c36043de26da560a0f7eb04f36d232762c0092c)
Diffstat (limited to 'pp.c')
-rw-r--r-- | pp.c | 45 |
1 files changed, 30 insertions, 15 deletions
@@ -544,13 +544,11 @@ PP(pp_undef) break; case SVt_PVCV: cv_undef((CV*)sv); - sub_generation++; break; case SVt_PVGV: - if (SvFAKE(sv)) { - sv_setsv(sv, &sv_undef); - break; - } + if (SvFAKE(sv)) + sv_setsv(sv, &sv_undef); + break; default: if (SvPOK(sv) && SvLEN(sv)) { (void)SvOOK_off(sv); @@ -568,6 +566,8 @@ PP(pp_undef) PP(pp_predec) { dSP; + if (SvREADONLY(TOPs)) + croak(no_modify); if (SvIOK(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) && SvIVX(TOPs) != IV_MIN) { @@ -583,6 +583,8 @@ PP(pp_predec) PP(pp_postinc) { dSP; dTARGET; + if (SvREADONLY(TOPs)) + croak(no_modify); sv_setsv(TARG, TOPs); if (SvIOK(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) && SvIVX(TOPs) != IV_MAX) @@ -602,6 +604,8 @@ PP(pp_postinc) PP(pp_postdec) { dSP; dTARGET; + if(SvREADONLY(TOPs)) + croak(no_modify); sv_setsv(TARG, TOPs); if (SvIOK(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) && SvIVX(TOPs) != IV_MIN) @@ -851,12 +855,16 @@ PP(pp_ncmp) dPOPTOPnnrl; I32 value; - if (left > right) - value = 1; - else if (left < right) + if (left < right) value = -1; - else + else if (left == right) value = 0; + else if (left > right) + value = 1; + else { + SETs(&sv_undef); + RETURN; + } SETi(value); RETURN; } @@ -2110,10 +2118,11 @@ PP(pp_lslice) PP(pp_anonlist) { - dSP; dMARK; + dSP; dMARK; dORIGMARK; I32 items = SP - MARK; - SP = MARK; - XPUSHs((SV*)sv_2mortal((SV*)av_make(items, MARK+1))); + SV *av = sv_2mortal((SV*)av_make(items, MARK+1)); + SP = ORIGMARK; /* av_make() might realloc stack_sp */ + XPUSHs(av); RETURN; } @@ -3696,7 +3705,8 @@ PP(pp_split) STRLEN len; register char *s = SvPV(sv, len); char *strend = s + len; - register PMOP *pm = (PMOP*)POPs; + register PMOP *pm; + register REGEXP *rx; register SV *dstr; register char *m; I32 iters = 0; @@ -3707,12 +3717,17 @@ PP(pp_split) I32 realarray = 0; I32 base; AV *oldstack = curstack; - register REGEXP *rx = pm->op_pmregexp; I32 gimme = GIMME; I32 oldsave = savestack_ix; +#ifdef DEBUGGING + Copy(&LvTARGOFF(POPs), &pm, 1, PMOP*); +#else + pm = (PMOP*)POPs; +#endif if (!pm || !s) DIE("panic: do_split"); + rx = pm->op_pmregexp; TAINT_IF((pm->op_pmflags & PMf_LOCALE) && (pm->op_pmflags & (PMf_WHITE | PMf_SKIPWHITE))); @@ -3792,7 +3807,7 @@ PP(pp_split) s = m; } } - else if (pm->op_pmshort) { + else if (pm->op_pmshort && !rx->nparens) { i = SvCUR(pm->op_pmshort); if (i == 1) { i = *SvPVX(pm->op_pmshort); |