[truetype] Always check the checksum to identify tricky fonts. Some PDF generators mangle the family name badly, prioritize the check by the sfnt table checksums than the check by the family name. For sample PDF, see http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00073.html * src/truetype/ttobjs.c (tt_check_trickyness): Exchange the order of tt_check_trickyness_family() and tt_check_trickyness_sfnt_ids().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
diff --git a/ChangeLog b/ChangeLog
index 425895d..dfbeb6c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2011-04-25 Kan-Ru Chen <kanru@kanru.info>
+
+ [truetype] Always check the checksum to identify tricky fonts.
+
+ Some PDF generators mangle the family name badly, prioritize
+ the check by the sfnt table checksums than the check by the
+ family name. For sample PDF, see
+ http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00073.html
+
+ * src/truetype/ttobjs.c (tt_check_trickyness): Exchange the order
+ of tt_check_trickyness_family() and tt_check_trickyness_sfnt_ids().
+
2011-04-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
[autofit] Add more Indic scripts with hanging baseline.
diff --git a/src/truetype/ttobjs.c b/src/truetype/ttobjs.c
index f6e5f5d..82ec0ec 100644
--- a/src/truetype/ttobjs.c
+++ b/src/truetype/ttobjs.c
@@ -332,21 +332,17 @@
if ( !face )
return FALSE;
- /* First, check the face name. */
- if ( face->family_name )
- {
- if ( tt_check_trickyness_family( face->family_name ) )
- return TRUE;
- else
- return FALSE;
- }
-
/* Type42 fonts may lack `name' tables, we thus try to identify */
/* tricky fonts by checking the checksums of Type42-persistent */
/* sfnt tables (`cvt', `fpgm', and `prep'). */
if ( tt_check_trickyness_sfnt_ids( (TT_Face)face ) )
return TRUE;
+ /* Secondary, check the face name. */
+ if ( face->family_name &&
+ tt_check_trickyness_family( face->family_name ) )
+ return TRUE;
+
return FALSE;
}