X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FAbstract%2FFormatter.pm;h=0f0daf31640debd50265845dad089f7cfda2945c;hb=116bc0b69bc3d55647a4e195cf212a6af38ba5b8;hp=4b1dc3c71535c45c70c51606fa46dfe2c23e59da;hpb=9046a418c7377ede3d99d1450158cde55a3bab26;p=scpubgit%2FQ-Branch.git diff --git a/lib/SQL/Abstract/Formatter.pm b/lib/SQL/Abstract/Formatter.pm index 4b1dc3c..0f0daf3 100644 --- a/lib/SQL/Abstract/Formatter.pm +++ b/lib/SQL/Abstract/Formatter.pm @@ -40,17 +40,18 @@ sub _fold_sql { my $line_proto = $indent.$nl_post; PART: foreach my $idx (0..$#parts) { my $p = $parts[$idx]; +#::DwarnT STARTPART => $p, \@res, $line, $line_orig; my $pre = ($line ne $line_orig ? $join : ''); my $j_part = $pre.(my $j = ref($p) ? $self->_join(@$p) : $p); if (length($j_part) + length($line) + $join_len <= $w) { $line .= $j_part; next PART; } + my $innerdent = @res + ? $next_indent + : $indent0.$self->indent_by; if (ref($p) and $p->[1] eq '(' and $p->[-1] eq ')') { my $already = !($line eq $indent0 or $line eq $line_orig); - my $innerdent = @res - ? $next_indent - : $indent0.$self->indent_by; push @res, $line.($already ? $join : '').'('."\n"; my (undef, undef, $inner) = @$p; my $folded = $self->_fold_sql($innerdent, $innerdent, @$inner); @@ -66,11 +67,12 @@ sub _fold_sql { if (length($line = $line_proto.$j) <= $w) { next PART; } - my $innerdent = @res ? $indent : $next_indent; my $folded = $self->_fold_sql($line_proto, $innerdent, @$p); $folded =~ s/\n\Z//; push @res, $folded.($idx == $#parts ? '' : $nl_pre)."\n"; $line_orig = $line = $idx == $#parts ? '' : $line_proto; + } continue { +#::DwarnT ENDPART => $parts[$idx], \@res, $line, $line_orig; } return join '', @res, $line; }