rundiff: Don't flush stdout until after postcontext is printed.
authorSteve Reinhardt <steve.reinhardt@amd.com>
Sat, 26 Sep 2009 17:50:50 +0000 (10:50 -0700)
committerSteve Reinhardt <steve.reinhardt@amd.com>
Sat, 26 Sep 2009 17:50:50 +0000 (10:50 -0700)
util/rundiff

index cd2527e5437aa424988927b9a3b1210adb57c007..7e0a7705722620b4ed98a3a1839b00a716dd4d30 100755 (executable)
@@ -166,7 +166,11 @@ sub printdiff
     # Set $postcontext to print the next $postcontext_lines matching lines.
     $postcontext = $postcontext_lines;
 
-    STDOUT->flush();
+    # Normally we flush after the postcontext lines are printed, but if
+    # the user has decreed that there aren't any we need to flush now
+    if ($postcontext == 0) {
+        STDOUT->flush();
+    }
 }
 
 
@@ -291,10 +295,12 @@ while (1) {
        # figure out what to do with this line
        if ($postcontext > 0) {
            # we're in the post-context of a diff: print it
-           $postcontext--;
            print ' ', $l1;
            $lineno1++;
            $lineno2++;
+            if (--$postcontext == 0) {
+                STDOUT->flush();
+            }
        }
        else {
            # we're in the middle of a matching region... save this