support for embedded fonts in PDF documents. These often do not have a 'cmap', 'post' and 'name' table and were not loaded by FreeType previously.. (thanks to Derek B. Noonburgs from XPDF)
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
diff --git a/ChangeLog b/ChangeLog
index a00d0d8..c607a34 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2002-02-06 David Turner <david@freetype.org>
+ * src/sfnt/sfobjs.c (SFNT_Load_Face): since many fonts embedded in
+ PDF documents do not include 'cmap', 'post' and 'name' tables, the
+ SFNT face loader has been changed to not immediately report an
+ error if these are not present.
+
+ Note that the specification _requires_ these tables, but Adobe
+ seems to ignore it completely..
+
+
* src/sfnt/ttcmap.c: removing compiler warnings
* src/pcf/pcfread.c, src/pcf/pcf.h, src/pcf/pcfdriver.c:
diff --git a/src/sfnt/sfobjs.c b/src/sfnt/sfobjs.c
index a8a5b76..fddc3c8 100644
--- a/src/sfnt/sfobjs.c
+++ b/src/sfnt/sfobjs.c
@@ -296,10 +296,10 @@
if ( !is_apple_sbit && LOAD_( header ) )
goto Exit;
- /* load other tables */
- if ( LOAD_( max_profile ) ||
- LOAD_( charmaps ) )
- goto Exit;
+ /* the following tables are often not present in embedded TrueType fonts */
+ /* within PDF documents, so don't check for them.. */
+ (void)LOAD_( max_profile );
+ (void)LOAD_( charmaps );
/* the following tables are optional in PCL fonts -- */
/* don't check for errors */