mdiff: fix diff -b/B/w on mixed whitespace hunks (issue127)
Previous code was computing hunks then checking if these hunks could be ignored
when taking whitespace/blank-lines options in accounts. This approach is simple
but fails with hunks containing both whitespace and non-whitespace changes, the
whole hunk is emitted while it can be mostly made of whitespace. The new
version normalize the whitespaces before hunk generation, and test for
blank-lines afterwards.
% init
adding a
% fold in the middle of the queue
popping p3
popping p2
now at: p1
--- a/a
+++ b/a
@@ -1,1 +1,2 @@
a
+a
p1
p3
--- a/a
+++ b/a
@@ -1,1 +1,3 @@
a
+a
+b
% fold with local changes
abort: local changes found, refresh first
--- a/a
+++ b/a
@@ -1,1 +1,3 @@
a
+a
+b