From d3debd978ca69abec8d4b6aaacf3d98586655616 Mon Sep 17 00:00:00 2001 From: Steve Hancock Date: Thu, 3 Nov 2022 17:28:56 -0700 Subject: [PATCH] mark files with errors as converged to clarify error messages --- CHANGES.md | 4 ++++ lib/Perl/Tidy/Formatter.pm | 11 ++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 75adf91a..22b28f85 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -120,6 +120,10 @@ --delete-trailing-commas, -dtc --delete-weld-interfering-commas, -dwic + - Files with errors due to missing, extra or misplaced parens, braces, + or square brackets are now written back out verbatim, without any + attempt at formatting. + - This version runs 10 to 15 percent faster than the previous release on large files due to optimizations made with the help of Devel::NYTProf. diff --git a/lib/Perl/Tidy/Formatter.pm b/lib/Perl/Tidy/Formatter.pm index 919e8c11..b9b420d9 100644 --- a/lib/Perl/Tidy/Formatter.pm +++ b/lib/Perl/Tidy/Formatter.pm @@ -5799,7 +5799,7 @@ EOM # output file verbatim if severe error or no formatting requested if ( $severe_error || $rOpts->{notidy} ) { $self->dump_verbatim(); - $self->wrapup(); + $self->wrapup($severe_error); return; } @@ -25216,7 +25216,7 @@ sub get_seqno { # Patch for rt144979, part 2. Coordinated with part 1. # Skip cuddled braces. - my $seqno_beg = $type_sequence_to_go[$ibeg]; + my $seqno_beg = $type_sequence_to_go[$ibeg]; my $is_cuddled_closing_brace = $seqno_beg && $self->[_ris_cuddled_closing_brace_]->{$seqno_beg}; @@ -28632,7 +28632,7 @@ sub wrapup { # This is the last routine called when a file is formatted. # Flush buffer and write any informative messages - my $self = shift; + my ( $self, $severe_error ) = @_; $self->flush(); my $file_writer_object = $self->[_file_writer_object_]; @@ -28773,8 +28773,9 @@ sub wrapup { # Define the formatter self-check for convergence. $self->[_converged_] = - ( $file_writer_object->get_convergence_check() - || $rOpts->{'indent-only'} ); + $severe_error + || $file_writer_object->get_convergence_check() + || $rOpts->{'indent-only'}; return; } ## end sub wrapup -- 2.39.5