GNU bug report logs - #33732
27.0.50; line-number-current-line face bug

Previous Next

Package: emacs;

Reported by: Jonas Westlund <jonaswestlund101 <at> gmail.com>

Date: Thu, 13 Dec 2018 21:51:02 UTC

Severity: normal

Found in version 27.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 33732 in the body.
You can then email your comments to 33732 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#33732; Package emacs. (Thu, 13 Dec 2018 21:51:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jonas Westlund <jonaswestlund101 <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 13 Dec 2018 21:51:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jonas Westlund <jonaswestlund101 <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 27.0.50; line-number-current-line face bug
Date: Thu, 13 Dec 2018 22:49:03 +0100

When using the built-in display-line-number, placing the point at the
last line of the file/end of buffer will make the rest of
the display-number area adopt the line-number-current-line
face. Modifying the face's background thus produces this kind of effect:

https://i.imgur.com/pO214Wf.png

Steps to reproduce:
1. emacs -Q
2. (setq display-line-numbers t)
3. (set-face-background 'line-number-current-line "#000000")
4. Go to end of buffer


In GNU Emacs 27.0.50 (build 5, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
of 2018-12-13 built on maskinen
Repository revision: ef922e774ae33772ad86403332ddb5a1b49d268e
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Ubuntu 18.04.1 LTS

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Making completion list...
C-M-g is undefined
Quit
Making completion list...
C-M-g is undefined
Quit
Making completion list...

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB
NOTIFY INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF
XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM THREADS LCMS2 GMP

Important settings:
value of $LC_CTYPE: en_US.UTF-8
value of $LC_MONETARY: sv_SE.UTF-8
value of $LC_NUMERIC: sv_SE.UTF-8
value of $LC_TIME: sv_SE.UTF-8
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr crm thingatpt emacsbug message rmc puny seq
byte-opt gv bytecomp byte-compile cconv dired dired-loaddefs format-spec
rfc822 mml easymenu mml-sec password-cache epa derived epg epg-config
gnus-util rmail rmail-loaddefs time-date mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs cl-lib
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
elec-pair mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 97237 13255)
(symbols 48 20303 1)
(strings 32 28883 1218)
(string-bytes 1 759860)
(vectors 16 15095)
(vector-slots 8 511933 16416)
(floats 8 48 69)
(intervals 56 224 0)
(buffers 992 12))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33732; Package emacs. (Fri, 14 Dec 2018 08:47:01 GMT) Full text and rfc822 format available.

Message #8 received at 33732 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Jonas Westlund <jonaswestlund101 <at> gmail.com>
Cc: 33732 <at> debbugs.gnu.org
Subject: Re: bug#33732: 27.0.50; line-number-current-line face bug
Date: Fri, 14 Dec 2018 10:46:30 +0200
> From: Jonas Westlund <jonaswestlund101 <at> gmail.com>
> Date: Thu, 13 Dec 2018 22:49:03 +0100
> 
> When using the built-in display-line-number, placing the point at the
> last line of the file/end of buffer will make the rest of
> the display-number area adopt the line-number-current-line
> face. Modifying the face's background thus produces this kind of effect:
> 
> https://i.imgur.com/pO214Wf.png

Thanks, I tried to fix this on the emacs-26 branch with the patch
below.

    Fix display of line numbers in empty lines beyond EOB
    
    * src/xdisp.c (maybe_produce_line_number): When the current
    line is at EOB, use the 'line-number-current-line' face only
    on that single line, but not on the rest of empty lines beyond
    EOB.  (Bug#33732)

diff --git a/src/xdisp.c b/src/xdisp.c
index 808eab7..435ab2c 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -21185,7 +21185,10 @@ maybe_produce_line_number (struct it *it)
       if (lnum_face_id != current_lnum_face_id
 	  && (EQ (Vdisplay_line_numbers, Qvisual)
 	      ? this_line == 0
-	      : this_line == it->pt_lnum))
+	      : this_line == it->pt_lnum)
+	  /* Avoid displaying the line-number-current-line face on
+	     empty lines beyond EOB.  */
+	  && it->what != IT_EOB)
 	tem_it.face_id = current_lnum_face_id;
       else
 	tem_it.face_id = lnum_face_id;




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33732; Package emacs. (Sat, 22 Dec 2018 09:02:02 GMT) Full text and rfc822 format available.

Message #11 received at 33732 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: jonaswestlund101 <at> gmail.com
Cc: 33732 <at> debbugs.gnu.org
Subject: Re: bug#33732: 27.0.50; line-number-current-line face bug
Date: Sat, 22 Dec 2018 11:01:17 +0200
Ping!  Jonas, did you have a chance to test the change?

> Date: Fri, 14 Dec 2018 10:46:30 +0200
> From: Eli Zaretskii <eliz <at> gnu.org>
> Cc: 33732 <at> debbugs.gnu.org
> 
> > From: Jonas Westlund <jonaswestlund101 <at> gmail.com>
> > Date: Thu, 13 Dec 2018 22:49:03 +0100
> > 
> > When using the built-in display-line-number, placing the point at the
> > last line of the file/end of buffer will make the rest of
> > the display-number area adopt the line-number-current-line
> > face. Modifying the face's background thus produces this kind of effect:
> > 
> > https://i.imgur.com/pO214Wf.png
> 
> Thanks, I tried to fix this on the emacs-26 branch with the patch
> below.
> 
>     Fix display of line numbers in empty lines beyond EOB
>     
>     * src/xdisp.c (maybe_produce_line_number): When the current
>     line is at EOB, use the 'line-number-current-line' face only
>     on that single line, but not on the rest of empty lines beyond
>     EOB.  (Bug#33732)
> 
> diff --git a/src/xdisp.c b/src/xdisp.c
> index 808eab7..435ab2c 100644
> --- a/src/xdisp.c
> +++ b/src/xdisp.c
> @@ -21185,7 +21185,10 @@ maybe_produce_line_number (struct it *it)
>        if (lnum_face_id != current_lnum_face_id
>  	  && (EQ (Vdisplay_line_numbers, Qvisual)
>  	      ? this_line == 0
> -	      : this_line == it->pt_lnum))
> +	      : this_line == it->pt_lnum)
> +	  /* Avoid displaying the line-number-current-line face on
> +	     empty lines beyond EOB.  */
> +	  && it->what != IT_EOB)
>  	tem_it.face_id = current_lnum_face_id;
>        else
>  	tem_it.face_id = lnum_face_id;
> 
> 
> 
> 




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Wed, 26 Dec 2018 15:48:02 GMT) Full text and rfc822 format available.

Notification sent to Jonas Westlund <jonaswestlund101 <at> gmail.com>:
bug acknowledged by developer. (Wed, 26 Dec 2018 15:48:02 GMT) Full text and rfc822 format available.

Message #16 received at 33732-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Jonas Westlund <jonaswestlund101 <at> gmail.com>
Cc: 33732-done <at> debbugs.gnu.org
Subject: Re: bug#33732: 27.0.50; line-number-current-line face bug
Date: Wed, 26 Dec 2018 17:47:15 +0200
> From: Jonas Westlund <jonaswestlund101 <at> gmail.com>
> Date: Wed, 26 Dec 2018 15:34:17 +0100
> 
> Sorry for the late response!
> Yes I tested the change and it is working great, thank you! :-)

Thanks, I'm therefore closing the bug.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 24 Jan 2019 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 93 days ago.

Previous Next


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