Minor enhancements to rundiff.
authorSteve Reinhardt <stever@eecs.umich.edu>
Tue, 16 Dec 2003 04:58:18 +0000 (20:58 -0800)
committerSteve Reinhardt <stever@eecs.umich.edu>
Tue, 16 Dec 2003 04:58:18 +0000 (20:58 -0800)
util/rundiff:
    Dump buffered lines on loss of sync so we see where things went wrong.
    Also return proper exit code from checkmatch() function.

--HG--
extra : convert_revision : cd88064ee784a50b675bf3fededbb3901c3c266c

util/rundiff

index 05beba84b719dc6d1aad8aa237a9631efb94a6d7..63c05b96be8fdd8e84a8f5dfe3860972591e8508 100755 (executable)
@@ -191,7 +191,10 @@ sub printdiff
                              DISCARD_A => \&discard1,
                              DISCARD_B => \&discard2 });
 
-       die "Lost sync!" if (!$match_found);
+       if (!$match_found) {
+           printdiff(scalar(@lines1), scalar(@lines2));
+           die "Lost sync!";
+       }
 
        # Since we shouldn't get here unless the first lines of the
        # buffers are different, then we must discard some lines off
@@ -220,7 +223,10 @@ sub checkmatch
     # treated as common; if that bugs you, use Algorithm::Diff.
     if ($lines1[$n1] eq $lines2[$n2] && $lines1[$n1+1] eq $lines2[$n2+1]) {
        printdiff($n1, $n2);
+       return 1;
     }
+
+    return 0;
 }
 
 sub simple_diff
@@ -240,6 +246,8 @@ sub simple_diff
            return if checkmatch($cnt, $n);
        }
     }
+
+    printdiff(scalar(@lines1), scalar(@lines2));
     die "Lost sync!";
 }