--- a/mercurial/mdiff.py Wed Nov 11 17:02:00 2009 +0100
+++ b/mercurial/mdiff.py Wed Nov 11 18:31:42 2009 +0100
@@ -57,13 +57,13 @@
defaultopts = diffopts()
-def wsclean(opts, text):
+def wsclean(opts, text, blank=True):
if opts.ignorews:
text = re.sub('[ \t]+', '', text)
elif opts.ignorewsamount:
text = re.sub('[ \t]+', ' ', text)
text = re.sub('[ \t]+\n', '\n', text)
- if opts.ignoreblanklines:
+ if blank and opts.ignoreblanklines:
text = re.sub('\n+', '', text)
return text
@@ -183,6 +183,10 @@
# below finds the spaces between those matching sequences and translates
# them into diff output.
#
+ if opts.ignorews or opts.ignorewsamount:
+ t1 = wsclean(opts, t1, False)
+ t2 = wsclean(opts, t2, False)
+
diff = bdiff.blocks(t1, t2)
hunk = None
for i, s1 in enumerate(diff):
@@ -208,7 +212,7 @@
if not old and not new:
continue
- if opts.ignorews or opts.ignorewsamount or opts.ignoreblanklines:
+ if opts.ignoreblanklines:
if wsclean(opts, "".join(old)) == wsclean(opts, "".join(new)):
continue