[t1cid] Set FT_FACE_FLAG_CID_KEYED. * cidobjs.c (cid_face_init): Set FT_FACE_FLAG_CID_KEYED. * cidriver.c (cid_get_is_cid): Comment about the case that is_cid cannot guarantee the glyph collection specification.
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 39
diff --git a/src/cid/cidobjs.c b/src/cid/cidobjs.c
index 1fc121c..e11c41d 100644
--- a/src/cid/cidobjs.c
+++ b/src/cid/cidobjs.c
@@ -374,6 +374,14 @@
if ( info->is_fixed_pitch )
cidface->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
+ /*
+ * For the sfnt-wrapped CID fonts for MacOS, currently,
+ * its `cmap' tables are ignored, and the content in
+ * its `CID ' table is treated the same as naked CID-keyed
+ * font. See ft_lookup_PS_in_sfnt_stream().
+ */
+ cidface->face_flags |= FT_FACE_FLAG_CID_KEYED;
+
/* XXX: TODO: add kerning with .afm support */
/* get style name -- be careful, some broken fonts only */
diff --git a/src/cid/cidriver.c b/src/cid/cidriver.c
index fd015ef..0907b1d 100644
--- a/src/cid/cidriver.c
+++ b/src/cid/cidriver.c
@@ -141,8 +141,14 @@
FT_UNUSED( face );
+ /*
+ * XXX: If the ROS is Adobe-Identity-H or -V,
+ * the font has no reliable information about
+ * its glyph collection. Should we not set
+ * *is_cid in such cases?
+ */
if ( is_cid )
- *is_cid = 1; /* cid driver is only used for CID keyed fonts */
+ *is_cid = 1;
return error;
}