Subject: bug#19993: 25.0.50; Unicode fonts defective on Windows

From: Eli Zaretskii <[email-masked]>
Date: Fri, 06 Mar 2015 22:11:32 +0200

> Date: Fri, 6 Mar 2015 08:21:36 -0800
> From: Ilya Zakharevich <[email-masked]>
> Cc: [email-masked]
> 
> On Fri, Mar 06, 2015 at 04:00:27PM +0200, Eli Zaretskii wrote:
> > > Practically nothing “non-banal” is shown.  Let me try…  No U+1D49C,
> > > U+2099 ₙ, U+1D552, U+27e8 U+27e9 ⟨⟩ (just looking into my recent
> > > “real-life” file of notices).
> > 
> > U+2099, U+27e8, and U+27e9 are displayed here (I have the STIX fonts
> > installed, and they are used for that).  The rest indeed aren't.
> 
> > Do you have fonts installed that cover these codepoints?
> 
> As I said, «Unifont Smooth» has everything in BMP of v7.0.  Many fonts
> (including «Symbola») have Math chars. 

Emacs on Windows needs a font to support the entire range of a script,
or else it won't use the font.  It finds out which scripts are
supported by a font by looking at the fsUsb member of the
FONTSIGNATURE structure for each font.  See font_supported_scripts,
and also font_matches_spec which uses it, for the details.  So maybe
the fonts you have don't announce in their signature that they support
these Unicode ranges.  E.g., U+1D49C is in "Mathematical ALphanumeric
Symbols", whose subrange bit is 89 -- does Symbola set this bit in its
font signature?

Or maybe we could add some more heuristics to the code in w32font.c,
to be smarter about font selection for Symbol script.  I really don't
know enough about all this stuff.