GNU bug report logs - #61521
"default" is now the first item returned from (font-faces), breaking various code.

Previous Next

Package: emacs;

Reported by: Brennan Vincent <brennan <at> umanwizard.com>

Date: Wed, 15 Feb 2023 00:32:01 UTC

Severity: normal

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

Bug is archived. No further changes may be made.

Full log


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

From: Gregory Heytings <gregory <at> heytings.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: brennan <at> umanwizard.com, 61521 <at> debbugs.gnu.org
Subject: Re: bug#61521: "default" is now the first item returned from
 (font-faces), breaking various code.
Date: Wed, 15 Feb 2023 14:11:55 +0000
>> Thanks.  It seems the change you describe is not a recent one: the 
>> first element of the list returned by 'face-list' is 'default' in Emacs 
>> 27, 28, 29 and 30.  (This is caused by e3b8ddd500, since which frame 
>> faces are stored in a hash table instead of an alist.)
>
> Right.  So I wonder whether we should remove the nreverse call in 
> face-set-after-frame-default.  WDYT?
>

There are three occurrences of '(nreverse (face-list))': one in 
facemenu-complete-face-list, which seems to date from the 1990s, one in 
x-create-frame-with-faces, which was added by e3b8ddd500 "to handle subtle 
semantic change to how frame faces propagate, which otherwise breaks frame 
creation with reverse video enabled (bug#41200)", and the third one in 
'face-set-after-frame-default'.

The comment there is definitely outdated and should be removed, but given 
that '(nreverse (face-list))' is placed in a dolist whose body starts with 
'(face-spec-recalc face frame)', like in x-create-frame-with-faces, I'm 
not sure the nreverse can be removed without introducing a subtle bug. 
It is probably safer to leave the code unchanged.





This bug report was last modified 2 years and 177 days ago.

Previous Next


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