GNU bug report logs -
#61521
"default" is now the first item returned from (font-faces), breaking various code.
Previous Next
Full log
Message #29 received at 61521 <at> debbugs.gnu.org (full text, mbox):
>> 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.