[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Wrong output for single character files without newline
From: |
Eric Blake |
Subject: |
Re: Wrong output for single character files without newline |
Date: |
Wed, 03 Sep 2014 15:03:44 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.7.0 |
[adding bug-diffutils, as requested by diff --help]
On 09/03/2014 04:17 AM, Navin Kabra wrote:
> Consider this:
>
> echo -n a > /tmp/a
> echo -n b > /tmp/b
> diff -B /tmp/a /tmp/b
'echo -n' is non-portable. Please get used to using 'printf' instead.
>
> Clearly, the two files are different, yet, diff seems to think that the
> files are identical. I've managed to reproduce this problem on Ubuntu
> 14.04 with diffutils 3.3, on CloudLinux 5.10 with diffutils 2.8.1, and
> also Ubuntu 10.04 with diffutils 2.8.1.
>
> If I don't use the -B option, the problem goes away. If the files do end
> with a newline, the problem goes away. If the files contain more than 1
> character, the problem goes away. If combined with *some* of the other
> options (e.g. -e or -y) the problem goes away.
Actually, I couldn't reproduce -y making the problem go away:
$ ./src/diff -By <(printf a) <(printf b)
a b
$ echo $?
0
Thanks for the extensive analysis; I can confirm that this bug is still
present in the latest diffutils.git sources, although I have not
personally hunted for the culprit line of code yet.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature