[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#42300: Visual bug in diff-mode
From: |
Stefan Kangas |
Subject: |
bug#42300: Visual bug in diff-mode |
Date: |
Thu, 13 Aug 2020 09:23:52 -0700 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
tags 42300 + confirmed
found 42300 28.0.50
thanks
Gregory Heytings <ghe@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
- bug#42300: Visual bug in diff-mode,
Stefan Kangas <=