freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2] master 8930cc9: * src/sfnt/ttcmap.c (tt_face_build_cmaps): I


From: Werner LEMBERG
Subject: [freetype2] master 8930cc9: * src/sfnt/ttcmap.c (tt_face_build_cmaps): Ignore version (#57708).
Date: Wed, 12 Feb 2020 12:25:37 -0500 (EST)

branch: master
commit 8930cc96188c21a0ea5f7da7a6d00c4fefd86d3a
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>

    * src/sfnt/ttcmap.c (tt_face_build_cmaps): Ignore version (#57708).
---
 ChangeLog         |  4 ++++
 src/sfnt/ttcmap.c | 18 ++++++++++--------
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 7c0c34e..068d4f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2020-02-12  Werner Lemberg  <address@hidden>
+
+       * src/sfnt/ttcmap.c (tt_face_build_cmaps): Ignore version (#57708).
+
 2020-02-04  Werner Lemberg  <address@hidden>
 
        * src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#57732).
diff --git a/src/sfnt/ttcmap.c b/src/sfnt/ttcmap.c
index a2ea1fb..2c34efb 100644
--- a/src/sfnt/ttcmap.c
+++ b/src/sfnt/ttcmap.c
@@ -3776,14 +3776,16 @@
     if ( !p || face->cmap_size < 4 )
       return FT_THROW( Invalid_Table );
 
-    /* only recognize format 0 */
-    if ( TT_NEXT_USHORT( p ) != 0 )
-    {
-      FT_ERROR(( "tt_face_build_cmaps:"
-                 " unsupported `cmap' table format = %d\n",
-                 TT_PEEK_USHORT( p - 2 ) ));
-      return FT_THROW( Invalid_Table );
-    }
+    /* Version 1.8.3 of the OpenType specification contains the following */
+    /* (https://docs.microsoft.com/en-us/typography/opentype/spec/cmap):  */
+    /*                                                                    */
+    /*   The 'cmap' table version number remains at 0x0000 for fonts that */
+    /*   make use of the newer subtable formats.                          */
+    /*                                                                    */
+    /* This essentially means that a version format test is useless.      */
+
+    /* ignore format */
+    p += 2;
 
     num_cmaps = TT_NEXT_USHORT( p );
     limit     = table + face->cmap_size;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]