GNU bug report logs - #64485
"diff -y" broken since yesterday

Previous Next

Package: diffutils;

Reported by: Bruno Haible <bruno <at> clisp.org>

Date: Wed, 5 Jul 2023 17:31:02 UTC

Severity: normal

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Bruno Haible <bruno <at> clisp.org>
Subject: bug#64485: closed (Re: [bug-diffutils] bug#64485: "diff -y"
 broken since yesterday)
Date: Wed, 05 Jul 2023 17:41:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#64485: "diff -y" broken since yesterday

which was filed against the diffutils package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 64485 <at> debbugs.gnu.org.

-- 
64485: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64485
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Bruno Haible <bruno <at> clisp.org>
Cc: 64485-done <at> debbugs.gnu.org
Subject: Re: [bug-diffutils] bug#64485: "diff -y" broken since yesterday
Date: Wed, 5 Jul 2023 10:40:26 -0700
Thanks, I installed that.

[Message part 3 (message/rfc822, inline)]
From: Bruno Haible <bruno <at> clisp.org>
To: bug-diffutils <at> gnu.org
Subject: "diff -y" broken since yesterday
Date: Wed, 05 Jul 2023 19:30:31 +0200
[Message part 4 (text/plain, inline)]
Hi Paul,

I'm trying to understand the meaning of 'in_position' and 'out_position' in
function 'print_half_line'. While doing this, I spotted a bug:

$ cat foo1.txt
a
ab
abc
$ cat foo2.txt
ab
abcd
$ src/diff -t -y foo1.txt foo2.txt
a                                                                <
ab                                                                   ab
abc                                                                |  abcd

This is obviously not how it's intended to be. The attached patch fixes it.
The cause is that in the case of a character of width 1, the assignment

  out_position = in_position;

was lost in commit 05cdf3102ef3fb261db311a3e5d090fb63dbc792 (yesterday).
With this patch, the result is again as it should be:

$ src/diff -t -y foo1.txt foo2.txt
a                                                               <
ab                                                                 ab
abc                                                             |  abcd

The patch also improves comments in this function. So that next time,
I (or anyone else) don't spent 30 minutes to understand the difference
between 'in_position' and 'out_position'.

Bruno


[0001-diff-Fix-diff-y-output.patch (text/x-patch, attachment)]

This bug report was last modified 1 year and 321 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.