Commit c2278680e741e0225fd6f32c367b433bff9e025d

David Turner 2002-11-23T15:53:57

* src/cff/cffload.c (cff_charser_load): modified charset loader to accept pre-defined charsets, even when the font contains fewer glyphs

diff --git a/ChangeLog b/ChangeLog
index d944f69..d4ae5ce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2002-11-23  David Turner  <david@freetype.org>
+
+        * src/cff/cffload.c (cff_charser_load): modified charset loader to
+        accept pre-defined charsets, even when the font contains fewer glyphs
+
+2002-11-18  David Turner  <david@freetype.org>
+
+        * FreeType 2.1.3 is released
+        ============================
+
 2002-11-07  David Turner  <david@freetype.org>
 
         * src/cache/ftcsbit.c (ftc_sbit_node_load): fixed a small bug that caused
diff --git a/src/cff/cffload.c b/src/cff/cffload.c
index b21cfc3..e05dec7 100644
--- a/src/cff/cffload.c
+++ b/src/cff/cffload.c
@@ -1595,17 +1595,16 @@
       /* In order to use a predefined charset, the following must be  */
       /* true: The charset constructed for the glyphs in the font's   */
       /* charstrings dictionary must match the predefined charset in  */
-      /* the first num_glyphs, and hence must match the predefined    */
-      /* charset *exactly*.                                           */
+      /* the first num_glyphs                                         */
 
       charset->offset = offset;  /* record charset type */
 
       switch ( (FT_UInt)offset )
       {
       case 0:
-        if ( num_glyphs != 229 )
+        if ( num_glyphs > 229 )
         {
-          FT_ERROR(("cff_charset_load: implicit charset not equal to\n"
+          FT_ERROR(("cff_charset_load: implicit charset larger than\n"
                     "predefined charset (Adobe ISO-Latin)!\n" ));
           error = CFF_Err_Invalid_File_Format;
           goto Exit;
@@ -1622,9 +1621,9 @@
         break;
 
       case 1:
-        if ( num_glyphs != 166 )
+        if ( num_glyphs > 166 )
         {
-          FT_ERROR(( "cff_charset_load: implicit charset not equal to\n"
+          FT_ERROR(( "cff_charset_load: implicit charset larger than\n"
                      "predefined charset (Adobe Expert)!\n" ));
           error = CFF_Err_Invalid_File_Format;
           goto Exit;
@@ -1641,9 +1640,9 @@
         break;
 
       case 2:
-        if ( num_glyphs != 87 )
+        if ( num_glyphs > 87 )
         {
-          FT_ERROR(( "cff_charset_load: implicit charset not equal to\n"
+          FT_ERROR(( "cff_charset_load: implicit charset larger than\n"
                      "predefined charset (Adobe Expert Subset)!\n" ));
           error = CFF_Err_Invalid_File_Format;
           goto Exit;