shithub: freetype+ttf2subf

Download patch

ref: 3d780173feddb66e404b317f88086da05ebf266b
parent: 4338dab2f80ec5f41bb8540c9904b101219e33e9
author: Werner Lemberg <[email protected]>
date: Sun Jan 11 05:01:08 EST 2004

Make `FT_Get_CMap_Language_ID' work with CFF.  Bug reported by
Steve Hartwell <[email protected]>.

* src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H.
(cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP.
(cff_get_cmap_info): New function.
(cff_service_get_cmap_info) New entry for cff_services.

* src/sfnt/ttcmap0.c: Exit loop after a format match has been found.
Suggested by Steve Hartwell <[email protected]>.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2004-01-10  Masatake YAMATO  <[email protected]>
+
+	Make `FT_Get_CMap_Language_ID' work with CFF.  Bug reported by
+	Steve Hartwell <[email protected]>.
+
+	* src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H.
+	(cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP.
+	(cff_get_cmap_info): New function.
+	(cff_service_get_cmap_info) New entry for cff_services.
+
+	* src/sfnt/ttcmap0.c: Exit loop after a format match has been found. 
+	Suggested by Steve Hartwell <[email protected]>.
+
 2004-01-03  Masatake YAMATO  <[email protected]>
 
 	* src/base/ftobjs.c (destroy_charmaps): New function.
--- a/src/cff/cffdrivr.c
+++ b/src/cff/cffdrivr.c
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    OpenType font driver implementation (body).                          */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
+/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -24,6 +24,7 @@
 #include FT_TRUETYPE_IDS_H
 #include FT_SERVICE_POSTSCRIPT_CMAPS_H
 #include FT_SERVICE_POSTSCRIPT_INFO_H
+#include FT_SERVICE_TT_CMAP_H
 
 #include "cffdrivr.h"
 #include "cffgload.h"
@@ -338,6 +339,32 @@
   };
 
 
+  /*
+   *  (empty) TT CMAP INFO
+   *
+   *  Hide TT CMAP INFO service defined in SFNT module;
+   *  just return 0.
+   *
+   */
+
+  static FT_Error
+  cff_get_cmap_info( FT_CharMap    charmap,
+                     TT_CMapInfo  *cmap_info )
+  {
+    FT_UNUSED( charmap );
+
+    cmap_info->language = 0;
+
+    return CFF_Err_Ok;
+  }
+
+
+  static const FT_Service_TTCMapsRec  cff_service_get_cmap_info =
+  {
+    (TT_CMap_Info_GetFunc)cff_get_cmap_info
+  };
+
+
   /*************************************************************************/
   /*************************************************************************/
   /*************************************************************************/
@@ -357,6 +384,7 @@
 #ifndef FT_CONFIG_OPTION_NO_GLYPH_NAMES
     { FT_SERVICE_ID_GLYPH_DICT,      &cff_service_glyph_dict },
 #endif
+    { FT_SERVICE_ID_TT_CMAP,         &cff_service_get_cmap_info },
     { NULL, NULL }
   };
 
--- a/src/sfnt/ttcmap0.c
+++ b/src/sfnt/ttcmap0.c
@@ -1966,6 +1966,7 @@
               FT_ERROR(( "tt_face_build_cmaps:" ));
               FT_ERROR(( " broken cmap sub-table ignored!\n" ));
             }
+            break;
           }
         }
       }