]> git.donarmstrong.com Git - perltidy.git/commitdiff
do not create a zero length file by deleting semicolons
authorSteve Hancock <perltidy@users.sourceforge.net>
Mon, 14 Sep 2020 00:37:32 +0000 (17:37 -0700)
committerSteve Hancock <perltidy@users.sourceforge.net>
Mon, 14 Sep 2020 00:37:32 +0000 (17:37 -0700)
lib/Perl/Tidy/Formatter.pm

index 06136cb9bb4370b34410f29fd95ef0a4be109df5..0ebd46487dd75292ca301fd579f0103de36da75a 100644 (file)
@@ -2380,6 +2380,7 @@ sub respace_tokens {
     my $last_nonblank_type       = ';';
     my $last_nonblank_token      = ';';
     my $last_nonblank_block_type = '';
+    my $nonblank_token_count     = 0;
     my $store_token              = sub {
         my ($item) = @_;
 
@@ -2448,6 +2449,7 @@ sub respace_tokens {
             $last_nonblank_type       = $type;
             $last_nonblank_token      = $item->[_TOKEN_];
             $last_nonblank_block_type = $item->[_BLOCK_TYPE_];
+            $nonblank_token_count++;
         }
 
         # and finally, add this item to the new array
@@ -3062,6 +3064,12 @@ sub respace_tokens {
                         }
                     }
 
+                    # do not delete only nonblank token in a file
+                    else {
+                        my $Kn = $self->K_next_nonblank($KK);
+                        $ok_to_delete = defined($Kn) || $nonblank_token_count;
+                    }
+
                     if ($ok_to_delete) {
                         $self->note_deleted_semicolon($input_line_number);
                         next;