diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/Data/Dumper/Dumper.xs | 2 | ||||
-rwxr-xr-x | ext/Data/Dumper/t/dumper.t | 17 |
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'])); + +} |