foreach my $p (@$ps) {
$prline->(" VanillaMerge ".$p->{Ix});
if (!is_fast_fwd $p->{Anchor}, $best_anchor) {
- $nomerge->('DivergentAnchor');
+ $nomerge->('divergent anchors');
} elsif ($p->{Anchor} eq $best_anchor) {
print $report " SameAnchor" if $report;
} else {
}
if ($ok && $might_be_in_bw) {
+ # We could rewrite this to contaion the metadata
+ # declaring it to be MergedBreakwaters, but
+ # unnecessarily rewriting a merge seems unhelpful.
$prline->(" VanillaMerge MergedBreakwaters");
$last_anchor = $best_anchor;
$build_start->('MergedBreakwaters', $cur);
# breakwater merge base as an ancestor.
my @ibs =
- grep { is_fast_fwd $bwb, $_ }
grep /./,
split /\n/,
cmdoutput @ibcmd;
- my ($ib) = @ibs
- or $nomerge->("no suitable interchange merge base");
+
+ @ibs or confess 'internal error, expected anchor at least ?';
+
+ my $ib;
+ foreach my $tibix (0..$#ibs) {
+ my $tib = $ibs[$tibix];
+ my $ff = is_fast_fwd $bwb, $tib;
+ next unless $ff;
+ next if $ib;
+ $ib = $tib;
+ }
+
+ $ib or $nomerge->("no suitable interchange merge base");
$prline->(" VanillaMerge Base");
$prprdelim->();