From: Steve Hancock Date: Thu, 14 Apr 2022 21:56:15 +0000 (-0700) Subject: eliminate global var standard_spaces X-Git-Tag: 20220217.03~4 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=cb37e0d527a9618f463f9aca5a7bab1c716f3dab;p=perltidy.git eliminate global var standard_spaces --- diff --git a/lib/Perl/Tidy/Formatter.pm b/lib/Perl/Tidy/Formatter.pm index 17e9d233..bd7cdd21 100644 --- a/lib/Perl/Tidy/Formatter.pm +++ b/lib/Perl/Tidy/Formatter.pm @@ -333,7 +333,6 @@ my ( @levels_to_go, @leading_spaces_to_go, @reduced_spaces_to_go, - @standard_spaces_to_go, @mate_index_to_go, @ci_levels_to_go, @nesting_depth_to_go, @@ -10968,7 +10967,9 @@ sub collapsed_lengths { #---------------------------- # Entering a new container... #---------------------------- - if ( $is_opening_token{$token} ) { + if ( $is_opening_token{$token} + && defined( $K_closing_container->{$seqno} ) ) + { # save current prong length $stack[-1]->[_max_prong_len_] = $max_prong_len; @@ -11081,9 +11082,10 @@ sub collapsed_lengths { if ( $seqno_o ne $seqno ) { - # Shouldn't happen - must have skipped some lines. - # Not fatal but -lp formatting could get messed up. - if (DEVEL_MODE) { + # This can happen if input file has brace errors. + # Otherwise it shouldn't happen. Not fatal but -lp + # formatting could get messed up. + if ( DEVEL_MODE && !get_saw_brace_error() ) { Fault(<{$type_sequence} ) { - my $lp_spaces = $indentation->get_spaces(); - my $std_spaces = - $standard_spaces_to_go[$i_opening_minus]; - my $diff = $std_spaces - $lp_spaces; + my $lp_spaces = $indentation->get_spaces(); + my $std_spaces = $indentation->get_standard_spaces(); + my $diff = $std_spaces - $lp_spaces; if ( $diff > 0 ) { $excess += $diff } } @@ -20998,12 +20997,13 @@ sub get_available_spaces_to_go { #----------------------------------- foreach my $ii ( $imin .. $max_index_to_go ) { - my $KK = $K_to_go[$ii]; - my $type = $types_to_go[$ii]; - my $token = $tokens_to_go[$ii]; - my $level = $levels_to_go[$ii]; - my $ci_level = $ci_levels_to_go[$ii]; - my $total_depth = $nesting_depth_to_go[$ii]; + my $KK = $K_to_go[$ii]; + my $type = $types_to_go[$ii]; + my $token = $tokens_to_go[$ii]; + my $level = $levels_to_go[$ii]; + my $ci_level = $ci_levels_to_go[$ii]; + my $total_depth = $nesting_depth_to_go[$ii]; + my $standard_spaces = $leading_spaces_to_go[$ii]; #-------------------------------------------------- # Adjust levels if necessary to recycle whitespace: @@ -21490,6 +21490,7 @@ EOM align_seqno => $align_seqno, stack_depth => $max_lp_stack, K_begin_line => $K_begin_line, + standard_spaces => $standard_spaces, ); DEBUG_LP && do { diff --git a/lib/Perl/Tidy/IndentationItem.pm b/lib/Perl/Tidy/IndentationItem.pm index 5230626f..319b4380 100644 --- a/lib/Perl/Tidy/IndentationItem.pm +++ b/lib/Perl/Tidy/IndentationItem.pm @@ -30,6 +30,7 @@ BEGIN { _stack_depth_ => $i++, _K_begin_line_ => $i++, _arrow_count_ => $i++, + _standard_spaces_ => $i++, }; } @@ -100,6 +101,7 @@ sub new { $self->[_stack_depth_] = $input_hash{stack_depth}; $self->[_K_begin_line_] = $input_hash{K_begin_line}; $self->[_arrow_count_] = 0; + $self->[_standard_spaces_] = $input_hash{standard_spaces}; bless $self, $class; return $self; @@ -155,6 +157,10 @@ sub get_spaces { return $_[0]->[_spaces_]; } +sub get_standard_spaces { + return $_[0]->[_standard_spaces_]; +} + sub get_marked { return $_[0]->[_marked_]; }