summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian M. Enache <enache@rdslink.ro>2003-02-15 02:37:40 +0200
committerJarkko Hietaniemi <jhi@iki.fi>2003-02-15 07:31:17 +0000
commit3b0d546b549c81b8fd7281af083002e289e306d6 (patch)
tree597230b346122f870ae653674c97196b6156302a
parent72ac79b36fc2613b9b03b8424fe60fdaa5759b16 (diff)
downloadperl-3b0d546b549c81b8fd7281af083002e289e306d6.tar.gz
Re: [perl #20912] UTF8 related glitch + fix
Message-ID: <20030214223740.GA13575@ratsnest.hole> p4raw-id: //depot/perl@18708
-rw-r--r--pp.c2
-rwxr-xr-xt/op/split.t9
2 files changed, 10 insertions, 1 deletions
diff --git a/pp.c b/pp.c
index 4fbcad44f8..0d531dce18 100644
--- 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);
diff --git a/t/op/split.t b/t/op/split.t
index 5b8535c2dd..3d7e89880b 100755
--- a/t/op/split.t
+++ b/t/op/split.t
@@ -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');
+}