Unicode s/// buglet found by Gregor Chrupala in perl-unicode.
Jarkko Hietaniemi [Tue, 25 Jun 2002 15:18:15 +0000 (15:18 +0000)]
p4raw-id: //depot/perl@17353

pp_hot.c
t/op/subst.t

index de2dec4..22c54fc 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -2089,6 +2089,8 @@ PP(pp_subst)
            SPAGAIN;
        }
        SvTAINT(TARG);
+       if (doutf8)
+           SvUTF8_on(TARG);
        LEAVE_SCOPE(oldsave);
        RETURN;
     }
index 8b0a8b0..e80ab23 100755 (executable)
@@ -7,7 +7,7 @@ BEGIN {
 }
 
 require './test.pl';
-plan( tests => 89 );
+plan( tests => 92 );
 
 $x = 'foo';
 $_ = "x";
@@ -372,10 +372,32 @@ ok( $_ eq "C B" && $snum == 12 );
     my $l = my $r = $s;
     $l =~ s/[^\w]//g;
     $r =~ s/[^\w\.]//g;
-    is($l, $r, "use utf8");
+    is($l, $r, "use utf8 \\w");
 }
 
 my $pv1 = my $pv2  = "Andreas J. K\303\266nig";
 $pv1 =~ s/A/\x{100}/;
 substr($pv2,0,1) = "\x{100}";
 is($pv1, $pv2);
+
+{   
+    use utf8;
+    $a = 'España';
+    $a =~ s/ñ/ñ/;
+    like($a, qr/ñ/, "use utf8 RHS");
+}
+
+{
+    use utf8;
+    $a = 'España España';
+    $a =~ s/ñ/ñ/;
+    like($a, qr/ñ/, "use utf8 LHS");
+}
+
+{
+    use utf8;
+    $a = 'España';
+    $a =~ s/ñ/ñ/;
+    like($a, qr/ñ/, "use utf8 LHS and RHS");
+}
+