diff -r d768614578dd -r 4fe9ca519637 mercurial/mdiff.py --- 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