]> git.donarmstrong.com Git - perltidy.git/commitdiff
fix c169
authorSteve Hancock <perltidy@users.sourceforge.net>
Mon, 27 Feb 2023 17:43:53 +0000 (09:43 -0800)
committerSteve Hancock <perltidy@users.sourceforge.net>
Mon, 27 Feb 2023 17:43:53 +0000 (09:43 -0800)
dev-bin/run_convergence_tests.pl.data
dev-bin/run_convergence_tests.pl.expect
lib/Perl/Tidy/Formatter.pm

index d95eb88d79e3888a5b6c14525ccaf41675028415..804e9538bdbbd0580b1a4d6e1961e5dd2071922c 100644 (file)
@@ -18095,6 +18095,14 @@ s/^([^\t]*)(\t+)/$1.(" " x ((length($2)<<3)-(length($1)&7)))/e )
 ==> c100.par <==
 # default settings
 
+==> c169.in <==
+    eval "format OUT19 = \n" . '@<<<' . "\0\n" . '$v' . "\n" . '@<<<' . "\0\n"
+      . '$v'
+      . "\n.\n";
+
+==> c169.par <==
+# default settings
+
 ==> c190.in <==
         # reverse sweep needs to look at '$saw_level_change' for these cases
         local($codeA) = "sub wrap_cmd_$cmd {" . "\n"
index 4d23105f34a0a085a39893fe3e44a2863c44a8d4..4b9839940dc5c792734e2fcbdc976dac4086cfc0 100644 (file)
@@ -11190,6 +11190,10 @@ s/^([^\t]*)(\t+)/$1.(" " x ((length($2)<<3)-(length($1)&7)))/e )
                 # Stable (note ';' before '#' )
                 eval { substr( $$textref, $_[4], $_[1] + $_[5] ) = $extra; }; # need to check for sort_map_grep_eval in starting_one_line_block
 
+==> c169 <==
+    eval "format OUT19 = \n" . '@<<<' . "\0\n" . '$v' . "\n" . '@<<<' . "\0\n"
+      . '$v' . "\n.\n";
+
 ==> c190 <==
         # reverse sweep needs to look at '$saw_level_change' for these cases
         local ($codeA)
index 24c59ef912b012f56484c5aa01a003ac8f581be5..c782d158c3d10ccc959369eb490133f45b981d28 100644 (file)
@@ -19600,6 +19600,7 @@ EOM
               $summed_lengths_to_go[$ibeg_1];
             my $summed_len_2 = $summed_lengths_to_go[ $iend_2 + 1 ] -
               $summed_lengths_to_go[$ibeg_2];
+
             return
               unless (
 
@@ -19626,8 +19627,18 @@ EOM
                     $rOpts_short_concatenation_item_length
 
                     #  additional constraints to fix c167
-                    && (   $types_to_go[$iend_1] ne 'Q'
-                        || $summed_len_2 < $summed_len_1 )
+                    && (
+                        $types_to_go[$iend_1] ne 'Q'
+
+                        # allow a term shorter than the previous term
+                        || $summed_len_2 < $summed_len_1
+
+                        # or allow a short semicolon-terminated term if this
+                        # makes two lines (see c169)
+                        || (   $n == 2
+                            && $n == $nmax
+                            && $this_line_is_semicolon_terminated )
+                    )
                 )
               );
         }