reportdiff(): print a "plain diff" style diff.

XXX This should really be a unified diff, but I can't be bothered.
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index c8c9167..79ee3b1 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -351,10 +351,36 @@
 def reportdiff(expected, output):
     print "*" * 70
     import difflib
-    a = expected.splitlines(1)
-    b = output.splitlines(1)
-    diff = difflib.ndiff(a, b)
-    print ''.join(diff),
+    a = expected.splitlines()
+    b = output.splitlines()
+    sm = difflib.SequenceMatcher(a=a, b=b)
+    tuples = sm.get_opcodes()
+    def pair(x0, x1):
+        x0 += 1
+        if x0 >= x1:
+            return str(x0)
+        else:
+            return "%d,%d" % (x0, x1)
+    for op, a0, a1, b0, b1 in tuples:
+        if op == 'equal':
+            pass
+        elif op == 'delete':
+            print pair(a0, a1) + "d" + pair(b0, b1)
+            for line in a[a0:a1]:
+                print "<", line
+        elif op == 'replace':
+            print pair(a0, a1) + "c" + pair(b0, b1)
+            for line in a[a0:a1]:
+                print "<", line
+            print "---"
+            for line in b[b0:b1]:
+                print ">", line
+        elif op == 'insert':
+            print str(a0) + "a" + pair(b0, b1)
+            for line in b[b0:b1]:
+                print ">", line
+        else:
+            print "get_opcodes() returned bad tuple?!?!", (op, a0, a1, b0, b1)
     print "*" * 70
 
 def findtestdir():