Re: [PATCH] Double magic with chop
Vincent Pit [Thu, 15 May 2008 15:31:19 +0000 (17:31 +0200)]
From: "Vincent Pit" <perl@profvince.com>
Message-ID: <32964.147.210.17.175.1210858279.squirrel@147.210.17.175>

p4raw-id: //depot/perl@33831

doop.c
t/op/gmagic.t

diff --git a/doop.c b/doop.c
index 8bd7c0f..8bff60a 100644 (file)
--- a/doop.c
+++ b/doop.c
@@ -1033,7 +1033,7 @@ Perl_do_chop(pTHX_ register SV *astr, register SV *sv)
 
     s = SvPV(sv, len);
     if (len && !SvPOK(sv))
-       s = SvPV_force(sv, len);
+       s = SvPV_force_nomg(sv, len);
     if (DO_UTF8(sv)) {
        if (s && len) {
            char * const send = s + len;
index ab6d2ee..ce05aff 100644 (file)
@@ -6,7 +6,7 @@ BEGIN {
     @INC = '../lib';
 }
 
-print "1..18\n";
+print "1..20\n";
 
 my $t = 1;
 tie my $c => 'Tie::Monitor';
@@ -50,6 +50,10 @@ ok_string($s, 'x0', 2, 1);
 $s = $c = $c . $c;
 ok_string($s, '00', 3, 1);
 
+# multiple magic in core functions
+$s = chop($c);
+ok_string($s, '0', 1, 1);
+
 # adapted from Tie::Counter by Abigail
 package Tie::Monitor;