]> git.donarmstrong.com Git - perltidy.git/commitdiff
eliminate global var standard_spaces
authorSteve Hancock <perltidy@users.sourceforge.net>
Thu, 14 Apr 2022 21:56:15 +0000 (14:56 -0700)
committerSteve Hancock <perltidy@users.sourceforge.net>
Thu, 14 Apr 2022 21:56:15 +0000 (14:56 -0700)
lib/Perl/Tidy/Formatter.pm
lib/Perl/Tidy/IndentationItem.pm

index 17e9d233c27ae15ebcd7e2be42df5477a8c8dd18..bd7cdd210485afa1afe77b584f2b976aa66907c0 100644 (file)
@@ -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(<<EOM);
 sequence numbers differ; at CLOSING line $iline, seq=$seqno, Kc=$KK .. at OPENING line $iline_o, seq=$seqno_o, Ko=$K_o, expecting Kc=$K_c_expect
 EOM
@@ -12418,8 +12420,6 @@ EOM
             $leading_spaces_to_go[$max_index_to_go] =
               $reduced_spaces + $rOpts_continuation_indentation * $ci_level;
         }
-        $standard_spaces_to_go[$max_index_to_go] =
-          $leading_spaces_to_go[$max_index_to_go];
 
         DEBUG_STORE && do {
             my ( $a, $b, $c ) = caller();
@@ -19050,10 +19050,9 @@ EOM
                     if ( ref($indentation)
                         && $ris_broken_container->{$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 {
index 5230626fe66498e8d96b4166d6e8c3e01f6c69a1..319b43806ecfa09801d2eed68095013fd6b33576 100644 (file)
@@ -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_];
 }