return 0;
}
+static void
+check_cmap_uvs (OTF_cmap *cmap, OTF_GlyphString *gstring, int idx)
+{
+ OTF_EncodingSubtable14 *sub14;
+ int c1 = gstring->glyphs[idx - 1].c;
+ int c2 = gstring->glyphs[idx].c;
+ int i;
+
+ gstring->glyphs[idx].glyph_id = 0;
+ for (i = 0; i < cmap->numTables; i++)
+ if (cmap->EncodingRecord[i].subtable.format == 14)
+ break;
+ if (i == cmap->numTables)
+ return;
+ sub14 = cmap->EncodingRecord[i].subtable.f.f14;
+ /* */
+}
+
\f
/* API */
+#define UVS_P(C) \
+ (((C) >= 0xFE00 && (C) <= 0xFE0F) || ((C) >= 0xE0100 && (C) <= 0xE01EF))
+
int
OTF_drive_cmap (OTF *otf, OTF_GlyphString *gstring)
{
int c = gstring->glyphs[i].c;
if (c < 32 || ! cmap->unicode_table)
gstring->glyphs[i].glyph_id = 0;
+ else if (UVS_P (c) && i > 0)
+ check_cmap_uvs (cmap, gstring, i);
else
gstring->glyphs[i].glyph_id = cmap->unicode_table[c];
}