diff options
author | Michael G. Schwern <schwern@pobox.com> | 2010-04-15 21:29:43 +0200 |
---|---|---|
committer | Steffen Mueller <smueller@cpan.org> | 2010-04-15 21:29:43 +0200 |
commit | d34e9bd940817db5ea805b524c18753a4f24a180 (patch) | |
tree | ca2c22bbbc445d8fa3592981dac91bb06b58c967 /dist/Data-Dumper | |
parent | 5dec12c4fe365d1f431b0a1b786bfae24693e847 (diff) | |
download | perl-d34e9bd940817db5ea805b524c18753a4f24a180.tar.gz |
Fix Data::Dumper's Fix Terse(1) + Indent(2)
RT #73604: When $Data::Dumper::Terse is true, the indentation is thrown
off. It appears to be acting as if the $VAR1 = is still there.
Diffstat (limited to 'dist/Data-Dumper')
-rw-r--r-- | dist/Data-Dumper/Dumper.pm | 2 | ||||
-rw-r--r-- | dist/Data-Dumper/Dumper.xs | 4 | ||||
-rw-r--r-- | dist/Data-Dumper/t/terse.t | 22 |
3 files changed, 25 insertions, 3 deletions
diff --git a/dist/Data-Dumper/Dumper.pm b/dist/Data-Dumper/Dumper.pm index 0eb8bf74fd..91b335bc88 100644 --- a/dist/Data-Dumper/Dumper.pm +++ b/dist/Data-Dumper/Dumper.pm @@ -234,7 +234,7 @@ sub Dumpperl { my $valstr; { local($s->{apad}) = $s->{apad}; - $s->{apad} .= ' ' x (length($name) + 3) if $s->{indent} >= 2; + $s->{apad} .= ' ' x (length($name) + 3) if $s->{indent} >= 2 and !$s->{terse}; $valstr = $s->_dump($val, $name); } diff --git a/dist/Data-Dumper/Dumper.xs b/dist/Data-Dumper/Dumper.xs index e3867a1838..f2c18211c8 100644 --- a/dist/Data-Dumper/Dumper.xs +++ b/dist/Data-Dumper/Dumper.xs @@ -1179,7 +1179,7 @@ Data_Dumper_Dumpxs(href, ...) sv_catpvn(name, tmpbuf, nchars); } - if (indent >= 2) { + if (indent >= 2 && !terse) { SV * const tmpsv = sv_x(aTHX_ NULL, " ", 1, SvCUR(name)+3); newapad = newSVsv(apad); sv_catsv(newapad, tmpsv); @@ -1193,7 +1193,7 @@ Data_Dumper_Dumpxs(href, ...) freezer, toaster, purity, deepcopy, quotekeys, bless, maxdepth, sortkeys); - if (indent >= 2) + if (indent >= 2 && !terse) SvREFCNT_dec(newapad); postlen = av_len(postav); diff --git a/dist/Data-Dumper/t/terse.t b/dist/Data-Dumper/t/terse.t new file mode 100644 index 0000000000..8d3ad48894 --- /dev/null +++ b/dist/Data-Dumper/t/terse.t @@ -0,0 +1,22 @@ +#!perl +use strict; +use warnings; + +use Test::More tests => 2; + +use Data::Dumper; + +my $hash = { foo => 42 }; + +for my $useperl (0..1) { + my $dumper = Data::Dumper->new([$hash]); + $dumper->Terse(1); + $dumper->Indent(2); + $dumper->Useperl($useperl); + + is $dumper->Dump, <<'WANT', "Terse(1), Indent(2), Useperl($useperl)"; +{ + 'foo' => 42 +} +WANT +} |