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


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

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).




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

Previous Next


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