emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Where is a character presence tested in a font?


From: Óscar Fuentes
Subject: Where is a character presence tested in a font?
Date: Sun, 15 Jul 2012 17:44:36 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux)

About two years ago I reported some problems with not displaying some
characters with certain font and Jason Rumney hinted that it could be a
problem with how the test for existence of those characters is done.

I know nothing about font handling but I'll like to try to improve the
current status anyway. Could someone point me to the source code (or API
name) where Emacs on MS Windows tests for the presence of a given
character on a font?

This is an excerpt of the discussion, with Jason's response below:

> Some characters display fine on GNU/Linux but not on Windows. An example 
> is FISHEYE (?\u25c9) with the Consolas font. Apparently, that font does 
> not include that character. In GNU/Linux Emacs simply uses DejaVu for 
> displaying the character, but not on Windows, where a white space is 
> displayed (the Windows machine also has DejaVu installed.) 
> 
> Is this a known limitation or a bug? 
> 
>      
> uniscribe:-outline-Consolas-normal-normal-normal-mono-20-*-*-*-c-*-iso10646-1 
> (#x03) 
>     

The font is claiming to have that character in position 3 in the glyph 
table. I've also seen the same thing with fonts claiming position 1.   
There is nothing in the documentation for opentype or the font related 
Windows API functions that suggests that there is anything special about 
those glyph indexes, or that it is safe to assume that they mean a 
character is missing from the font.  Currently I think we only treat a 
return of 0 as indicating that the character is missing, as that is 
reserved by the truetype and opentype specs for the character ".notdef".




reply via email to

[Prev in Thread] Current Thread [Next in Thread]