return unless defined $i && $i >= 0;
+ # Back up at a blank in case we need an = break.
+ # This is a backup fix for cases like b932.
+ if ( $i > 0 && $types_to_go[$i] eq 'b' ) { $i-- }
+
# no breaks between welded tokens
return if ( $self->weld_len_right_to_go($i) );
my $test2 = $nesting_depth_to_go[$i_start_2];
if ( $test2 == $test1 ) {
- $self->set_forced_breakpoint(
- $i_start_2 - 1 );
+ # Back up at a blank (fixes case b932)
+ my $ibr = $i_start_2 - 1;
+ if ( $ibr > 0
+ && $types_to_go[$ibr] eq 'b' )
+ {
+ $ibr--;
+ }
+
+ $self->set_forced_breakpoint($ibr);
+
}
} ## end if ( defined($i_start_2...))
} ## end if ( defined($item) )
=over 4
+=item B<Fix problem with combination -lp and -wbb='='>
+
+Random testing produced case b932 in which the combination -lp and -wbb='='
+was not stable.
+
+File 'b932.par' is:
+
+ --line-up-parentheses
+ --maximum-line-length=51
+ --want-break-before='='
+
+File 'b932.in' in the desired state is:
+
+ my @parts
+ = decompose( '(\s+|/|\!|=)',
+ $line, undef, 1, undef, '["\']' );
+
+The alternate state is
+
+ my @parts = decompose( '(\s+|/|\!|=)',
+ $line, undef, 1, undef, '["\']' );
+
+The problem was that the -lp code which set a line break at the equals did not
+check the -wba flag setting.
+
+This update fixes case b932.
+
+7 Mar 2021.
+
=item B<Fix edge formatting cases with parameter -bbx=2>
Random testing produced some cases where formatting with parameters of the form
line-ending comma. This insures that the list will remain broken on subsequent
iterations. This fixes cases b789 and b938.
-6 Mar 2021.
+6 Mar 2021, 360d669.
=item B<Add flag -fpva, --function-paren-vertical-alignment>