perl/perl-5.8.7-bz172587.patch
2005-11-07 18:43:25 +00:00

115 lines
2.3 KiB
Diff

--- perl-5.8.7/pp_sort.c.bz172587 2005-04-08 05:31:47.000000000 -0400
+++ perl-5.8.7/pp_sort.c 2005-11-07 12:57:07.000000000 -0500
@@ -1510,6 +1510,7 @@
if (gimme != G_ARRAY) {
SP = MARK;
+ EXTEND(SP,1);
RETPUSHUNDEF;
}
--- perl-5.8.7/pp_hot.c.bz172587 2005-04-22 10:12:27.000000000 -0400
+++ perl-5.8.7/pp_hot.c 2005-11-07 12:55:16.000000000 -0500
@@ -639,12 +639,12 @@
}
}
SP = ORIGMARK;
- PUSHs(&PL_sv_yes);
+ XPUSHs(&PL_sv_yes);
RETURN;
just_say_no:
SP = ORIGMARK;
- PUSHs(&PL_sv_undef);
+ XPUSHs(&PL_sv_undef);
RETURN;
}
--- perl-5.8.7/pp_sys.c.bz172587 2005-04-27 18:12:46.000000000 -0400
+++ perl-5.8.7/pp_sys.c 2005-11-07 13:03:39.000000000 -0500
@@ -429,13 +429,16 @@
SV *tmpsv;
char *tmps;
STRLEN len;
- if (SP - MARK != 1) {
+ if (SP - MARK > 1) {
dTARGET;
do_join(TARG, &PL_sv_no, MARK, SP);
tmpsv = TARG;
SP = MARK + 1;
- }
- else {
+ }
+ else if (SP == MARK ) {
+ tmpsv = &PL_sv_no;
+ EXTEND(SP, 1);
+ } else {
tmpsv = TOPs;
}
tmps = SvPV(tmpsv, len);
@@ -3517,7 +3520,7 @@
I32 value = (I32)apply(PL_op->op_type, MARK, SP);
SP = MARK;
- PUSHi(value);
+ XPUSHi(value);
RETURN;
#else
DIE(aTHX_ PL_no_func, "chown");
@@ -4127,7 +4130,7 @@
if (errno != EAGAIN) {
value = -1;
SP = ORIGMARK;
- PUSHi(value);
+ XPUSHi(value);
if (did_pipes) {
PerlLIO_close(pp[0]);
PerlLIO_close(pp[1]);
@@ -4176,7 +4179,7 @@
STATUS_CURRENT = -1;
}
}
- PUSHi(STATUS_CURRENT);
+ XPUSHi(STATUS_CURRENT);
RETURN;
}
if (did_pipes) {
@@ -4222,7 +4225,7 @@
STATUS_NATIVE_SET(value);
do_execfree();
SP = ORIGMARK;
- PUSHi(result ? value : STATUS_CURRENT);
+ XPUSHi(result ? value : STATUS_CURRENT);
#endif /* !FORK or VMS */
RETURN;
}
@@ -4275,7 +4278,7 @@
}
SP = ORIGMARK;
- PUSHi(value);
+ XPUSHi(value);
RETURN;
}
--- perl-5.8.7/pp.c.bz172587 2005-05-16 11:30:13.000000000 -0400
+++ perl-5.8.7/pp.c 2005-11-07 12:56:32.000000000 -0500
@@ -721,7 +721,7 @@
while (MARK < SP)
do_chop(TARG, *++MARK);
SP = ORIGMARK;
- PUSHTARG;
+ XPUSHTARG;
RETURN;
}
@@ -739,7 +739,7 @@
while (SP > MARK)
count += do_chomp(POPs);
- PUSHi(count);
+ XPUSHi(count);
RETURN;
}