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

oldstable
Konstantin L. Metlov 2011-05-06 20:32:03 +03:00 committed by Alexandre Julliard
parent a82f7cf446
commit 834378183a
1 changed files with 8 additions and 2 deletions

View File

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