@@ -13,7 +13,8 @@ my $rawin = 0; # feed diff to stdin for testing (do NOT set $debug=1)
1313# this first block because it's expensive and dumpfile() hangs with $rawin.
1414my $sink = ($^O eq " MSWin32" ) ? " NUL" : " /dev/null" ;
1515my $dbgfile = ($^O eq " MSWin32" ) ? " $ENV {TEMP}.$$ " : " /tmp/trace.$$ " ;
16- open TRACE, " >>" , ($debug ==0)? $sink : $dbgfile ;
16+ open TRACE, " >>" , $rawin ?" /dev/tty" :(($debug ==0)? $sink : $dbgfile );
17+ print TRACE " TEST TRACE\n " ;
1718if ($debug ){
1819 print TRACE " START CLIENT ARGV:\n " ;
1920 print TRACE " [0] $0 \n " ;
@@ -233,7 +234,7 @@ sub merge_one_line_maybe {
233234 $theirval = $1 ;
234235 }
235236 }
236-
237+ print TRACE " MID: $ourstype / $oursval $theirtype / $theirval \n " ;
237238 # are we done?
238239 if (pos ($ours )==length $ours && pos ($theirs ) == length $theirs ){
239240 $more = 0;
@@ -245,6 +246,12 @@ sub merge_one_line_maybe {
245246 # now see if ours and their match or can be resolved
246247 # text
247248 if ($ourstype == 3 && $theirtype == 3){
249+ # mismatch is \s vs \s\s - where is this coming from?
250+ # HACK - hopefully temporary
251+ if ($oursval =~ m / ^\s +$ / && $theirval =~ m / ^\s +$ / ){
252+ $out .= $oursval ;
253+ next ;
254+ }
248255 if ($oursval eq $theirval ){
249256 $out .= $oursval ;
250257 next ;
@@ -273,6 +280,7 @@ sub merge_one_line_maybe {
273280# return undef if we can't merge the values; $NAME: VALUE $ or $NAME$ (as appropriate) if we can.
274281sub merge_one_var_maybe {
275282 my ($varname , $oursval , $theirval ) = @_ ;
283+ print TRACE " MVM: -$varname -$oursval -$theirval -\n " ;
276284 my $resolvedas ;
277285 {
278286 no strict;
@@ -309,12 +317,28 @@ sub Date {
309317
310318sub Branch {
311319 my ($PREFIX , $varname , $mine , $theirs ) = @_ ;
312- return " \$ $PREFIX -$varname : $mine \$ " ;
320+ $mine =~ s / ^\s +// ; $mine =~ s /\s +$// ;
321+ $theirs =~ s / ^\s +// ; $theirs =~ s /\s +$// ;
322+ return " \$ $PREFIX -$varname : $mine \$ " if (length $mine );
323+ return " \$ $PREFIX -$varname : $theirs \$ " if (length $theirs );
324+ return " \$ $PREFIX -$varname \$ " if (length $theirs );
313325}
314326
315327sub Revision {
316328 my ($PREFIX , $varname , $mine , $theirs ) = @_ ;
317- return " \$ $PREFIX -$varname : $mine \$ " ;
329+ my ($m ) = ($mine =~ m / 1.(\d +)/ );
330+ my ($t ) = ($theirs =~ m / 1.(\d +)/ );
331+ if ($m > 0 && $t > 0){
332+ my $q = ($m > $t ) ? $m : $t ;
333+ return " \$ $PREFIX -$varname : 1.$q \$ " ;
334+ }
335+ if ($m > 0){
336+ return " \$ $PREFIX -$varname : 1.$m \$ " ;
337+ }
338+ if ($t > 0){
339+ return " \$ $PREFIX -$varname : 1.$t \$ " ;
340+ }
341+ return " \$ $PREFIX -$varname \$ " ;
318342}
319343__END__
320344
@@ -364,3 +388,10 @@ $TEST-Branch: mine $
364388===
365389$TEST-Branch: theirs $
366390>>> d3
391+
392+ TEST 8:
393+ <<< d1
394+ /* NetHack 3.5 objnam.c $TEST-Date$ $TEST-Branch$:$TEST-Revision$ */
395+ ===
396+ /* NetHack 3.5 objnam.c $TEST-Date: 1426977394 2015/03/21 22:36:34 $ $TEST-Branch: master $:$TEST-Revision: 1.108 $ */
397+ >>> d3
0 commit comments