gdi32: Handle pre-Unicode symbol TTFs with symbols at U+00XX.

This commit is contained in:
Konstantin L. Metlov 2011-05-11 19:01:59 +03:00 committed by Alexandre Julliard
parent 92563de3ea
commit fb787da66a

View File

@ -4553,12 +4553,13 @@ static FT_UInt get_glyph_index(const GdiFont *font, UINT glyph)
return get_GSUB_vert_glyph(font,ret); return get_GSUB_vert_glyph(font,ret);
} }
if(font->ft_face->charmap->encoding == FT_ENCODING_MS_SYMBOL && glyph < 0x100) if(font->ft_face->charmap->encoding == FT_ENCODING_MS_SYMBOL)
{ {
if (glyph < 0x100) glyph += 0xf000;
/* there is a number of old pre-Unicode "broken" TTFs, which /* there is a number of old pre-Unicode "broken" TTFs, which
do have symbols at U+00XX instead of U+f0XX */ do have symbols at U+00XX instead of U+f0XX */
if (!(glyphId = pFT_Get_Char_Index(font->ft_face, glyph + 0xf000))) if (!(glyphId = pFT_Get_Char_Index(font->ft_face, glyph)))
glyphId = pFT_Get_Char_Index(font->ft_face, glyph); glyphId = pFT_Get_Char_Index(font->ft_face, glyph-0xf000);
} }
else glyphId = pFT_Get_Char_Index(font->ft_face, glyph); else glyphId = pFT_Get_Char_Index(font->ft_face, glyph);