From: Steve Hancock Date: Fri, 4 Nov 2022 00:28:56 +0000 (-0700) Subject: mark files with errors as converged to clarify error messages X-Git-Tag: 20221112~9 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=d3debd978ca69abec8d4b6aaacf3d98586655616;p=perltidy.git mark files with errors as converged to clarify error messages --- 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