diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-04-08 00:14:13 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-04-08 00:14:13 +0000 |
commit | 4fb8ea62c3ef465b425c181fbbd32e1a7b145a35 (patch) | |
tree | a8cf1145dc0c922547f90f92d9c444715752d512 /pp.c | |
parent | 00dc2f4f23da07658d2634f904ac3a098aaa4153 (diff) | |
parent | 4d66eb1041bad20fd78b91e283e4620826b68cc8 (diff) | |
download | perl-4fb8ea62c3ef465b425c181fbbd32e1a7b145a35.tar.gz |
[asperl] integrate mainline changes
p4raw-id: //depot/asperl@884
Diffstat (limited to 'pp.c')
-rw-r--r-- | pp.c | 16 |
1 files changed, 11 insertions, 5 deletions
@@ -69,7 +69,11 @@ typedef unsigned UBW; * If they're not right on your machine, then pack() and unpack() * wouldn't work right anyway; you'll need to apply the Cray hack. * (I'd like to check them with #if, but you can't use sizeof() in - * the preprocessor.) + * the preprocessor.) --??? + */ +/* + The appropriate SHORTSIZE, INTSIZE, LONGSIZE, and LONGLONGSIZE + defines are now in config.h. --Andy Dougherty April 1998 */ #define SIZE16 2 #define SIZE32 4 @@ -1778,6 +1782,7 @@ PP(pp_substr) len = POPi; pos = POPi; sv = POPs; + PUTBACK; tmps = SvPV(sv, curlen); if (pos >= arybase) { pos -= arybase; @@ -1844,6 +1849,7 @@ PP(pp_substr) LvTARGLEN(TARG) = rem; } } + SPAGAIN; PUSHs(TARG); /* avoid SvSETMAGIC here */ RETURN; } @@ -2485,7 +2491,7 @@ PP(pp_anonhash) if (MARK < SP) sv_setsv(val, *++MARK); else if (dowarn) - warn("Odd number of elements in hash list"); + warn("Odd number of elements in hash assignment"); (void)hv_store_ent(hv,key,val,0); } SP = ORIGMARK; @@ -2836,11 +2842,11 @@ mul128(SV *sv, U8 m) U32 i = 0; if (!strnEQ(s, "0000", 4)) { /* need to grow sv */ - SV *New = newSVpv("0000000000", 10); + SV *tmpNew = newSVpv("0000000000", 10); - sv_catsv(New, sv); + sv_catsv(tmpNew, sv); SvREFCNT_dec(sv); /* free old sv */ - sv = New; + sv = tmpNew; s = SvPV(sv, len); } t = s + len - 1; |