summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/Data/Dumper/Dumper.xs2
-rwxr-xr-xext/Data/Dumper/t/dumper.t17
2 files changed, 16 insertions, 3 deletions
diff --git a/ext/Data/Dumper/Dumper.xs b/ext/Data/Dumper/Dumper.xs
index b9fb54b978..8fc7ac35a1 100644
--- a/ext/Data/Dumper/Dumper.xs
+++ b/ext/Data/Dumper/Dumper.xs
@@ -137,7 +137,7 @@ esc_q_utf8(pTHX_ SV* sv, register char *src, register STRLEN slen)
r[0] = r[j++] = '"';
else
r[0] = r[j++] = '\'';
- r[j++] = '\0';
+ r[j] = '\0';
SvCUR_set(sv, SvCUR(sv) + j);
return j;
diff --git a/ext/Data/Dumper/t/dumper.t b/ext/Data/Dumper/t/dumper.t
index 10add1cedb..bf0722977f 100755
--- a/ext/Data/Dumper/t/dumper.t
+++ b/ext/Data/Dumper/t/dumper.t
@@ -61,11 +61,11 @@ sub TEST {
if (defined &Data::Dumper::Dumpxs) {
print "### XS extension loaded, will run XS tests\n";
- $TMAX = 186; $XS = 1;
+ $TMAX = 192; $XS = 1;
}
else {
print "### XS extensions not loaded, will NOT run XS tests\n";
- $TMAX = 93; $XS = 0;
+ $TMAX = 96; $XS = 0;
}
print "1..$TMAX\n";
@@ -808,3 +808,16 @@ TEST q(Data::Dumper->new([$b],['b'])->Purity(1)->Dump;);
TEST q(Data::Dumper->new([$b],['b'])->Purity(1)->Dumpxs;)
if $XS;
}
+
+{
+ $a = "\x{09c10}";
+############# 187
+## XS code was adding an extra \0
+ $WANT = <<'EOT';
+#$a = "\x{9c10}";
+EOT
+
+ TEST q(Data::Dumper->Dump([$a], ['a']));
+ TEST q(Data::Dumper->Dumpxs([$a], ['a']));
+
+}