[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

rpms/perl/FC-4 perl-5.8.6-bz172587.patch,NONE,1.1



Author: jvdias

Update of /cvs/dist/rpms/perl/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv23263

Added Files:
	perl-5.8.6-bz172587.patch 
Log Message:
fix bug 172587

perl-5.8.6-bz172587.patch:
 pp.c      |    4 ++--
 pp_hot.c  |    4 ++--
 pp_sort.c |    1 +
 pp_sys.c  |   19 +++++++++++--------
 4 files changed, 16 insertions(+), 12 deletions(-)

--- NEW FILE perl-5.8.6-bz172587.patch ---
--- perl-5.8.6/pp_sort.c.172587	2004-09-10 03:06:59.000000000 -0400
+++ perl-5.8.6/pp_sort.c	2005-11-11 16:05:23.000000000 -0500
@@ -1510,6 +1510,7 @@
 
     if (gimme != G_ARRAY) {
 	SP = MARK;
+	EXTEND(SP,1);
 	RETPUSHUNDEF;
     }
 
--- perl-5.8.6/pp_hot.c.172587	2004-09-10 05:51:09.000000000 -0400
+++ perl-5.8.6/pp_hot.c	2005-11-11 16:05:23.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.6/pp.c.172587	2004-10-19 13:07:32.000000000 -0400
+++ perl-5.8.6/pp.c	2005-11-11 16:05:23.000000000 -0500
@@ -716,7 +716,7 @@
     while (MARK < SP)
 	do_chop(TARG, *++MARK);
     SP = ORIGMARK;
-    PUSHTARG;
+    XPUSHTARG;
     RETURN;
 }
 
@@ -734,7 +734,7 @@
 
     while (SP > MARK)
 	count += do_chomp(POPs);
-    PUSHi(count);
+    XPUSHi(count);
     RETURN;
 }
 
--- perl-5.8.6/pp_sys.c.172587	2004-10-19 13:07:23.000000000 -0400
+++ perl-5.8.6/pp_sys.c	2005-11-11 16:05:23.000000000 -0500
@@ -434,13 +434,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);
@@ -3501,7 +3504,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");
@@ -4111,7 +4114,7 @@
 	    if (errno != EAGAIN) {
 		value = -1;
 		SP = ORIGMARK;
-		PUSHi(value);
+		XPUSHi(value);
 		if (did_pipes) {
 		    PerlLIO_close(pp[0]);
 		    PerlLIO_close(pp[1]);
@@ -4160,7 +4163,7 @@
 		    STATUS_CURRENT = -1;
 		}
 	    }
-	    PUSHi(STATUS_CURRENT);
+	    XPUSHi(STATUS_CURRENT);
 	    RETURN;
 	}
 	if (did_pipes) {
@@ -4206,7 +4209,7 @@
     STATUS_NATIVE_SET(value);
     do_execfree();
     SP = ORIGMARK;
-    PUSHi(result ? value : STATUS_CURRENT);
+    XPUSHi(result ? value : STATUS_CURRENT);
 #endif /* !FORK or VMS */
     RETURN;
 }
@@ -4259,7 +4262,7 @@
     }
 
     SP = ORIGMARK;
-    PUSHi(value);
+    XPUSHi(value);
     RETURN;
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]