-foreach $_ (@order) {
- my $ff = $flag{$_};
- if (!defined $ff->{Result}) {
- my $s = '';
- foreach my $ix (qw(0 1 2)) {
- $ff->{Input}[$ix] ||= 1;
- $s .= $ff->{Input}[$ix];
+sub prmark ($) {
+ print O $_[0] x $marker, "\n" or die $!;
+ }
+sub prval ($) {
+ my $v = @_;
+ print O $v,"\n" or die $! if defined $v;
+}
+
+our $f;
+
+if ($verbose) {
+ sub verb ($) { print STDERR "MERGE_LISTS $f @_\n" or die $!; }
+} else {
+ sub verb { }
+}
+
+our $conflicts = 0;
+
+foreach $f (@order) {
+ my $ff = $flag{$f};
+ verb("BEGIN");
+ if (defined $ff->{ForceResult}) {
+ verb("FORCE");
+ } else {
+ my @in = @{ $ff->{Input} };
+ verb(defined ? "DEF $_": "U") foreach @in;
+ if (iseq($in[0], $in[2])) {
+ verb("SAME");
+ $ff->{Result} = [0];
+ } elsif (iseq($in[0], $in[1])) {
+ verb("THEIRS");
+ $ff->{Result} = $in[2];
+ } elsif (iseq($in[2], $in[1])) {
+ verb("OURS");
+ $ff->{Result} = $in[0];
+ } else {
+ $conflicts++;
+ verb("CONFLICT");
+ prmark('<');
+ prval($in[0]);
+ prmark('=');
+ prval($in[2]);
+ prmark('>');
+ next;