GNU bug report logs - #42300
Visual bug in diff-mode

Previous Next

Package: emacs;

Reported by: Gregory Heytings <ghe <at> sdf.org>

Date: Thu, 9 Jul 2020 23:27:01 UTC

Severity: normal

Tags: confirmed, fixed, patch

Found in version 28.0.50

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Gregory Heytings <ghe <at> sdf.org>
To: 42300 <at> debbugs.gnu.org
Subject: bug#42300: Visual bug in diff-mode
Date: Thu, 9 Jul 2020 21:23:36 +0200 (CEST)
Diff-mode was updated in Emacs 27, and it is now possible to use the 
fringe to indicate whether the lines were added, deleted, or are common. 
The face is omitted in the display property in the case common lines, 
which leads to the bug described below.

Steps to reproduce:

1. start emacs -Q
2. (setq diff-font-lock-prettify t)
3. to make the bug clearly visible: (set-face-attribute 'fringe nil :background "red" :foreground "yellow")
4. open a diff file (with "common" lines, that is, lines starting with a space)
5. observe that the fringe in front of the common lines is red
6. press C-x C-+, the fringe in front of the common lines is now white
7. press -, the fringe in front of the common lines is now red again

Fix:

--- diff-mode.el.orig	2020-06-29 17:39:26.000000000 +0000
+++ diff-mode.el	2020-07-09 18:44:08.000000000 +0000
@@ -2518,7 +2518,7 @@
                                '((?+ . (left-fringe diff-fringe-add diff-indicator-added))
                                  (?- . (left-fringe diff-fringe-del diff-indicator-removed))
                                  (?! . (left-fringe diff-fringe-rep diff-indicator-changed))
-                                 (?\s . (left-fringe diff-fringe-nul))))))
+                                 (?\s . (left-fringe diff-fringe-nul fringe))))))
           (put-text-property (match-beginning 0) (match-end 0) 'display spec))))
     ;; Mimicks the output of Magit's diff.
     ;; FIXME: This has only been tested with Git's diff output.




This bug report was last modified 4 years and 283 days ago.

Previous Next


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