rpms/perl/devel perl-5.8.8-U34297_C28006.patch,NONE,1.1

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Jul 14 00:50:59 UTC 2006


Author: jvdias

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

Added Files:
	perl-5.8.8-U34297_C28006.patch 
Log Message:
fix upstream bug 34297

perl-5.8.8-U34297_C28006.patch:
 pp.c |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletion(-)

--- NEW FILE perl-5.8.8-U34297_C28006.patch ---
--- perl-5.8.8/pp.c.U34297_C28006	2006-07-13 12:40:37.000000000 -0400
+++ perl-5.8.8/pp.c	2006-07-13 13:03:19.000000000 -0400
@@ -2949,7 +2949,22 @@
     dSP; dTARGET;
     SV *sv = TOPs;
 
-    if (DO_UTF8(sv))
+    if (SvAMAGIC(sv)) {
+	/* For an overloaded scalar, we can't know in advance if it's going to
+	   be UTF-8 or not. Also, we can't call sv_len_utf8 as it likes to
+	   cache the length. Maybe that should be a documented feature of it.
+	*/
+	STRLEN len;
+	const char *const p = SvPV_const(sv, len);
+
+	if (DO_UTF8(sv)) {
+	    SETi(utf8_length((U8*)p, (U8*)p + len));
+	}
+	else
+	    SETi(len);
+
+    } 
+    else if (DO_UTF8(sv))
 	SETi(sv_len_utf8(sv));
     else
 	SETi(sv_len(sv));




More information about the fedora-cvs-commits mailing list