GNU bug report logs -
#42300
Visual bug in diff-mode
Previous Next
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
Message #9 received at control <at> debbugs.gnu.org (full text, mbox):
tags 42300 + confirmed
found 42300 28.0.50
thanks
Gregory Heytings <ghe <at> sdf.org> writes:
> 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
I can reproduce this on current master, and verify that the below change
fixes it.
I'm not that familiar with diff-mode.ela nor font-locking so it's better
that someone else takes a look and installs the 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.
Best regards,
Stefan Kangas
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.