Re: Diff doesn't properly ignore whitespace for this input
Tyler Bletsch <[email protected]> Fri, 17 Jul 2015 13:22:36 -0400
| Newsgroups | gmane.comp.gnu.utils.bugs |
|---|---|
| Message-ID | <[email protected]> |
Thanks for the reply. It is so neat to see one of the original authors update diff with a fix that actually affects me. A nice object lesson in production software development for my class, too. - Tyler On 7/16/2015 4:45 PM, Jim Meyering wrote: > On Tue, Jul 14, 2015 at 12:01 PM, Tyler Bletsch <[email protected]> wrote: >> I believe I've found a bug in diff's handling of "ignore whitespace" mode. I >> have two test files that differ only in whitespace and newlines; I've >> verified this using a separate tool (WinMerge) plus doing a diff on the >> files after doing s/\s*/ / on the whole file. When I ask for the diff using >> "-wb", it reports a spurious difference only in whitespace if I give the >> arguments in one order, but correctly reports no differences if I give it >> the reverse order. Further, I get consistently correct behavior if I add >> the "-d" option. >> >> Example: >> >> $ diff -wB in1.txt in2.txt >> 3946c4201,4203 >> < Exits: >> --- >>> >>> Exits: >> $ diff -wB in2.txt in1.txt >> $ diff -dwB in1.txt in2.txt >> $ diff -dwB in2.txt in1.txt >> >> This came up while using diff to automatically grade a text adventure I'm >> having students do in my class -- this is the ONLY file pair out of over >> 3000 that appears to exhibit the problem. This leads me to believe that it >> must be a fairly rare issue. I'm fixing it on my end by always using -d, but >> I think this should be classified as a bug, because it reports a >> non-whitespace difference in files where none exists. >> >> I'm not sure if this mailing list allows attachments, so I've put the files >> in question here: >> >> https://dl.dropboxusercontent.com/u/68643317/diff-bug-test-files.zip >> >> I tried paring the files down to just demonstrate the bug and nothing else, >> but the behavior would seemingly go away at random as I removed content from >> the files. Therefore, I'm including the files in their original form. The >> files represent test output of the text adventure, specifically navigation >> of the default world from the ROM 2.4b6 MUD (after having been converted to >> a format for my class's assignment). This content is safe to share. >> >> I've confirmed that this behavior is present in the following builds of >> diff: >> - diff (GNU diffutils) 2.8.1 on Red Hat Enterprise Linux Server release 6.5 >> (Santiago) >> - diff (GNU diffutils) 3.2 on Ubuntu 12.04.4 LTS >> - diff (GNU diffutils) 2.9 on Cygwin 32-bit (Windows 7 x64) > Thank you for the report. > I confirm that it also affects diff-3.3, but found that with the very > latest from diff.git (v3.3-30-g29e8de4), the problem does not arise. > I.e., comparing your two files like this produces no output: > > $ src/diff -wBu /t/in{1,2}.txt | wc -c > 0 > > I suspect that it was fixed via this change by Paul Eggert: > > http://git.savannah.gnu.org/cgit/diffutils.git/commit/?id=9b48bf3d3ed002e32fad > http://bugs.gnu.org/16848