summaryrefslogtreecommitdiffstats
path: root/libass/ass_font.c
diff options
context:
space:
mode:
Diffstat (limited to 'libass/ass_font.c')
-rw-r--r--libass/ass_font.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libass/ass_font.c b/libass/ass_font.c
index ad2863c5..6a1faab4 100644
--- a/libass/ass_font.c
+++ b/libass/ass_font.c
@@ -446,6 +446,14 @@ FT_Glyph ass_font_get_glyph(void *fontconfig_priv, ASS_Font *font,
if (face_idx >= 0) {
face = font->faces[face_idx];
index = FT_Get_Char_Index(face, ch);
+ if (index == 0 && face->num_charmaps > 0) {
+ ass_msg(font->library, MSGL_WARN,
+ "Glyph 0x%X not found, falling back to first charmap", ch);
+ FT_CharMap cur = face->charmap;
+ FT_Set_Charmap(face, face->charmaps[0]);
+ index = FT_Get_Char_Index(face, ch);
+ FT_Set_Charmap(face, cur);
+ }
if (index == 0) {
ass_msg(font->library, MSGL_ERR,
"Glyph 0x%X not found in font for (%s, %d, %d)",