Subject: problem with diff -B and incomplete lines

From: Paul Eggert <[email-masked]>
Date: Mon, 29 Jun 2015 09:58:42 -0700

Thanks for the bug report.  I'm forwarding this to bug-diffutils so that it gets 
a proper bug number.

-------- Forwarded Message --------
Subject: Bug in diff
Date: Mon, 29 Jun 2015 16:00:48 +0100
From: Ricardo Anido <[email-masked]>
To: [email-masked]

If the last line of a file has a sole character and no '\n', using the flag
-B makes diff miss the difference between files. The difference is
correctly reported using flags -b or -w. Better explained by an example,
below. Notice that the last line of tmp2 has only the character 'X':

--------------------

ranido@ubuntu:~$ cat tmp1

a

b

c

ranido@ubuntu:~$ cat tmp2

a

b

c

Xranido@ubuntu:~$ od -cx tmp1

0000000   a  \n   b  \n   c  \n

            0a61    0a62    0a63

0000006

ranido@ubuntu:~$ od -cx tmp2

0000000   a  \n   b  \n   c  \n   X

            0a61    0a62    0a63    0058

0000007

ranido@ubuntu:~$ diff -B tmp1 tmp2

ranido@ubuntu:~$ diff -b tmp1 tmp2

3a4

> X

\ No newline at end of file
ranido@ubuntu:~$
--------------------

Best regards, thanks for the amazing work on gnu!

---
Ricardo Anido
IC-UNICAMP
Av. Albert Einstein, 1251
13083-852 Campinas SP
Tel. (19) 3521 5863    Fax. (19) 3521 5847