]> git.donarmstrong.com Git - perltidy.git/commitdiff
simplify logfile switches
authorSteve Hancock <perltidy@users.sourceforge.net>
Mon, 20 Nov 2023 15:42:50 +0000 (07:42 -0800)
committerSteve Hancock <perltidy@users.sourceforge.net>
Mon, 20 Nov 2023 15:42:50 +0000 (07:42 -0800)
lib/Perl/Tidy/FileWriter.pm
lib/Perl/Tidy/Formatter.pm
lib/Perl/Tidy/Logger.pm
lib/Perl/Tidy/Tokenizer.pm

index 8a0bac1def0f900673909263bc86557b2d1015cd..c01cc9a7da512dc5999ce90d562a25864524aef9 100644 (file)
@@ -169,8 +169,8 @@ sub new {
     $self->[_K_arrival_order_matches_]     = 0;
     $self->[_K_sequence_error_msg_]        = EMPTY_STRING;
     $self->[_K_last_arrival_]              = -1;
-    $self->[_save_logfile_]                = defined($logger_object);
-    $self->[_routput_string_]              = undef;
+    $self->[_save_logfile_] =
+      defined($logger_object) && $logger_object->get_save_logfile();
 
     # '$line_sink_object' is a SCALAR ref which receives the lines.
     my $ref = ref($line_sink_object);
@@ -252,14 +252,6 @@ sub reset_consecutive_blank_lines {
     return;
 }
 
-# This sub call allows termination of logfile writing for efficiency when we
-# know that the logfile will not be saved.
-sub set_save_logfile {
-    my ( $self, $save_logfile ) = @_;
-    $self->[_save_logfile_] = $save_logfile;
-    return;
-}
-
 sub want_blank_line {
     my $self = shift;
     if ( !$self->[_consecutive_blank_lines_] ) {
index fe006c8b8a03bdc73c56ff6de69d1de4ff97824a..834b4329e1cd5d02d9f6c562042b3869b758cd22 100644 (file)
@@ -1082,8 +1082,8 @@ sub new {
     $self->[_no_vertical_tightness_flags_] = 0;
     $self->[_last_vt_type_]                = 0;
 
-    # This flag will be updated later by a call to get_save_logfile()
-    $self->[_save_logfile_] = defined($logger_object);
+    $self->[_save_logfile_] =
+      defined($logger_object) && $logger_object->get_save_logfile();
 
     # Be sure all variables in $self have been initialized above.  To find the
     # correspondence of index numbers and array names, copy a list to a file
@@ -1246,11 +1246,15 @@ sub check_token_array {
     sub check_line_hashes {
         my $self   = shift;
         my $rlines = $self->[_rlines_];
+
+        # Note that the keys ending in _0 are only required when a logfile
+        # is being saved, so we will just check for unknown keys, but not
+        # require an exact match.
         foreach my $rline ( @{$rlines} ) {
             my $iline     = $rline->{_line_number};
             my $line_type = $rline->{_line_type};
             check_keys( $rline, \%valid_line_hash,
-                "Checkpoint: line number =$iline,  line_type=$line_type", 1 );
+                "Checkpoint: line number =$iline,  line_type=$line_type", 0 );
         }
         return;
     } ## end sub check_line_hashes
@@ -6306,13 +6310,15 @@ EOM
         # Need to remember if we can trim the input line
         $line_of_tokens->{_ended_in_blank_token} = $rtoken_type->[$jmax] eq 'b';
 
-        # Values needed by Logger
-        $line_of_tokens->{_level_0}    = $rlevels->[0];
-        $line_of_tokens->{_ci_level_0} = 0;               # fix later
-        $line_of_tokens->{_nesting_blocks_0} =
-          $line_of_tokens_old->{_nesting_blocks_0};
-        $line_of_tokens->{_nesting_tokens_0} =
-          $line_of_tokens_old->{_nesting_tokens_0};
+        # Values needed by Logger if a logfile is saved:
+        if ( $self->[_save_logfile_] ) {
+            $line_of_tokens->{_level_0}    = $rlevels->[0];
+            $line_of_tokens->{_ci_level_0} = 0;               # fix later
+            $line_of_tokens->{_nesting_blocks_0} =
+              $line_of_tokens_old->{_nesting_blocks_0};
+            $line_of_tokens->{_nesting_tokens_0} =
+              $line_of_tokens_old->{_nesting_tokens_0};
+        }
 
         return;
 
@@ -6368,16 +6374,6 @@ EOM
         return 1;
     }
 
-    # Update the 'save_logfile' flag based to include any tokenization errors.
-    # We can save time by skipping logfile calls if it is not going to be saved.
-    my $logger_object = $self->[_logger_object_];
-    if ($logger_object) {
-        my $save_logfile = $logger_object->get_save_logfile();
-        $self->[_save_logfile_] = $save_logfile;
-        my $file_writer_object = $self->[_file_writer_object_];
-        $file_writer_object->set_save_logfile($save_logfile);
-    }
-
     {
         my $rix_side_comments = $self->set_CODE_type();
 
index 48a33f600e0bbf1fc92effc1b573cb979f02cae9..fc66de6c21648694a3dd1dc060aa39cde42f3aec 100644 (file)
@@ -463,9 +463,6 @@ sub report_definite_bug {
 }
 
 sub get_save_logfile {
-
-    # Returns a true/false flag indicating whether or not
-    # the logfile will be saved.
     my $self = shift;
     return $self->{_save_logfile};
 } ## end sub get_save_logfile
index ac1a206b14e4d618e8c1f57c04eacce20f3b7f42..64a386d3f97007c7afc0ec8ebcd5d14571482703 100644 (file)
@@ -586,7 +586,7 @@ EOM
     $self->[_true_brace_error_count_]             = 0;
     $self->[_rOpts_]                              = $rOpts;
     $self->[_save_logfile_] =
-      $logger_object ? $logger_object->get_save_logfile : 0;
+      defined($logger_object) && $logger_object->get_save_logfile();
 
     bless $self, $class;