]> git.donarmstrong.com Git - perltidy.git/commitdiff
fix b1282, b1283: instability with -pvtc=2 -dws -naws
authorSteve Hancock <perltidy@users.sourceforge.net>
Sat, 8 Jan 2022 15:20:42 +0000 (07:20 -0800)
committerSteve Hancock <perltidy@users.sourceforge.net>
Sat, 8 Jan 2022 15:20:42 +0000 (07:20 -0800)
dev-bin/run_convergence_tests.pl.data
lib/Perl/Tidy/Formatter.pm

index 0acd8aa250d2b09f59b793f96ad9ea3d849cc2e4..ed29a88d30879906176f27f3a015ad8f81baa8a4 100644 (file)
@@ -8769,6 +8769,41 @@ use overload
 ==> b1280.par <==
 --brace-left-and-indent
 
+==> b1283.in <==
+       $_=join(
+              '',$_,
+              (
+                     (      $MAX_SPLIT_DEPTH<=$section_commands{
+                                   $outermost_level} )?"\n<HR>\n":'' ),
+              "\\$outermost_level",
+              "*",
+              "$O$X$C$O$Y$C\\infopagename$O$Y$C$O$X$C\n",
+              ,
+              " \\textohtmlinfopage" );
+
+       $_=join(
+              '',$_,
+              (      ($MAX_SPLIT_DEPTH<=
+                              $section_commands{$outermost_level})?
+                       "\n<HR>\n":'' ),
+              "\\$outermost_level",
+              "*",
+              "$O$X$C$O$Y$C\\infopagename$O$Y$C$O$X$C\n",
+              ,
+              " \\textohtmlinfopage" );
+
+==> b1283.par <==
+--noadd-whitespace
+--delete-old-whitespace
+--indent-columns=7
+--maximum-line-length=71
+--paren-vertical-tightness=2
+--nospace-function-paren
+--nospace-keyword-paren
+--nostack-closing-paren
+--stack-opening-paren
+--vertical-tightness-closing=2
+
 ==> b1284.in <==
 # S1
                      if (   ($before)
index 2e960f659c694e47ef022feaa3f83db506f7f60a..0008c0f2767415847c607653c5329c51a3f25dea 100644 (file)
@@ -24959,6 +24959,15 @@ sub set_vertical_tightness_flags {
                 $cvt = $self->[_ris_assigned_structure_]->{$seqno} ? 0 : 1;
             }
 
+            # The unusual combination -pvtc=2 -dws -naws can be unstable.
+            # This fixes b1282, b1283.  This can be moved to set_options.
+            if (   $cvt == 2
+                && $rOpts_delete_old_whitespace
+                && !$rOpts_add_whitespace )
+            {
+                $cvt = 1;
+            }
+
             if (
 
                 # Never append a trailing line like   ')->pack(' because it