diff mercurial/mdiff.py @ 1015:22571b8d35d3

Add automatic binary file detection to diff and export Based on a patch by Fuming Wang - add util.binary which decides whether a file is binary if it has any NUL characters in the first 1K. - teach mdiff.unidiff to print "binary file <x> has changed" for binary files - add text flag to cause unidiff and dodiff to treat all files as text - add -a and --text flags (like diff(1)) to hg diff and export - update docs
author mpm@selenic.com
date Tue, 23 Aug 2005 19:58:46 -0700
parents df8a5a0098d4
children a0fcfbbf52bb
line wrap: on
line diff
--- a/mercurial/mdiff.py
+++ b/mercurial/mdiff.py
@@ -7,12 +7,15 @@
 
 import difflib, struct, bdiff
 from mpatch import *
+from util import *
 
-def unidiff(a, ad, b, bd, fn, r=None):
+def unidiff(a, ad, b, bd, fn, r=None, text=False):
 
     if not a and not b: return ""
 
-    if a == None:
+    if not text and (binary(a) or binary(b)):
+        l = ['Binary file %s has changed\n' % fn]
+    elif a == None:
         b = b.splitlines(1)
         l1 = "--- %s\t%s\n" % ("/dev/null", ad)
         l2 = "+++ %s\t%s\n" % ("b/" + fn, bd)