On 02/28/2013 10:08 AM, Jeff Webb wrote:
There seems to be a "bug" in meld's directory view.  If the Preferences->Text Filters->"Ignore 
changes which insert or delete blank lines" checkbox is enabled, files which differ only by blank lines show 
up as being different in the directory view.  If you click on one of these files in the directory view, the file 
diff shows no differences, as expected.  It seems like the fix could be as simple as something like what is shown 
in the patch below.  You may want to do something more efficient, but it seems that something like this is needed 
here.  This fix is very useful in conjunction with something like the "C++ comment" filter when you are 
comparing different revisions of a project and want to find the files that have non-comment differences.  We were 
trying to do this in a case where someone changed a revision number comment in every file.  This fix seems to work 
for our test case.

Thanks,

Jeff

diff -r -u meld.orig/meld/dirdiff.py meld/meld/dirdiff.py
--- meld.orig/meld/dirdiff.py   2013-02-28 09:38:04.065534644 -0600
+++ meld/meld/dirdiff.py        2013-02-28 09:47:43.497497083 -0600
@@ -179,9 +179,13 @@
          contents = ["".join(c) for c in contents]
          for r in regexes:
              contents = [re.sub(r, "", c) for c in contents]
+        if prefs.ignore_blank_lines:
+            contents = [re.sub('\n*','\n', c) for c in contents]
+            contents = [re.sub('(\r\n)*','\r\n', c) for c in contents]
          result = SameFiltered if all_same(contents) else Different

      _cache[(files, regexes)] = CacheResult(stats, result)
+
      return result


I just realized that the above fix won't work if you don't have any text 
filters enabled, so things need to be handled a little differently in the final 
version, but you get the idea.

-Jeff

_______________________________________________
meld-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/meld-list

Reply via email to