diff libass/ass_font.c @ 22210:4a958bd08920

Select the first charmap in the font, if FreeType did not autoselect any. This happens, for example, with fonts only having an Apple Roman charmap.
author eugeni
date Thu, 15 Feb 2007 22:03:09 +0000
parents 0d8005d2fe5c
children 1de2a46a0987
line wrap: on
line diff
--- a/libass/ass_font.c	Thu Feb 15 21:53:28 2007 +0000
+++ b/libass/ass_font.c	Thu Feb 15 22:03:09 2007 +0000
@@ -47,9 +47,19 @@
 		unsigned eid = cmap->encoding_id;
 		if (pid == 3 /*microsoft*/ && (eid == 1 /*unicode bmp*/ || eid == 10 /*full unicode*/)) {
 			FT_Set_Charmap(face, cmap);
-			break;
+			return;
 		}
 	}
+
+	if (!face->charmap) {
+		if (face->num_charmaps == 0) {
+			mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_NoCharmaps);
+			return;
+		}
+		mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_NoCharmapAutodetected);
+		FT_Set_Charmap(face, face->charmaps[0]);
+		return;
+	}
 }
 
 /**