From: Steve Hancock Date: Mon, 20 Nov 2023 15:42:50 +0000 (-0800) Subject: simplify logfile switches X-Git-Tag: 20230912.06~21 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=f876691904c3646a32962d5a25f12ce051ad7ebb;p=perltidy.git simplify logfile switches --- diff --git a/lib/Perl/Tidy/FileWriter.pm b/lib/Perl/Tidy/FileWriter.pm index 8a0bac1d..c01cc9a7 100644 --- a/lib/Perl/Tidy/FileWriter.pm +++ b/lib/Perl/Tidy/FileWriter.pm @@ -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_] ) { diff --git a/lib/Perl/Tidy/Formatter.pm b/lib/Perl/Tidy/Formatter.pm index fe006c8b..834b4329 100644 --- a/lib/Perl/Tidy/Formatter.pm +++ b/lib/Perl/Tidy/Formatter.pm @@ -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(); diff --git a/lib/Perl/Tidy/Logger.pm b/lib/Perl/Tidy/Logger.pm index 48a33f60..fc66de6c 100644 --- a/lib/Perl/Tidy/Logger.pm +++ b/lib/Perl/Tidy/Logger.pm @@ -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 diff --git a/lib/Perl/Tidy/Tokenizer.pm b/lib/Perl/Tidy/Tokenizer.pm index ac1a206b..64a386d3 100644 --- a/lib/Perl/Tidy/Tokenizer.pm +++ b/lib/Perl/Tidy/Tokenizer.pm @@ -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;