summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2000-04-24 06:37:59 +0000
committerGurusamy Sarathy <gsar@cpan.org>2000-04-24 06:37:59 +0000
commit8dbfaa5d36ec189ba6941f2f7fc195eeb1133e3f (patch)
tree1553cc350dad823bf724a9084cab58ddc16631d2
parentf542ffb367db39e7b23dc65e66936110ad283e81 (diff)
downloadperl-8dbfaa5d36ec189ba6941f2f7fc195eeb1133e3f.tar.gz
Larry's fix for buggy propagation of utf8-ness in join(); add test
p4raw-id: //depot/perl@5920
-rw-r--r--doop.c9
-rwxr-xr-xt/op/ver.t7
2 files changed, 9 insertions, 7 deletions
diff --git a/doop.c b/doop.c
index 06b1b38d5c..4224b0ea13 100644
--- a/doop.c
+++ b/doop.c
@@ -660,12 +660,9 @@ Perl_do_join(pTHX_ register SV *sv, SV *del, register SV **mark, register SV **s
if (items-- > 0) {
char *s;
- if (*mark) {
- s = SvPV(*mark, tmplen);
- sv_setpvn(sv, s, tmplen);
- }
- else
- sv_setpv(sv, "");
+ sv_setpv(sv, "");
+ if (*mark)
+ sv_catsv(sv, *mark);
mark++;
}
else
diff --git a/t/op/ver.t b/t/op/ver.t
index b08849f53a..5346f392ce 100755
--- a/t/op/ver.t
+++ b/t/op/ver.t
@@ -5,7 +5,7 @@ BEGIN {
unshift @INC, "../lib";
}
-print "1..22\n";
+print "1..23\n";
my $test = 1;
@@ -72,6 +72,11 @@ print "not " unless sprintf("%*vb", "##", v1.22.333.4444)
eq '1##10110##101001101##1000101011100';
print "ok $test\n"; ++$test;
+print "not " unless sprintf("%vd", join("", map { chr }
+ unpack "U*", v2001.2002.2003))
+ eq '2001.2002.2003';
+print "ok $test\n"; ++$test;
+
{
use bytes;
print "not " unless sprintf("%vd", "Perl") eq '80.101.114.108';