Re: [perl #20912] UTF8 related glitch + fix
Adrian M. Enache [Sat, 15 Feb 2003 00:37:40 +0000 (02:37 +0200)]
Message-ID: <20030214223740.GA13575@ratsnest.hole>

p4raw-id: //depot/perl@18708

pp.c
t/op/split.t

diff --git a/pp.c b/pp.c
index 4fbcad4..0d531dc 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -4427,6 +4427,7 @@ PP(pp_split)
            }
            /* temporarily switch stacks */
            SWITCHSTACK(PL_curstack, ary);
+           PL_curstackinfo->si_stack = ary;
            make_mortal = 0;
        }
     }
@@ -4624,6 +4625,7 @@ PP(pp_split)
     if (realarray) {
        if (!mg) {
            SWITCHSTACK(ary, oldstack);
+           PL_curstackinfo->si_stack = oldstack;
            if (SvSMAGICAL(ary)) {
                PUTBACK;
                mg_set((SV*)ary);
index 5b8535c..3d7e898 100755 (executable)
@@ -6,7 +6,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan tests => 49;
+plan tests => 50;
 
 $FS = ':';
 
@@ -276,3 +276,10 @@ ok(@ary == 3 &&
        is(join (':',@d), 'readin:database:readout', "[perl #18195]")
     }
 }
+
+{
+    $p="a,b";
+    utf8::upgrade $p;
+    @a=split(/[, ]+/,$p);
+    is ("$@-@a-", '-a b-', '#20912 - split() to array with /[]+/ and utf8');
+}