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]>.
--- 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;
}
}
}