--- Begin Message ---
Subject: |
29.0.50; font_{delete_unmatched,score} do not handle nil FONT_WEIGHT_INDEX |
Date: |
Wed, 29 Dec 2021 22:28:37 -0700 |
User-agent: |
Notmuch/0.31.4 (https://notmuchmail.org) Emacs/29.0.50 (x86_64-pc-linux-gnu) |
Hello,
On my system I have a variable weight .ttf font[1] installed somewhere.
When I build with --enable-check-lisp-object-type, the line
int candidate = XFIXNUM (AREF (entity, prop)) >> 8;
in font_delete_unmatched and the expression
EMACS_INT diff = ((XFIXNUM (AREF (entity, i)) >> 8)
- (XFIXNUM (spec_prop[i]) >> 8));
in font_score have failed assertions because the FONT_WEIGHT_INDEX for
this .ttf file is nil:
#<font-entity ftcrhb CYRE Inconsolata nil iso10646-1 nil normal nil
0 nil 100 0 ((:font-entity
"/usr/share/fonts/inconsolata/Inconsolata-VariableFont_wdth,wght.ttf"
. 0))>
I don't believe Emacs really knows how to handle these multi-weight .ttf
files? Thus I propose the attached patch, to handle the value.
[1] https://github.com/googlefonts/Inconsolata/tree/main/fonts/variable
--
Sean Whitton
0001-Handle-nil-FONT_WEIGHT_INDEX.patch
Description: Text Data
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#52888: 29.0.50; font_{delete_unmatched,score} do not handle nil FONT_WEIGHT_INDEX |
Date: |
Wed, 12 Jan 2022 16:56:44 +0200 |
> From: Sean Whitton <spwhitton@spwhitton.name>
> Cc: 52888@debbugs.gnu.org
> Date: Thu, 06 Jan 2022 11:10:12 -0700
>
> > OK, but (a) we need a comment there explaining why FC_VARIABLE is used
> > as the condition, and (b) we'd also need to merge the temporary fix in
> > font.c to master.
>
> Here's an updated patch. I don't think I can help with (b) but let me
> know if there's something I can do.
Thanks, I installed this, and also installed a followup change that is
the "temporary fix" from emacs-28 adapted to the code on master.
And with that, I'm closing this bug. Thanks for working on this.
--- End Message ---