]> git.cworth.org Git - apitrace/blobdiff - scripts/tracediff2.py
Use wdiff by default.
[apitrace] / scripts / tracediff2.py
index 001f3226aaed5f117ad400e8a2f90cc2e8cc2ffb..bba4ebead1e3f287ff00f54b7b3d04ab142a84f0 100755 (executable)
@@ -32,7 +32,7 @@ import subprocess
 import sys
 
 from unpickle import Unpickler
-from highlight import Highlighter
+from highlight import LessHighlighter
 
 
 ignoredFunctionNames = set([
@@ -63,6 +63,7 @@ def readtrace(trace):
         args = [
             options.apitrace,
             'pickle',
+            '--symbolic',
             '--calls=' + options.calls,
             trace
         ],
@@ -129,10 +130,11 @@ class SDiffer:
             b_call = self.b[blo + i]
             assert a_call.functionName == b_call.functionName
             assert len(a_call.args) == len(b_call.args)
-            self.equal_prefix()
+            self.replace_prefix()
             self.highlighter.bold(True)
             self.highlighter.write(b_call.functionName)
             self.highlighter.bold(False)
+            self.highlighter.write('(')
             sep = ''
             for j in xrange(len(b_call.args)):
                 self.highlighter.write(sep)
@@ -162,7 +164,7 @@ class SDiffer:
             self.highlighter.write(str(b))
         else:
             self.highlighter.color(self.delete_color)
-            self.highlighter.write(str(b))
+            self.highlighter.write(str(a))
             self.highlighter.normal()
             self.highlighter.write(" -> ")
             self.highlighter.color(self.insert_color)
@@ -206,6 +208,9 @@ class SDiffer:
 
     def normal_suffix(self):
         self.highlighter.normal()
+    
+    def replace_prefix(self):
+        self.highlighter.write('| ')
 
 
 def main():
@@ -233,20 +238,10 @@ def main():
     ref_calls = readtrace(args[0])
     src_calls = readtrace(args[1])
 
-    if sys.stdout.isatty():
-        less = subprocess.Popen(
-            args = ['less', '-FRXn'],
-            stdin = subprocess.PIPE
-        )
-        highlighter = Highlighter(less.stdin, True)
-    else:
-        highlighter = Highlighter(sys.stdout)
+    highlighter = LessHighlighter()
 
     differ = SDiffer(ref_calls, src_calls, highlighter)
     differ.diff()
-    less.stdin.close()
-
-    less.wait()
 
 
 if __name__ == '__main__':