mercurial/mdiff.py
changeset 1015 22571b8d35d3
parent 582 df8a5a0098d4
child 1378 a0fcfbbf52bb
equal deleted inserted replaced
1014:e37cd99fa909 1015:22571b8d35d3
     5 # This software may be used and distributed according to the terms
     5 # This software may be used and distributed according to the terms
     6 # of the GNU General Public License, incorporated herein by reference.
     6 # of the GNU General Public License, incorporated herein by reference.
     7 
     7 
     8 import difflib, struct, bdiff
     8 import difflib, struct, bdiff
     9 from mpatch import *
     9 from mpatch import *
       
    10 from util import *
    10 
    11 
    11 def unidiff(a, ad, b, bd, fn, r=None):
    12 def unidiff(a, ad, b, bd, fn, r=None, text=False):
    12 
    13 
    13     if not a and not b: return ""
    14     if not a and not b: return ""
    14 
    15 
    15     if a == None:
    16     if not text and (binary(a) or binary(b)):
       
    17         l = ['Binary file %s has changed\n' % fn]
       
    18     elif a == None:
    16         b = b.splitlines(1)
    19         b = b.splitlines(1)
    17         l1 = "--- %s\t%s\n" % ("/dev/null", ad)
    20         l1 = "--- %s\t%s\n" % ("/dev/null", ad)
    18         l2 = "+++ %s\t%s\n" % ("b/" + fn, bd)
    21         l2 = "+++ %s\t%s\n" % ("b/" + fn, bd)
    19         l3 = "@@ -0,0 +1,%d @@\n" % len(b)
    22         l3 = "@@ -0,0 +1,%d @@\n" % len(b)
    20         l = [l1, l2, l3] + ["+" + e for e in b]
    23         l = [l1, l2, l3] + ["+" + e for e in b]