GNU bug report logs - #40866
customize-face obliterates obliterates elements of "face spec" alist.

Previous Next

Package: emacs;

Reported by: Alan Mackenzie <acm <at> muc.de>

Date: Sun, 26 Apr 2020 11:31:01 UTC

Severity: normal

Done: Alan Mackenzie <acm <at> muc.de>

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: Alan Mackenzie <acm <at> muc.de>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#40866: closed (customize-face obliterates obliterates
 elements of "face spec" alist.)
Date: Fri, 01 May 2020 12:34:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Fri, 1 May 2020 12:33:53 +0000
with message-id <20200501123353.GA7515 <at> ACM>
and subject line Re: bug#40866: customize-face obliterates obliterates elements of "face spec" alist.
has caused the debbugs.gnu.org bug report #40866,
regarding customize-face obliterates obliterates elements of "face spec" alist.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
40866: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=40866
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Alan Mackenzie <acm <at> muc.de>
To: bug-gnu-emacs <at> gnu.org
Subject: customize-face obliterates obliterates elements of "face spec" alist.
Date: Sun, 26 Apr 2020 11:30:24 +0000
Hello, Emacs.

On master, when a face is set up for a single type of terminal, or
several types of terminal, customize-face disregards this, and
obliterates all members of the "face spec" alist except one, which is
always t.

For example, suppose we have either of these in a custom-set-faces list:

'(font-lock-function-name-face ((((background dark)) (:foreground "cyan" :weight bold))
                                 (t (:foreground "Blue1" :weight bold))))
 
'(font-lock-function-name-face ((((background dark)) (:foreground "cyan" :weight bold))))

.  In a light backgrounded Emacs session (e.g. in X-Windows) run
customize-face on font-lock-function-name-face.  Make some change to the
face and click on <apply and save>.  The (background dark) element has
now been obliterated, leaving (in either case):

'(font-lock-function-name-face ((t (:foreground "Blue1" :weight bold))))

.  This is a bug.  customize-face should respect face settings which are
inapplicable on the current terminal.

#########################################################################

Related wish list item:

To construct these terminal specific face specs, I had to edit the raw
lisp in .emacs.  It took me three tries before I got a valid spec.

I seem to remember that at one point it was possible to add alternative
face specs for other terminal types inside customize-face.  Am I
dreaming, or was this facility removed for some reason?

It would be really nice if one could edit a face spec in full generality
inside customize-face, obviating the need to mess with intricate raw
lisp.

-- 
Alan Mackenzie (Nuremberg, Germany).


[Message part 3 (message/rfc822, inline)]
From: Alan Mackenzie <acm <at> muc.de>
To: 40866-done <at> debbugs.gnu.org
Subject: Re: bug#40866: customize-face obliterates obliterates elements of
 "face spec" alist.
Date: Fri, 1 May 2020 12:33:53 +0000
Fixed in the master branch.

-- 
Alan Mackenzie (Nuremberg, Germany).


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

Previous Next


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