From b2a965df5ef1a90a1260b40ff3b4775ae9a222f3 Mon Sep 17 00:00:00 2001 From: Qunxin Liu Date: Wed, 22 Apr 2020 15:58:41 -0700 Subject: [PATCH] [subset] Add support for "--gids" option cmap subsetting now retains entries associated with any glyph ids explicitly requested --- src/hb-ot-cmap-table.hh | 205 ++++++++++++++++-- src/hb-ot-os2-table.hh | 21 +- src/hb-subset-plan.cc | 2 + src/hb-subset-plan.hh | 3 + test/api/test-subset-cmap.c | 4 +- test/subset/data/Makefile.sources | 2 +- .../Comfortaa-Regular-new.gids.61,62,63.ttf | Bin 0 -> 8296 bytes .../Comfortaa-Regular-new.gids.61,63.ttf | Bin 0 -> 7944 bytes .../basics/Comfortaa-Regular-new.gids.61.ttf | Bin 0 -> 7588 bytes .../basics/Comfortaa-Regular-new.gids.62.ttf | Bin 0 -> 7528 bytes .../basics/Comfortaa-Regular-new.gids.63.ttf | Bin 0 -> 7516 bytes ...-Regular-new.gids.retain-all-codepoint.ttf | Bin 0 -> 182876 bytes ...mMyeongjo-Regular-subset.gids.61,62,63.ttf | Bin 0 -> 4128 bytes ...anumMyeongjo-Regular-subset.gids.61,63.ttf | Bin 0 -> 4128 bytes .../NanumMyeongjo-Regular-subset.gids.61.ttf | Bin 0 -> 4128 bytes .../NanumMyeongjo-Regular-subset.gids.62.ttf | Bin 0 -> 4128 bytes .../NanumMyeongjo-Regular-subset.gids.63.ttf | Bin 0 -> 4128 bytes ...gular-subset.gids.retain-all-codepoint.ttf | Bin 0 -> 9524 bytes .../Roboto-Regular.abc.gids.61,62,63.ttf | Bin 0 -> 2168 bytes .../basics/Roboto-Regular.abc.gids.61,63.ttf | Bin 0 -> 2168 bytes .../basics/Roboto-Regular.abc.gids.61.ttf | Bin 0 -> 2168 bytes .../basics/Roboto-Regular.abc.gids.62.ttf | Bin 0 -> 2168 bytes .../basics/Roboto-Regular.abc.gids.63.ttf | Bin 0 -> 2168 bytes ...-Regular.abc.gids.retain-all-codepoint.ttf | Bin 0 -> 2168 bytes .../cmap14_font1.gids.4E00,4E02,4E03.otf | Bin 0 -> 1388 bytes .../cmap14/cmap14_font1.gids.4E00,4E03.otf | Bin 0 -> 1380 bytes .../cmap14_font1.gids.4E00,4E05,4E07.otf | Bin 0 -> 1620 bytes .../cmap14_font1.gids.4E02,4E03,4E08.otf | Bin 0 -> 1744 bytes .../cmap14/cmap14_font1.gids.4E02.otf | Bin 0 -> 1312 bytes .../cmap14/cmap14_font1.gids.4E03.otf | Bin 0 -> 1352 bytes .../cmap14_font1.gids.4E05,4E07,4E08,4E09.otf | Bin 0 -> 2164 bytes .../cmap14/cmap14_font1.gids.4E08,4E09.otf | Bin 0 -> 2036 bytes .../cmap14/cmap14_font1.gids.4E08.otf | Bin 0 -> 1704 bytes ...cmap14_font1.gids.retain-all-codepoint.otf | Bin 0 -> 2380 bytes .../cmap14_font2.gids.4E00,4E02,4E03.otf | Bin 0 -> 1388 bytes .../cmap14/cmap14_font2.gids.4E00,4E03.otf | Bin 0 -> 1380 bytes .../cmap14_font2.gids.4E00,4E05,4E07.otf | Bin 0 -> 1624 bytes .../cmap14_font2.gids.4E02,4E03,4E08.otf | Bin 0 -> 1744 bytes .../cmap14/cmap14_font2.gids.4E02.otf | Bin 0 -> 1308 bytes .../cmap14/cmap14_font2.gids.4E03.otf | Bin 0 -> 1348 bytes .../cmap14_font2.gids.4E05,4E07,4E08,4E09.otf | Bin 0 -> 2164 bytes .../cmap14/cmap14_font2.gids.4E08,4E09.otf | Bin 0 -> 2032 bytes .../cmap14/cmap14_font2.gids.4E08.otf | Bin 0 -> 1700 bytes ...cmap14_font2.gids.retain-all-codepoint.otf | Bin 0 -> 2376 bytes .../Mplus1p-Regular.default.25771.ttf | Bin 0 -> 1824 bytes .../Mplus1p-Regular.drop-hints.25771.ttf | Bin 0 -> 1096 bytes .../Mplus1p-Regular.keep-gdef.25771.ttf | Bin 0 -> 1860 bytes test/subset/data/profiles/gids.txt | 1 + test/subset/data/tests/basics.tests | 1 + test/subset/data/tests/cmap14.tests | 1 + test/subset/data/tests/japanese.tests | 1 + test/subset/meson.build | 3 +- util/options-subset.cc | 61 ++++++ 53 files changed, 282 insertions(+), 23 deletions(-) create mode 100644 test/subset/data/expected/basics/Comfortaa-Regular-new.gids.61,62,63.ttf create mode 100644 test/subset/data/expected/basics/Comfortaa-Regular-new.gids.61,63.ttf create mode 100644 test/subset/data/expected/basics/Comfortaa-Regular-new.gids.61.ttf create mode 100644 test/subset/data/expected/basics/Comfortaa-Regular-new.gids.62.ttf create mode 100644 test/subset/data/expected/basics/Comfortaa-Regular-new.gids.63.ttf create mode 100644 test/subset/data/expected/basics/Comfortaa-Regular-new.gids.retain-all-codepoint.ttf create mode 100644 test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.61,62,63.ttf create mode 100644 test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.61,63.ttf create mode 100644 test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.61.ttf create mode 100644 test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.62.ttf create mode 100644 test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.63.ttf create mode 100644 test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.retain-all-codepoint.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.gids.61,62,63.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.gids.61,63.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.gids.61.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.gids.62.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.gids.63.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.gids.retain-all-codepoint.ttf create mode 100644 test/subset/data/expected/cmap14/cmap14_font1.gids.4E00,4E02,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font1.gids.4E00,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font1.gids.4E00,4E05,4E07.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font1.gids.4E02,4E03,4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font1.gids.4E02.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font1.gids.4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font1.gids.4E05,4E07,4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font1.gids.4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font1.gids.4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font1.gids.retain-all-codepoint.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.gids.4E00,4E02,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.gids.4E00,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.gids.4E00,4E05,4E07.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.gids.4E02,4E03,4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.gids.4E02.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.gids.4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.gids.4E05,4E07,4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.gids.4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.gids.4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.gids.retain-all-codepoint.otf create mode 100644 test/subset/data/expected/japanese/Mplus1p-Regular.default.25771.ttf create mode 100644 test/subset/data/expected/japanese/Mplus1p-Regular.drop-hints.25771.ttf create mode 100644 test/subset/data/expected/japanese/Mplus1p-Regular.keep-gdef.25771.ttf create mode 100644 test/subset/data/profiles/gids.txt diff --git a/src/hb-ot-cmap-table.hh b/src/hb-ot-cmap-table.hh index 861a5eaed..5918dd19d 100644 --- a/src/hb-ot-cmap-table.hh +++ b/src/hb-ot-cmap-table.hh @@ -56,6 +56,18 @@ struct CmapSubtableFormat0 out->add (i); } + void collect_mapping (hb_set_t *unicodes, /* OUT */ + hb_map_t *mapping /* OUT */) const + { + for (unsigned i = 0; i < 256; i++) + if (glyphIdArray[i]) + { + hb_codepoint_t glyph = glyphIdArray[i]; + *unicodes << i; + *mapping << hb_pair_t (i, glyph); + } + } + bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); @@ -238,8 +250,7 @@ struct CmapSubtableFormat4 { return _.first <= 0xFFFF; }) ; - //comment off temporarily while we're working on supporting --gids option - //if (format4_iter.len () == 0) return; + if (format4_iter.len () == 0) return; unsigned table_initpos = c->length (); if (unlikely (!c->extend_min (*this))) return; @@ -377,6 +388,45 @@ struct CmapSubtableFormat4 } } + void collect_mapping (hb_set_t *unicodes, /* OUT */ + hb_map_t *mapping /* OUT */) const + { + unsigned count = this->segCount; + if (count && this->startCount[count - 1] == 0xFFFFu) + count--; /* Skip sentinel segment. */ + for (unsigned i = 0; i < count; i++) + { + hb_codepoint_t start = this->startCount[i]; + hb_codepoint_t end = this->endCount[i]; + unsigned rangeOffset = this->idRangeOffset[i]; + if (rangeOffset == 0) + { + for (hb_codepoint_t codepoint = start; codepoint <= end; codepoint++) + { + hb_codepoint_t gid = (codepoint + this->idDelta[i]) & 0xFFFFu; + if (unlikely (!gid)) + continue; + *unicodes << codepoint; + *mapping << hb_pair_t (codepoint, gid); + } + } + else + { + for (hb_codepoint_t codepoint = start; codepoint <= end; codepoint++) + { + unsigned index = rangeOffset / 2 + (codepoint - this->startCount[i]) + i - this->segCount; + if (unlikely (index >= this->glyphIdArrayLength)) + break; + hb_codepoint_t gid = this->glyphIdArray[index]; + if (unlikely (!gid)) + continue; + *unicodes << codepoint; + *mapping << hb_pair_t (codepoint, gid); + } + } + } + } + const HBUINT16 *endCount; const HBUINT16 *startCount; const HBUINT16 *idDelta; @@ -397,6 +447,13 @@ struct CmapSubtableFormat4 accel.collect_unicodes (out); } + void collect_mapping (hb_set_t *unicodes, /* OUT */ + hb_map_t *mapping /* OUT */) const + { + accelerator_t accel (this); + accel.collect_mapping (unicodes, mapping); + } + bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); @@ -499,6 +556,21 @@ struct CmapSubtableTrimmed out->add (start + i); } + void collect_mapping (hb_set_t *unicodes, /* OUT */ + hb_map_t *mapping /* OUT */) const + { + hb_codepoint_t start_cp = startCharCode; + unsigned count = glyphIdArray.len; + for (unsigned i = 0; i < count; i++) + if (glyphIdArray[i]) + { + hb_codepoint_t unicode = start_cp + i; + hb_codepoint_t glyphid = glyphIdArray[i]; + *unicodes << unicode; + *mapping << hb_pair_t (unicode, glyphid); + } + } + bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); @@ -557,6 +629,36 @@ struct CmapSubtableLongSegmented } } + void collect_mapping (hb_set_t *unicodes, /* OUT */ + hb_map_t *mapping, /* OUT */ + unsigned num_glyphs) const + { + for (unsigned i = 0; i < this->groups.len; i++) + { + hb_codepoint_t start = this->groups[i].startCharCode; + hb_codepoint_t end = hb_min ((hb_codepoint_t) this->groups[i].endCharCode, + (hb_codepoint_t) HB_UNICODE_MAX); + hb_codepoint_t gid = this->groups[i].glyphID; + if (!gid) + { + /* Intention is: if (hb_is_same (T, CmapSubtableFormat13)) continue; */ + if (! T::group_get_glyph (this->groups[i], end)) continue; + start++; + gid++; + } + if (unlikely ((unsigned int) gid >= num_glyphs)) continue; + if (unlikely ((unsigned int) (gid + end - start) >= num_glyphs)) + end = start + (hb_codepoint_t) num_glyphs - gid; + + for (unsigned cp = start; cp <= end; cp++) + { + *unicodes << cp; + *mapping << hb_pair_t (cp, gid); + gid++; + } + } + } + bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); @@ -783,6 +885,19 @@ struct NonDefaultUVS : SortedArrayOf out->add (arrayZ[i].unicodeValue); } + void collect_mapping (hb_set_t *unicodes, /* OUT */ + hb_map_t *mapping /* OUT */) const + { + unsigned count = len; + for (unsigned i = 0; i < count; i++) + { + hb_codepoint_t unicode = arrayZ[i].unicodeValue; + hb_codepoint_t glyphid = arrayZ[i].glyphID; + *unicodes << unicode; + *mapping << hb_pair_t (unicode, glyphid); + } + } + void closure_glyphs (const hb_set_t *unicodes, hb_set_t *glyphset) const { @@ -795,7 +910,7 @@ struct NonDefaultUVS : SortedArrayOf NonDefaultUVS* copy (hb_serialize_context_t *c, const hb_set_t *unicodes, - const hb_set_t *glyphs, + const hb_set_t *glyphs_requested, const hb_map_t *glyph_map) const { NonDefaultUVS *out = c->start_embed (); @@ -805,7 +920,7 @@ struct NonDefaultUVS : SortedArrayOf + as_array () | hb_filter ([&] (const UVSMapping& _) { - return unicodes->has (_.unicodeValue) || glyphs->has (_.glyphID); + return unicodes->has (_.unicodeValue) || glyphs_requested->has (_.glyphID); }) ; @@ -867,6 +982,14 @@ struct VariationSelectorRecord (base+nonDefaultUVS).collect_unicodes (out); } + void collect_mapping (const void *base, + hb_set_t *unicodes, /* OUT */ + hb_map_t *mapping /* OUT */) const + { + (base+defaultUVS).collect_unicodes (unicodes); + (base+nonDefaultUVS).collect_mapping (unicodes, mapping); + } + int cmp (const hb_codepoint_t &variation_selector) const { return varSelector.cmp (variation_selector); } @@ -881,7 +1004,7 @@ struct VariationSelectorRecord hb_pair_t copy (hb_serialize_context_t *c, const hb_set_t *unicodes, - const hb_set_t *glyphs, + const hb_set_t *glyphs_requested, const hb_map_t *glyph_map, const void *base) const { @@ -896,7 +1019,7 @@ struct VariationSelectorRecord if (nonDefaultUVS != 0) { c->push (); - if (c->copy (base+nonDefaultUVS, unicodes, glyphs, glyph_map)) + if (c->copy (base+nonDefaultUVS, unicodes, glyphs_requested, glyph_map)) non_default_uvs_objidx = c->pop_pack (); else c->pop_discard (); } @@ -945,7 +1068,7 @@ struct CmapSubtableFormat14 void serialize (hb_serialize_context_t *c, const hb_set_t *unicodes, - const hb_set_t *glyphs, + const hb_set_t *glyphs_requested, const hb_map_t *glyph_map, const void *base) { @@ -974,7 +1097,7 @@ struct CmapSubtableFormat14 hb_vector_t> obj_indices; for (int i = src_tbl->record.len - 1; i >= 0; i--) { - hb_pair_t result = src_tbl->record[i].copy (c, unicodes, glyphs, glyph_map, base); + hb_pair_t result = src_tbl->record[i].copy (c, unicodes, glyphs_requested, glyph_map, base); if (result.first || result.second) obj_indices.push (result); } @@ -1037,6 +1160,13 @@ struct CmapSubtableFormat14 _.collect_unicodes (out, this); } + void collect_mapping (hb_set_t *unicodes, /* OUT */ + hb_map_t *mapping /* OUT */) const + { + for (const VariationSelectorRecord& _ : record) + _.collect_mapping (this, unicodes, mapping); + } + bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); @@ -1086,6 +1216,22 @@ struct CmapSubtable } } + void collect_mapping (hb_set_t *unicodes, /* OUT */ + hb_map_t *mapping, /* OUT */ + unsigned num_glyphs = UINT_MAX) const + { + switch (u.format) { + case 0: u.format0 .collect_mapping (unicodes, mapping); return; + case 4: u.format4 .collect_mapping (unicodes, mapping); return; + case 6: u.format6 .collect_mapping (unicodes, mapping); return; + case 10: u.format10.collect_mapping (unicodes, mapping); return; + case 12: u.format12.collect_mapping (unicodes, mapping, num_glyphs); return; + case 13: u.format13.collect_mapping (unicodes, mapping, num_glyphs); return; + case 14: + default: return; + } + } + template void serialize (hb_serialize_context_t *c, @@ -1097,7 +1243,7 @@ struct CmapSubtable switch (format) { case 4: return u.format4.serialize (c, it); case 12: return u.format12.serialize (c, it); - case 14: return u.format14.serialize (c, plan->unicodes, plan->_glyphset, plan->glyph_map, base); + case 14: return u.format14.serialize (c, plan->unicodes, plan->glyphs_requested, plan->glyph_map, base); default: return; } } @@ -1200,7 +1346,7 @@ struct cmap static constexpr hb_tag_t tableTag = HB_OT_TAG_cmap; template + hb_requires (hb_is_iterator (EncodingRecIter))> void serialize (hb_serialize_context_t *c, Iterator it, EncodingRecIter encodingrec_iter, @@ -1215,13 +1361,38 @@ struct cmap for (const EncodingRecord& _ : encodingrec_iter) { hb_set_t unicodes_set; - (base+_.subtable).collect_unicodes (&unicodes_set); + hb_map_t cp_glyphid_map; + (base+_.subtable).collect_mapping (&unicodes_set, &cp_glyphid_map); unsigned format = (base+_.subtable).u.format; - - if (format == 4) c->copy (_, + it | hb_filter (unicodes_set, hb_first), 4u, base, plan, &format4objidx); - else if (format == 12) c->copy (_, + it | hb_filter (unicodes_set, hb_first), 12u, base, plan, &format12objidx); - else if (format == 14) c->copy (_, it, 14u, base, plan, &format14objidx); + if (!plan->glyphs_requested->is_empty ()) + { + auto table_iter = + + hb_zip (unicodes_set.iter(), unicodes_set.iter() | hb_map(cp_glyphid_map)) + | hb_filter (plan->_glyphset, hb_second) + | hb_filter ([plan] (const hb_pair_t& p) + { + return plan->unicodes->has (p.first) || + plan->glyphs_requested->has (p.second); + }) + | hb_map ([plan] (const hb_pair_t& p_org) + { + return hb_pair_t (p_org.first, plan->glyph_map->get(p_org.second)); + }) + ; + + if (format == 4) c->copy (_, table_iter, 4u, base, plan, &format4objidx); + else if (format == 12) c->copy (_, table_iter, 12u, base, plan, &format12objidx); + else if (format == 14) c->copy (_, table_iter, 14u, base, plan, &format14objidx); + } + /* when --gids option is not used, we iterate input unicodes instead of + * all codepoints in each subtable, which is more efficient */ + else + { + if (format == 4) c->copy (_, + it | hb_filter (unicodes_set, hb_first), 4u, base, plan, &format4objidx); + else if (format == 12) c->copy (_, + it | hb_filter (unicodes_set, hb_first), 12u, base, plan, &format12objidx); + else if (format == 14) c->copy (_, it, 14u, base, plan, &format14objidx); + } } c->check_assign(this->encodingRecord.len, (c->length () - cmap::min_size)/EncodingRecord::static_size); @@ -1291,7 +1462,6 @@ struct cmap | hb_filter ([&] (const hb_pair_t _) { return (_.second != HB_MAP_VALUE_INVALID); }) ; - cmap_prime->serialize (c->serializer, it, encodingrec_iter, this, c->plan); return_trace (true); } @@ -1413,6 +1583,9 @@ struct cmap void collect_unicodes (hb_set_t *out, unsigned int num_glyphs) const { subtable->collect_unicodes (out, num_glyphs); } + void collect_mapping (hb_set_t *unicodes, hb_map_t *mapping, + unsigned num_glyphs = UINT_MAX) const + { subtable->collect_mapping (unicodes, mapping, num_glyphs); } void collect_variation_selectors (hb_set_t *out) const { subtable_uvs->collect_variation_selectors (out); } void collect_variation_unicodes (hb_codepoint_t variation_selector, diff --git a/src/hb-ot-os2-table.hh b/src/hb-ot-os2-table.hh index bcbc33159..f538fd4c0 100644 --- a/src/hb-ot-os2-table.hh +++ b/src/hb-ot-os2-table.hh @@ -30,6 +30,7 @@ #include "hb-open-type.hh" #include "hb-ot-os2-unicode-ranges.hh" +#include "hb-ot-cmap-table.hh" #include "hb-set.hh" @@ -172,12 +173,28 @@ struct OS2 OS2 *os2_prime = c->serializer->embed (this); if (unlikely (!os2_prime)) return_trace (false); + hb_set_t unicodes; + hb_map_t unicode_glyphid_map; + + OT::cmap::accelerator_t cmap; + cmap.init (c->plan->source); + cmap.collect_mapping (&unicodes, &unicode_glyphid_map); + cmap.fini (); + + if (c->plan->unicodes->is_empty ()) unicodes.clear (); + else hb_set_set (&unicodes, c->plan->unicodes); + + + unicode_glyphid_map.iter () + | hb_filter (c->plan->glyphs_requested, hb_second) + | hb_map (hb_first) + | hb_sink (unicodes) + ; uint16_t min_cp, max_cp; - find_min_and_max_codepoint (c->plan->unicodes, &min_cp, &max_cp); + find_min_and_max_codepoint (&unicodes, &min_cp, &max_cp); os2_prime->usFirstCharIndex = min_cp; os2_prime->usLastCharIndex = max_cp; - _update_unicode_ranges (c->plan->unicodes, os2_prime->ulUnicodeRange); + _update_unicode_ranges (&unicodes, os2_prime->ulUnicodeRange); return_trace (true); } diff --git a/src/hb-subset-plan.cc b/src/hb-subset-plan.cc index 9e59be259..54656f5dd 100644 --- a/src/hb-subset-plan.cc +++ b/src/hb-subset-plan.cc @@ -294,6 +294,7 @@ hb_subset_plan_create (hb_face_t *face, plan->name_ids = hb_set_reference (input->name_ids); _nameid_closure (face, plan->name_ids); plan->name_languages = hb_set_reference (input->name_languages); + plan->glyphs_requested = hb_set_reference (input->glyphs); plan->drop_tables = hb_set_reference (input->drop_tables); plan->source = hb_face_reference (face); plan->dest = hb_face_builder_create (); @@ -337,6 +338,7 @@ hb_subset_plan_destroy (hb_subset_plan_t *plan) hb_set_destroy (plan->unicodes); hb_set_destroy (plan->name_ids); hb_set_destroy (plan->name_languages); + hb_set_destroy (plan->glyphs_requested); hb_set_destroy (plan->drop_tables); hb_face_destroy (plan->source); hb_face_destroy (plan->dest); diff --git a/src/hb-subset-plan.hh b/src/hb-subset-plan.hh index 1e2479683..cd3d07b00 100644 --- a/src/hb-subset-plan.hh +++ b/src/hb-subset-plan.hh @@ -53,6 +53,9 @@ struct hb_subset_plan_t // name_languages we would like to retain hb_set_t *name_languages; + //glyph ids requested to retain + hb_set_t *glyphs_requested; + // Tables which should be dropped. hb_set_t *drop_tables; diff --git a/test/api/test-subset-cmap.c b/test/api/test-subset-cmap.c index 38f01539e..e16400ea5 100644 --- a/test/api/test-subset-cmap.c +++ b/test/api/test-subset-cmap.c @@ -113,7 +113,6 @@ test_subset_cmap4_no_exceeding_maximum_codepoint (void) hb_face_destroy (face_origin); } -/* TEMPORARILY COMMENTED OFF static void test_subset_cmap_empty_tables (void) { @@ -133,7 +132,6 @@ test_subset_cmap_empty_tables (void) hb_face_destroy (face_abc); hb_face_destroy (face_empty); } -*/ static void test_subset_cmap_noto_color_emoji_noop (void) @@ -188,7 +186,7 @@ main (int argc, char **argv) hb_test_add (test_subset_cmap_noop); hb_test_add (test_subset_cmap_non_consecutive_glyphs); hb_test_add (test_subset_cmap4_no_exceeding_maximum_codepoint); - //hb_test_add (test_subset_cmap_empty_tables); + hb_test_add (test_subset_cmap_empty_tables); hb_test_add (test_subset_cmap_noto_color_emoji_noop); hb_test_add (test_subset_cmap_noto_color_emoji_non_consecutive_glyphs); diff --git a/test/subset/data/Makefile.sources b/test/subset/data/Makefile.sources index ef3a3d92c..f50e6ae6b 100644 --- a/test/subset/data/Makefile.sources +++ b/test/subset/data/Makefile.sources @@ -4,6 +4,7 @@ TESTS = \ tests/cff-full-font.tests \ tests/japanese.tests \ tests/cff-japanese.tests \ + tests/cmap.tests \ tests/cmap14.tests \ tests/sbix.tests \ tests/colr.tests \ @@ -20,7 +21,6 @@ DISABLED_TESTS = \ tests/layout.gsub3.tests \ tests/layout.gsub6.tests \ tests/layout.gdef.tests \ - tests/cmap.tests \ $(NULL) XFAIL_TESTS = \ diff --git a/test/subset/data/expected/basics/Comfortaa-Regular-new.gids.61,62,63.ttf b/test/subset/data/expected/basics/Comfortaa-Regular-new.gids.61,62,63.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f720295f0ba33472bd685be2135d0e6755645b2c GIT binary patch literal 8296 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 UeeYfg^z?i0z4O+%m|I5w1IFD79smFU literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/basics/Comfortaa-Regular-new.gids.61,63.ttf b/test/subset/data/expected/basics/Comfortaa-Regular-new.gids.61,63.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e711246a32ba2ea0c1f51e838c1ba5d9b738ad3d GIT binary patch literal 7944 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 Xd-tIBy?aH_bHDuM`|nMO#YXxc%Sf+U literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/basics/Comfortaa-Regular-new.gids.61.ttf b/test/subset/data/expected/basics/Comfortaa-Regular-new.gids.61.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8936629f8a5e4f19b3469a43bfa6dd89b70c8834 GIT binary patch literal 7588 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�}}^qm${6aoXF?! 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 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/basics/Comfortaa-Regular-new.gids.63.ttf b/test/subset/data/expected/basics/Comfortaa-Regular-new.gids.63.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4a53bb27abc27a7254cf7654da678f0310406b72 GIT binary patch literal 7516 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 ba}XEj=3w^RToLrG&p!M3!%4BQ3X}g2h^|zh literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/basics/Comfortaa-Regular-new.gids.retain-all-codepoint.ttf b/test/subset/data/expected/basics/Comfortaa-Regular-new.gids.retain-all-codepoint.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a29c7086f2d268623e7a9eb220b4464e52860d57 GIT binary patch literal 182876 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 D*Pw4h literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.61,63.ttf b/test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.61,63.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dbed582fb56afff74f581a9be494eac5adb9b3b2 GIT binary patch literal 4128 zcmc&%YitzP6+U-ny7uu`i^Zh)i>!Ibcl8ckD)ELK#I`btz%(W*gBV^yu%L`qwUs#QeVCTzc% zSwDbA%8yDl``vrbxo6HjbIy0~9f%Q82^}GxhPMsI;=6AT{hO$;AKKxOsq{3hqRWsq z$ZJLp9uNzvEZ6l1@V9nsdVK2LFKnB_{GW&l){Uq4Pebp-&xhVNzUS$&AOHN0P;hzW8?{E9^;~fWmf||0AA{LJm$$9XM26O<#dr1=+c0-$&|LP1Op0z~mhtvD^AGnjFIFaKceSUgoblQ6BIOgm@$P2_# zGLQdSdrvY;v6%k~#mKill~>qxg`M0>3YV^M>56$cvs0|JtSw8{ zg^hkHBrBBzwLmMd8F&mB2fhS61DpWP1Fr!;1MEW^3+N^W?*rV>Jkqx4Gv>^axPa+* zNTd${ZU~FmFz^9&z*?XeNCFeUA>diyBya)90&f6z_*L_M**t3OrATBR8LCE~rD`lh zH{jc9Oz{*(uL23+QD6)>2pk2D1LuItz)u0=1>VNsJ%AfBy*Y2pQ$1GUjpWqFvLr1u zHifKKkK5ZES6j=iR%vy()@WN*RsXfD2}`T3g>HSKWsR+BWvoN+yK$I)|xpsqn?RqId;0 zyt=|`GQomD*m&76k{Mdak{7*VvO)nX6tF@8D-^Io0V@=+LIEojutEVV6tF@8D-^Io zS!9I*RwzbNi{VW*xuAjz>LM3Za6ttZRB%BB7gTUT1s7CsK?N67a6ttZRB%BB7r=rc zmZf%7q#0<3Tj2(Pv5cSzW75aa^EW`f-%>OE88E0(`cSgaX{w2y^DQCpF%%3bDj_{u74h3bSLZ><)jFs=lK zL)gNuQUz1#0qo~us=>MDu}V{fKmGc;bQ*Jtb*O zn$}p)Fa%MvgrrL)_v z*k^VRp=$tQz%^h&IR?A+M!UgiJB+p$bC`I>?2alpr=nZ3Wb032?Qf*AEcdl6byr^j zY56C1V7ewMianFvpb7*r3I&*xr9f0npq`0=q?8gfVy16bMofqk>0KzL(PLsXlZqk7 zgULy>k0b+HSIWOM98IO#;b*n(2amu!lY)occ@O9fRqPWONzpALc+{WVp45(X`?ap_ zls^yDH=zLXc`Q(nLHBCwSae!Y?M$p0wi(a(}{ zeEsgn zvc^fz(cLzsl(|bo^El=$6vM~5-DD@Y5p z1g8y7FH?1{4Cma3xL)cIwTGf4!EZfnqE1*9 z6Cl!7d_QePuUpQ*R&Ud=o5W}@HDG2VyzW82>|?(n zjnaM^h4vuYU4~`Cct&4i7j*lLHTN2`BJD&JBGR}Gt35&kC~*?cY{go8=_#6`hcQ2D zJU>pm(GNfx$IKpB%pl$dMB5B>epFe++jk%z`|zeC z#;OMmoo>|t2B?^w!pdJXVmg3txducsiMKF4HK1=oJaO2XUl8c-d<^-&{V`(rj&S@3 D*Pw4h literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.61.ttf b/test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.61.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dbed582fb56afff74f581a9be494eac5adb9b3b2 GIT binary patch literal 4128 zcmc&%YitzP6+U-ny7uu`i^Zh)i>!Ibcl8ckD)ELK#I`btz%(W*gBV^yu%L`qwUs#QeVCTzc% zSwDbA%8yDl``vrbxo6HjbIy0~9f%Q82^}GxhPMsI;=6AT{hO$;AKKxOsq{3hqRWsq z$ZJLp9uNzvEZ6l1@V9nsdVK2LFKnB_{GW&l){Uq4Pebp-&xhVNzUS$&AOHN0P;hzW8?{E9^;~fWmf||0AA{LJm$$9XM26O<#dr1=+c0-$&|LP1Op0z~mhtvD^AGnjFIFaKceSUgoblQ6BIOgm@$P2_# zGLQdSdrvY;v6%k~#mKill~>qxg`M0>3YV^M>56$cvs0|JtSw8{ zg^hkHBrBBzwLmMd8F&mB2fhS61DpWP1Fr!;1MEW^3+N^W?*rV>Jkqx4Gv>^axPa+* zNTd${ZU~FmFz^9&z*?XeNCFeUA>diyBya)90&f6z_*L_M**t3OrATBR8LCE~rD`lh zH{jc9Oz{*(uL23+QD6)>2pk2D1LuItz)u0=1>VNsJ%AfBy*Y2pQ$1GUjpWqFvLr1u zHifKKkK5ZES6j=iR%vy()@WN*RsXfD2}`T3g>HSKWsR+BWvoN+yK$I)|xpsqn?RqId;0 zyt=|`GQomD*m&76k{Mdak{7*VvO)nX6tF@8D-^Io0V@=+LIEojutEVV6tF@8D-^Io zS!9I*RwzbNi{VW*xuAjz>LM3Za6ttZRB%BB7gTUT1s7CsK?N67a6ttZRB%BB7r=rc zmZf%7q#0<3Tj2(Pv5cSzW75aa^EW`f-%>OE88E0(`cSgaX{w2y^DQCpF%%3bDj_{u74h3bSLZ><)jFs=lK zL)gNuQUz1#0qo~us=>MDu}V{fKmGc;bQ*Jtb*O zn$}p)Fa%MvgrrL)_v z*k^VRp=$tQz%^h&IR?A+M!UgiJB+p$bC`I>?2alpr=nZ3Wb032?Qf*AEcdl6byr^j zY56C1V7ewMianFvpb7*r3I&*xr9f0npq`0=q?8gfVy16bMofqk>0KzL(PLsXlZqk7 zgULy>k0b+HSIWOM98IO#;b*n(2amu!lY)occ@O9fRqPWONzpALc+{WVp45(X`?ap_ zls^yDH=zLXc`Q(nLHBCwSae!Y?M$p0wi(a(}{ zeEsgn zvc^fz(cLzsl(|bo^El=$6vM~5-DD@Y5p z1g8y7FH?1{4Cma3xL)cIwTGf4!EZfnqE1*9 z6Cl!7d_QePuUpQ*R&Ud=o5W}@HDG2VyzW82>|?(n zjnaM^h4vuYU4~`Cct&4i7j*lLHTN2`BJD&JBGR}Gt35&kC~*?cY{go8=_#6`hcQ2D zJU>pm(GNfx$IKpB%pl$dMB5B>epFe++jk%z`|zeC z#;OMmoo>|t2B?^w!pdJXVmg3txducsiMKF4HK1=oJaO2XUl8c-d<^-&{V`(rj&S@3 D*Pw4h literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.62.ttf b/test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.62.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dbed582fb56afff74f581a9be494eac5adb9b3b2 GIT binary patch literal 4128 zcmc&%YitzP6+U-ny7uu`i^Zh)i>!Ibcl8ckD)ELK#I`btz%(W*gBV^yu%L`qwUs#QeVCTzc% zSwDbA%8yDl``vrbxo6HjbIy0~9f%Q82^}GxhPMsI;=6AT{hO$;AKKxOsq{3hqRWsq z$ZJLp9uNzvEZ6l1@V9nsdVK2LFKnB_{GW&l){Uq4Pebp-&xhVNzUS$&AOHN0P;hzW8?{E9^;~fWmf||0AA{LJm$$9XM26O<#dr1=+c0-$&|LP1Op0z~mhtvD^AGnjFIFaKceSUgoblQ6BIOgm@$P2_# zGLQdSdrvY;v6%k~#mKill~>qxg`M0>3YV^M>56$cvs0|JtSw8{ zg^hkHBrBBzwLmMd8F&mB2fhS61DpWP1Fr!;1MEW^3+N^W?*rV>Jkqx4Gv>^axPa+* zNTd${ZU~FmFz^9&z*?XeNCFeUA>diyBya)90&f6z_*L_M**t3OrATBR8LCE~rD`lh zH{jc9Oz{*(uL23+QD6)>2pk2D1LuItz)u0=1>VNsJ%AfBy*Y2pQ$1GUjpWqFvLr1u zHifKKkK5ZES6j=iR%vy()@WN*RsXfD2}`T3g>HSKWsR+BWvoN+yK$I)|xpsqn?RqId;0 zyt=|`GQomD*m&76k{Mdak{7*VvO)nX6tF@8D-^Io0V@=+LIEojutEVV6tF@8D-^Io zS!9I*RwzbNi{VW*xuAjz>LM3Za6ttZRB%BB7gTUT1s7CsK?N67a6ttZRB%BB7r=rc zmZf%7q#0<3Tj2(Pv5cSzW75aa^EW`f-%>OE88E0(`cSgaX{w2y^DQCpF%%3bDj_{u74h3bSLZ><)jFs=lK zL)gNuQUz1#0qo~us=>MDu}V{fKmGc;bQ*Jtb*O zn$}p)Fa%MvgrrL)_v z*k^VRp=$tQz%^h&IR?A+M!UgiJB+p$bC`I>?2alpr=nZ3Wb032?Qf*AEcdl6byr^j zY56C1V7ewMianFvpb7*r3I&*xr9f0npq`0=q?8gfVy16bMofqk>0KzL(PLsXlZqk7 zgULy>k0b+HSIWOM98IO#;b*n(2amu!lY)occ@O9fRqPWONzpALc+{WVp45(X`?ap_ zls^yDH=zLXc`Q(nLHBCwSae!Y?M$p0wi(a(}{ zeEsgn zvc^fz(cLzsl(|bo^El=$6vM~5-DD@Y5p z1g8y7FH?1{4Cma3xL)cIwTGf4!EZfnqE1*9 z6Cl!7d_QePuUpQ*R&Ud=o5W}@HDG2VyzW82>|?(n zjnaM^h4vuYU4~`Cct&4i7j*lLHTN2`BJD&JBGR}Gt35&kC~*?cY{go8=_#6`hcQ2D zJU>pm(GNfx$IKpB%pl$dMB5B>epFe++jk%z`|zeC z#;OMmoo>|t2B?^w!pdJXVmg3txducsiMKF4HK1=oJaO2XUl8c-d<^-&{V`(rj&S@3 D*Pw4h literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.63.ttf b/test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.63.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dbed582fb56afff74f581a9be494eac5adb9b3b2 GIT binary patch literal 4128 zcmc&%YitzP6+U-ny7uu`i^Zh)i>!Ibcl8ckD)ELK#I`btz%(W*gBV^yu%L`qwUs#QeVCTzc% zSwDbA%8yDl``vrbxo6HjbIy0~9f%Q82^}GxhPMsI;=6AT{hO$;AKKxOsq{3hqRWsq z$ZJLp9uNzvEZ6l1@V9nsdVK2LFKnB_{GW&l){Uq4Pebp-&xhVNzUS$&AOHN0P;hzW8?{E9^;~fWmf||0AA{LJm$$9XM26O<#dr1=+c0-$&|LP1Op0z~mhtvD^AGnjFIFaKceSUgoblQ6BIOgm@$P2_# zGLQdSdrvY;v6%k~#mKill~>qxg`M0>3YV^M>56$cvs0|JtSw8{ zg^hkHBrBBzwLmMd8F&mB2fhS61DpWP1Fr!;1MEW^3+N^W?*rV>Jkqx4Gv>^axPa+* zNTd${ZU~FmFz^9&z*?XeNCFeUA>diyBya)90&f6z_*L_M**t3OrATBR8LCE~rD`lh zH{jc9Oz{*(uL23+QD6)>2pk2D1LuItz)u0=1>VNsJ%AfBy*Y2pQ$1GUjpWqFvLr1u zHifKKkK5ZES6j=iR%vy()@WN*RsXfD2}`T3g>HSKWsR+BWvoN+yK$I)|xpsqn?RqId;0 zyt=|`GQomD*m&76k{Mdak{7*VvO)nX6tF@8D-^Io0V@=+LIEojutEVV6tF@8D-^Io zS!9I*RwzbNi{VW*xuAjz>LM3Za6ttZRB%BB7gTUT1s7CsK?N67a6ttZRB%BB7r=rc zmZf%7q#0<3Tj2(Pv5cSzW75aa^EW`f-%>OE88E0(`cSgaX{w2y^DQCpF%%3bDj_{u74h3bSLZ><)jFs=lK zL)gNuQUz1#0qo~us=>MDu}V{fKmGc;bQ*Jtb*O zn$}p)Fa%MvgrrL)_v z*k^VRp=$tQz%^h&IR?A+M!UgiJB+p$bC`I>?2alpr=nZ3Wb032?Qf*AEcdl6byr^j zY56C1V7ewMianFvpb7*r3I&*xr9f0npq`0=q?8gfVy16bMofqk>0KzL(PLsXlZqk7 zgULy>k0b+HSIWOM98IO#;b*n(2amu!lY)occ@O9fRqPWONzpALc+{WVp45(X`?ap_ zls^yDH=zLXc`Q(nLHBCwSae!Y?M$p0wi(a(}{ zeEsgn zvc^fz(cLzsl(|bo^El=$6vM~5-DD@Y5p z1g8y7FH?1{4Cma3xL)cIwTGf4!EZfnqE1*9 z6Cl!7d_QePuUpQ*R&Ud=o5W}@HDG2VyzW82>|?(n zjnaM^h4vuYU4~`Cct&4i7j*lLHTN2`BJD&JBGR}Gt35&kC~*?cY{go8=_#6`hcQ2D zJU>pm(GNfx$IKpB%pl$dMB5B>epFe++jk%z`|zeC z#;OMmoo>|t2B?^w!pdJXVmg3txducsiMKF4HK1=oJaO2XUl8c-d<^-&{V`(rj&S@3 D*Pw4h literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.retain-all-codepoint.ttf b/test/subset/data/expected/basics/NanumMyeongjo-Regular-subset.gids.retain-all-codepoint.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9744bc31d7da41a12b0ed144702f2a6e2ea66697 GIT binary patch literal 9524 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 E-*4_Vf&c&j literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font1.gids.4E08,4E09.otf b/test/subset/data/expected/cmap14/cmap14_font1.gids.4E08,4E09.otf new file mode 100644 index 0000000000000000000000000000000000000000..cc4305dbfc9ba1962a5878ac553e797f32538b7a GIT binary patch literal 2036 zcmZWq2~eBY5ni4A5*SG0pUL3H5tj`uNidEt;>0F6w03IT!50jzjVgo$NC*%&5(eGB z^y?NN5T{W(Enq`15Fd>*zMUp+oH)~(DdTuNO*8EzGpS4ai##&){SZ&n_U*jg{dV`g z-GATw?;SdFk}k`TWM^e%OLEIJzm!W3w`l9-YOQ2{ zwMGXLN;70DU@sFb&c4#RwS;{Dg*)-9UV_5KA)PAE>0K6O2kPl zOJ-S$I5tVViDjF`vB~08mZgbf>%vQEVPp+6`+`@)s5>lVCd13u!uP@l!cqV0BmUzP zjf)>fkH^G3^u(;g-!8hoewC98&wvOw4?1C-lfXH{eVIGX)9^R*Gnurd7s%XF4aza^ z?L_gzsD?>DNpwt|^G$E?`dx1K^LKAek2xRH?|9~{bEZedjC$*NZLpfw_)gi4R#fkOzA6#H*q|qzS?%7>MJ`l{T|PmNG~hRe4br=5FZ~mvhF>sLV{IovG?LD|ML431=vfnILbD+@AixHScl# zu&QJa5~1NE2DF<}b*nupPp8MyWqDV3!~ZV*A$`a7AwA`D%qqKyBnp8^;-&_S1J3>s zlf?8~y~~L1F|j{kl2MlIxW1&es9B~D70vhwW@&kXjQ%2WpA33~zFzm05c5+ykVCiI z+HHEn2^6oF8VQP`?Hi~lwaz0uYrSQ8-+Hn1!CnL?aaYsc)=htr>Klxvmaax8<)mn; ztFznIccdlpU|H*J#Ja}>!tb258nLhwMi>&b6TDKzEGgA=l<=gf9*b( zbrD4wvSdV!cA$LHM?^B0?~~CpO9>>6bK4V5PLs#7u`hpL^6e9!6f>2#E+Hb&n2Xr4#zZ$Y&pHP9)(`psnBU!YHJ6-{vDIR2nUF9 z&zN!iyHo@Up=I*D>rBQcvxqyf<27^?2_`arQ~lWeMZnZ+?+p-C=TwK7-rfa(OU$=RRwEWc%Da)auvUIs+a4cA7Y~3?x1~yUX5V4cY_7 zw_1X7uVys0^aT_XO6hx@k^Jew*u)4m>l?HVy83;@I8#JAOAIBIcyi&vS4%ZRP%+_^R4IG#yZaQj646~bufk2_X+!?1rv4J zI%+!|yxcl8c-a%O1`YncZpZ1S5RtcobXK^P9;L0>+GaL2H#9UgHtK1;Lq{LGQE_wN zGtY2ef7igUZ#Xn!o3Xszd`?f;DavlA^e&yj+DI@*moMSEZ4NRTUmxrx44x&v?_}KW ze*#CafGwa)o9bZYyfJ4NB&@jj+1zs&@_@@)@e8uR$^37^M!b*cI+nLtFN_FYS>2rt ze=<106A6lP_gRY0xv=q&dYX6faiL4M=W>X3II~@v9j{^@{?BbR+qs_Kl_&c|M)k3UjwB8 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font1.gids.4E08.otf b/test/subset/data/expected/cmap14/cmap14_font1.gids.4E08.otf new file mode 100644 index 0000000000000000000000000000000000000000..f2093c9e37ec1c3acd2d74fc6677c3e07c0e0267 GIT binary patch literal 1704 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 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.gids.4E00,4E05,4E07.otf b/test/subset/data/expected/cmap14/cmap14_font2.gids.4E00,4E05,4E07.otf new file mode 100644 index 0000000000000000000000000000000000000000..0c2674a0b039ddcf49a578cd61aed3d336de0333 GIT binary patch literal 1624 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 QmF&x+YpR3&pZNd!3l>^k5&!@I literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.gids.4E02.otf b/test/subset/data/expected/cmap14/cmap14_font2.gids.4E02.otf new file mode 100644 index 0000000000000000000000000000000000000000..6a5a3a774346be8025a062c5aa79911825a68502 GIT binary patch literal 1308 zcmZWpeN02Na{BEvZ2lKBT1vNZmo(QN-L=qr1edS024=skJo{(ir6 z?z#8f_wFsLtSkc=w1W`Ri%Uw#Pi|Di03Zq=h?P~mpqXPnwg3nppjNG?bXG_kE(8$$ zh&-pxpsTqaV{S}v+5{Elk_kj6W&0sq;ySI5Wj;EhVhZq>nMYG zaZd@>JAvF|wb&hrk3fTb133wRxnckUL;@fPLQ>O6QO!Imh^Ik(FA*mNaZ(uHCE~U# zg?mOJ(9^T&l_}2xOs;Jk<0Ow4*N={#je5PsX0_OK4nxgBQfoGo<$SuGEH~H< zw(}@%E(}-Z7J?WTsz_Ju&XQ-zQ%QLy@AmO-zdSXQN4DsCc9e5R*<<1PC^s0Duv5{E zucP;(Z$?x88(y^D1q% zg)8VT>fq8xIV+n}C2gOc4b5cq_W1*Wy?1ZVT=6|(J`Y}VUvvF@nxzhXVGq|cme2)n zm%H25LbrI@x}Bh-A$b<;yHJO29*;rfvO4Nj$Ci`R2i3}@=)Oy~o;TYleFFKg~*-}kbn_DNljt5(Xc{FRHD`{NU;#j&NC z@BAx4|8u4@M>!ccTG`1J(&j-bXbyG+FAiM1+4@c2P38{sz5fm~9qRe4Zcv&@bKoKa z^hno;Z#cqcvX|!Xva)+@>g()2POU%bJkxNhN$-rDy4ojY*Ec3qieKZ)s&H>ObUAP< z!k%FI3z#-fo5$ICmP>c)x}-GCcr)k}sx_#ebl<-Ct$VKeeh~-U?w39&`tZOnI%i{- zt9jtOkM_|FJ zbUWYwbe3pMYyrh3UWGC7k!00m-V;ZFK(;^x@kA+! zHDV1OgC^MnVnlf2Uy9+2Uf_3!%zjaV1asY;O$Tj1~5V+ ym@#UDcahn^4(F2bd^iYdoR`2#a_p68e0wJ8le=7syT?Bu!klDF4D)x+|J&ct&8L$9 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.gids.4E03.otf b/test/subset/data/expected/cmap14/cmap14_font2.gids.4E03.otf new file mode 100644 index 0000000000000000000000000000000000000000..df159d0124eea173f4bd6798bba207ec031a1005 GIT binary patch literal 1348 zcmZWpZA?>F7=CYWTlyv7W{r_eFA7Es(^AZmAx@YM_o1*LnHm$JE2VX9X>E&xL6MI_ zd&}(y<-^KH23dbB!hnEtlj#x}LzcPB#QlJUm}Wn=Y{5SUy~WGYy|=iGZ0F=Y=Xsv@ zJshpdBX6Nrm^HOl5WR;K2JjJAYs@;) z+>Rm~?*wX()na$VKLIs>C<8SGfVm<70)zq}2tr(0V>Z|EEH9PI}oUTqeoR;kofVWs5*9d)YC?$DX-)Z5isi_L1WX&k!B{ZygJM3wUCcB)io z*V!(ixxO%5nVSR=E>xbX+@2xJkR?;HbRKr`uv?a#&Vwzoni=8T5%ySkCc^bb#O!!v z?c2zM$UBjw|HdT$#-t;%sC-1Bhz1p#@a?3tTN0>TdJ#mpJSVv@~VeMMPV zVd3)H3YxjpAFkx6`>gZ%6MpSj*8VOQ5imGa+X3(9b3ICM2| zr=LB+bmuXRo<@(e#r*VE&Z_4v$b<{cP9CJOcTl(Yc#cv+I`{?y?H{tk$sYRugSnY#V;~_~bdu>4}k9j(ja{PGwPYzE6`UA!FWK`>%+~5m0a1m^QJI2~H6mD9sRgWmYgMXstxoJzDvnM~LkRyufbgFLA^%_U zUJ{Z3f$&$-ol^mEiqt==T@@8;J+*azbmLf0&$^y%cBgZ$U+9O2eGlAOw|@8B``zEY z_xtWW_q~^!-TU_K1}QXw2;#SH->$GNduu)bgaO2V+r9VsjB}oWYJlh{VmqwTD$8~@ z!mkOwPq3yyt;{=n4@m$dUV_&Y5JUV!$q|C@5u8+@t*n)w5l<34L2!arSz89O*NF;U zge9d)ty+9#@pf`w9>I<>oxXCW7cu~-eFQ52NURJ%08v5^2n3S6Dy_DT*EU4rAd)1A zBnumDN=gY6>b9D^w|pjI^{2MP{Dv zEwy5AoxW17)hk{rRp~0qbQQ`2!vW=V-+4{09071hKzS1hU4PJxURFOR1e zE=fvRxhh4LB8yeXmhvKz7t3U^OJzyCSk8-Qc(Fnjo5c2kepzNM}Fec`nH)bB`hje_wtfVKO1Q}^4G{c}EK`<|>VC4@`MlEG9SQH+n+uY4{h0s#ee(@%f-a@gjqC}jg+HcG)@zLph^<3QbK9 z(ef`Nx9MO@(AVMlAcTIx1~#ybjz)*kbP&fIm1c@zSmz=pT5IsCj@z%=uG!BWzPkkj zUbwzyOa1acD~(lVOI>R<$8ZeGv^KXnS~-g2oa~~IrIXN*amaYw@}O?=FX!)ExV!VK zO(S;J!P&VkUntPoetV+$n~kT^&f#cNnu;pZcju4zs7UJcZCXA$l|Zv3w{xL|vv_Tb zJGXC3oH+RD0aSGLJf;FQZoQ+b5iiIoz%f>}bC<1rxU|1W7b-fL^E=lS?ymRueZRU% zg-2ZH+fMh~Iy|O4v+HBLs$%ooHDm8yvflW*;~%yM&bgjp0gHuR4E2ftJe~1#0q?;P_9y1RkQR@l;!%D=!wWo}flVO}r#^^Sf?9~*?o<2|NcDQIc|6@PP2~C$&hvGK=3k3Z9 z05Bw2K4KHih0JvEv;6z(-vQ1q AhX4Qo literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.gids.4E08,4E09.otf b/test/subset/data/expected/cmap14/cmap14_font2.gids.4E08,4E09.otf new file mode 100644 index 0000000000000000000000000000000000000000..bbac4f5c178c3e965212f53013cc5157c2210882 GIT binary patch literal 2032 zcmZWq3s4)^6@4p^SP2XyVVMk09PzWEB`M(e6UT{7aA@tsb_V=`p|w$EApsHsN&F=Y z`fIhTKOhiaBX_2N4aGqGX`Jy7J54-s;!b0?jN|b%&9sxuq%Q3fd1UBYh^J}$?!0^N zIrr|nS9eGI4jwvm5C}mBhysa)MMdJON6l9N0AT?59S2K(l7G=R+6aIkfVm2(N>Z2e zS=TuLV)Pi7C}ffo7al?Zj%Q%JRe_1bMZrmo>oCqxsC3ODCVC3vpJV*AO43{h$ak;{ z`tcUjN>nob{DvazE@Eu2Q)_iALm(fYe+OeR063QffB?}vKoErBM1xAz!g)I)2_TY2 zMACVY^r*xR1PQ*KU-~H@?oC*LolnF4PXQr8MDb%p z>k^+iQZCPv=gT+C^R~_tMRM)j=s^kitI7^x>&d<%w7Z;pR|57F{Y0>Ir zDy?{LtyHb4Q)?tT*@>6L1xls3m`m4+i)C7wrV*2CP2w(X0zl%XV-u;A7c#Q5L|LME zu_%>OX`D(I#ixoka%z((K24OtsZ3G4CcKmxMz%2A6TBKm-C+To3@={`-wp2z$NX=M z{7+0cE_xU{9vAn}6SofkcH#A;RZT5C1B7^Zpc9M}$;27n%e?U@b@Zm_9GJQEB2`eK zMmsFKJ5k~=s)Jd_$&RUWzUlQ|zsv1@;m*zJG4?U@u4m3RXMR)$Rh!RigSCv>cak>Q zEao;xo4wsc!uT@ktD-SP>&5Lkl2=jG#LMK_u1K)@_^I|fVx zY<~!*!k(*lpztn?{~1g}xzeMC^7_(dsUcK4<0s+L@&pz8W#k?e^ag#s?kgeqHWS#v zwA0qcH6sHl4WUTeaPI0Wx_CFIBR~~vhdeS_b)$q>+9DiZH%3@vHiYKps(lNt(t%B zJePYB#Tav?WSw@Pa?(dea+dE=u`^4_6oYHiDQ4E}v2N%q+LLzc*r#Q%`sO7>2AW)2 zdqX=)DpjC3i;UiHtv^#cQmqbEPnZ6|InO@ud^Y^sJ7jp$d8vDL@NUJNe*E1QDmIe7ltsze$}WWo z<k=KudHt@R&Jj`8~$7sHjcLaiur=ISUNnUs10DW$hCI0pDE#hd7u{nE(gD-y zmY~e59?htD5ygel``&=!KRpRo{%ga-gP~Br zf1i7wWxuW3cvx!Kt9$L@;UQ_TxooQWLhJd~^KD}tXL`oje|Vj+*!BTQPg=1!PT5B7 zr-GMThXyZuLbjmM-`DLt)f6HNw^3}BTj5dIn{90tb8|yOQ)8onF*x1D|__ z`}(^EhJC}K5&MkwH_hh^B<*m}w8P-i8*PmwJiL4f_icAlvH0`BeT0GQv?l3z!p?sJ zg1>+npwFD@;Orld5%nN>#TA{;!*>I|Nq8KKZ;%Bd=f4G$_#EMNY;SQi-% z$szzxc%AS7K8Pb0iAC@&$X~Sp``813ClW*n_^~`*^pi)P*n&N8ya{$6AP)%FYH<4D zE@EY6g{z8D0TylvzyaJR5iP{kpT&61=Ye>P*8Hd+@XvEIg- u-b6e%_0>gT%>xHWu4^HP0dcGBb8A6vd^p5K0Kfx@TBBF`xqI~g*S`V0F8-MS literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.gids.4E08.otf b/test/subset/data/expected/cmap14/cmap14_font2.gids.4E08.otf new file mode 100644 index 0000000000000000000000000000000000000000..38b3fa8b21c8fc806b123b60a2cd30518e8229ce GIT binary patch literal 1700 zcmZWpdrVVj6hF76<+fnOjcW`#EGSGjbx_p!$`l{$rD)Ji3>(rxdA1bV0wNTl@5jAu zX$w>e3Zd=~K`;pTnoE2EiyCz=Gq-G+%VyYa@nYC_%Zz6GPR{Fh&i9?ubJMeX z-@e@-fO_CU)V8!Vamgp8od6I32wT5|-cE$&}GW@5*Q}6KT)VX7{;uU(wJP5}yE-zd-XU~TP$pw;vl!D}S z1(G$}lx5YbqJlz=cv-&7tnhVZcYtMnn-YixY*3LXlV)$BKAXED?(0gb6}Xyl|;dqzX(W z1Q>IG-tM~+V44Gbx-T$&HE=KRejxn6G5keL&@G&Z=#Gq>a7E5Rzf*86IwXm)S0Nk? z3L2mrn~$C1tmXtc&*+4yl|*WelG$L~(!fM@FlF?zgLwVvGw%L{jUI>7x%kdV|4Hfz zdDb;#9x^;UKr2$tsePrS(tX6HHyaH#)*4Hl9;ZbIh~LsqGPYWA-3sYOhTF5>ueefk zzT~lu?*8?*&)aTob&@27=&03aZALe=(+m+oZ<|_9kW5Jbvd&Ux(dx39D6LeFTdkyRp*37l>&oplkC?tR zU&tBX!T=MqzG}aS4`h0A_k`B6C|o_ zi!o3JmnpV2ZF~G^_E!h!;*pCC?yYjDEfsZ4bY>wFX_VP^naWRJz*oUcc z*S8&?-@yZY_KVGf$L{3}Nzd)N&7`O{pQsu-d)0XBkE4H@p4et*#$Y7FaWQZhw~=-` z8KdgSE^n9N!8f0+K_6mpY8{c%692kkjZM=~?yc}vdNjVOM!m=2HA!pb<&_!obpuT7 zk3|7pSIuYSBg$yHdmbO@H_<%(b!%5$r>;|fyt=j4Z*c3JI)}rBsB!3r%7>Om#^Z-Q zT1$hs-cv{7N2Y;5L$o<;EoPt1t3OfglQk;4mgcNvBK=ERx6gLP=|y)n9*f85Hd1n@oKoQQ-f0&R5wzHe2((1d-yy`h z-+A>1=WhB7Fy0so*Cw22@|Y*pl?B4Q68(ov6Cm;hC0cj~Oo0TJ?MZSG5W*h@AKq9O6$9DWGT1qDc< z43c3r9E5yOLMdp__RRnp6hH;YQB(yVAx{NrC mn24Qt=nzO^kdCtx2?2{{advVD4Kc8@;LhSRZS3y<|M>@*Rah1P literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.gids.retain-all-codepoint.otf b/test/subset/data/expected/cmap14/cmap14_font2.gids.retain-all-codepoint.otf new file mode 100644 index 0000000000000000000000000000000000000000..3996080d95bb181e5810425c598de7c46bb2184e GIT binary patch literal 2376 zcmaJ@3s6&68a_!#xB&!Qy=*I10*VDiC8+qQ4-mDjt-3|6Qg($bga9D~2yX~N-uLF- zJV<~*cuLyY3W}>peRq6>`Y8~`2&-~%3yC(5l*scJZFy*~{2 zm+<^c`TnH>{|fFR)v!GZ+&15&*}Z%<4m;pRZ56Due}LDvMbc_T zQgWKQq^7JukzX!}%ZZmHB_<|GQghXRluP#1Xv*a(jpX&>9CcZVx=dCs&s{D_Eh>_v zbKx3Ex?CeKtHj2chrmx^4h7-(p@PH7c~Ohvm#UHD4K&94i*N5 zMh8haz_w`47CmEI#A&e{Eau>44&pe74+@Rp95I}u%r_D1LuMb`>bdMgtv(SP@=adx z-SzG81^(Jc{MRQQ2znSi5EAmx5i$$cQhaspG?L?UKrlWG&;$l}5xk@P6#l4SlfV_Q zUl=Bw3u7mik*V2gwBDG~gu;7K35?4k8jqiBJ`w43+3fbH+oLCru#cG!93$ot!=h&!-0xLgt~;arj)nvO{KVt# zqB`sh!(wTtJX9;5p`AozFie|>CmE!4A|*zo#7$kP8OW(zIdSNtdyL=mp@50d6U<^vk*{{tkJy4ya^&S{@5pZI1kPQCDe~~(jv-5XQ>wBcmpSrn*C%ppoNU3o*zgg;^O9l}u5 z!)LiL!uvxDl|^OI*)tVnPP14Dr_;(fqJ~|@OEL>VS!gQK4kIn_#dqKw%4Wg)GdlHl z9ZeXG7PC2uqPa$(+Q|gc-R^96d%XR}FLw5wyLsWpg&Tj0VG!Spc&l{iw+$IRgnt22 zlflCi5hR1lLC-U=28U@u$M&r;V+TLYfQ6&y5aF(}X)F~DXzqc06k?RqJ58lWi~9=I z-og_H{${<-K5%^2d;T`z8?v5jJ=J|Tdqj46=O<`o+2(hvMn1S=y!Czi52nZT%rPP! z&hJ2=mY^A{m6=yIc(AlfPWYETT}=l27f!^H3O27LUyl-$d(caHXkI>wxQxYCEh?(aW>5m3}c3^E*Pvl4KH|lRvMBibC?TgYBR?92o$tZpk zimyhg_Ph~u+tF^g?yoTR0gO3%)i-u!sJCDHzLFx0zkf%c8M&2xtz%p5v&-jCe!2pm z@~MfnT?V&FR$o+FnO?MZ7%lj!z^Ci4dyn~=HJa|6 zAx2M_piqB}>Tl@N_33+RI_kZKW}RJUvpKLhN4}{1((<*jr`DylG`SmH4GeK;5|H=~ z&^Efw?4jNIcWXRyr@DVp_A(UWUD&Y&O8)-f$Y39Js=3?TZR>0%2H*jb&D3QU=BWyj zZ|a8|ulxnhzf?{)i%+ zZtk7Z+uQB+cDi=hcNlk?3w8T)w6B+MJiD(a$5Wkgy!uS->DtqEM;ec|4X{5ttuWnu zgP?~@Sg6D1e#>Fc#oC_kiw>{ZqjPn%S`SxwiL^B&TVT(3zTK&6f}GR}ygF_ZmFECL5W;)Hdjft2Nz)_1I@SQ-2Z;nCVKAQ`@O;YiF?H*f zZ6IYA*d?CH!QsQrys4=vE-PlKShywvyYRkw0b-o}10T9`FlY2P63d(N8`@N8wOyPKro{dIBu61gn^X)- literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/japanese/Mplus1p-Regular.default.25771.ttf b/test/subset/data/expected/japanese/Mplus1p-Regular.default.25771.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1dcfeeccd6444f7ea2282c1ccecf0596b5c08013 GIT binary patch literal 1824 zcmaJ?TWl0n82-=9-hh^FZ`}<<+>4iXLdvQry2%AF7Os%ooc4;9kUEA7l z5kumIW&}h-jG7pHP?QJdl$ywc2^dW@1|Pfx4T;eQA9(N*jn@RaerI-7B*wGZ|NP(o zfB)^w$qX?f3PN~@cI>RHZyH+ogGd>HwQqPLm7&t}6~J!;uNj`5;l9(#k3`;wftT;e zj7}82S@$aZ-{7AfO-*OASyG97-@+dl9Y46|k^4^`B4P!=SH{w*k>K2^72pC=;}{G} zo}){^ap0=4iJ1f5U9=gv88|RLIh>+B(1`sG;hRVu$gmdn81NUse1B>p9Xc8P0sS0@ zEuNX2p2)T5BYp~(!M_c-b{6&g?*!k1{|0c?Eb4i5$IJZD=uf z>}qS9Of6fdc1#YgO$;u++qcHs;VlZYmX2PM&sCw1DMUx902;$Tgj2#fKu9mSXDc;U z^y0H0I%gj!+Wd zwb-uhh|NC}thBZ=BACgqiGpxMC}ww$b+2LT5uuuUE4hd#EnURzi13&)R5$cP)|c8x zwg#ScQ~S==3|)A`mPpLnuEVyG&ubPA^hboxoL|M}P@T^W3}}Lo#&6D7xu*Evrhr*e z%s19W#1fMqkwxA^elFDNPJ;{2>MlV^%Sk&aE|q3Y*KN&lQBMxZf=hGV1+}1#BFjwv zi91e#$?JqaJYaFY)kviFaf^=(ZPqTsQ)Vtu zoW@zNdiM&9nDyXXUI zr%B4tL7JkyG)iMMgSqNyJw>Sz+Adhq*tb&{G6~is@}_Y}lGjQPVIPBSil*`Q*p5u& zuua1kh28_^DDXI?z=(pe9$BNXZKAD+nuInEP6FC~WSWNkpByqnX)9R7@8+EI`@Zx2zH{z9_dozB#35+t zS<_n|Y}z{h4Ummw`v*tNBxc?B5T7JoIBcepmPIA>5@N@2eBbtin@{g&{+{hsY{=Z^ zJa%?AAYKzkVk8PKVuJNf;)>Wvdau!kWyB6*M?5iTVmmX47wl{!=H4W#L@)7e;_^{* zWXOFw@QM0|SNE>+(I?_And>s02BaX=3ds&mMOh{H=|nX1=AnJ0)E7pzm?W5$6gYpGob?SwcB zgXwYknB^yPqxgt`kPe%iZb&ILDecO7TGl_;t@f9fqt#+)o2)dVdPuYm6pM)uU-Kft zze^R&;G-hDXO04L{jO}wy`ddZDurIaxo);xF5o1}pT`!I$b7)A_fl=FXUKmZYDePo6>u7;m|4^;{J4q-5>Yr}4iF>+%_p^mB~ z;^b1)2AHp0&lYrxf|$9?D_y6pwzY)ml5U6>61V tp8v1o4OU?tR(I*2A$ZTFHp#oRl=H#~?dXq7h-#BojTP3%757)2_z8Icz$pL# literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/japanese/Mplus1p-Regular.keep-gdef.25771.ttf b/test/subset/data/expected/japanese/Mplus1p-Regular.keep-gdef.25771.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cce2d366060de9044fd82a1956a5592949583807 GIT binary patch literal 1860 zcmaJ?TWl0n82-=9-hh_f?PXh>s%My%0z2E%E^Q%DS=zF-Erd;>Wu~sN+p@Hfmac7W zxCBGug=V;jh6gnoeDKDDa!O6)!32yZ`hX8!f(g;+BQI(+USa}WzcXFH5aXH5Isf;c z@4wE;8Dc~f#^j+;XUDcA1xX?Dd!Q}bxvRdhWoZ6yB4rx5e|S8Tqtc5Nz}J9R56?_< z-#O)1BJU~S<@<6Y_aEC`~~$h)u1ZsAS#VF`TVubEfqe0dA!_+RQOlbhK;bRGiq8Q70oSrlV0xg zM{{Q!;&q;jjj2tW)}Md4ed~55vA(AG7Sl$R>T|xpmSD8CB=pACcZX`GQwt63 z%@bpfy!H0v`c`x2?zXmx%(As=$Hd^8@9uWxUovE--gxm`O^y*yhlB8K=~cq!Ny1j zQw5~EHn8|O5qG(JgW>2rR&9L>DP|f|7TqIJKE)sT3 zcuZ-k8~PFJd+iHb1JAmx{bXx~F1%4oBxh`Q!?xkiYZj*mV!~(6tz@%^&S%qUO%UAp z&ADn3rbl|*2!=wY|wPw)*Ki0E+QFl z>0)*vEu)P@-vj+GlXRUQYg8v03>Q8jm&|;e^(++OHCBvoRDqn-fK91 z!Bf^|?J9Q4%y~+%L|Yr{xg4Tla%V~IL+0G+wTvNTZ?tJxn9+vLCwi?*#HoF_?Gob* zi{QgzMYhV#6dub>0WJE1DTYILndP4o>@@X=K+2k9?2J8^lxIbRaL~$nAsn|K#D`5= zwkV4d<*W05Dgot&@-ykmVR?MXPXjp7%(DdYcD#!+qY%)dtk7~w7i1N;)PaJG`}{7) zOApZd1-*|RqR*+FCMZXTX_EHS2#wM->T0BQ)IiOUc0-fJx`U#aQ(#TNZx&6Gysh*U z)=}stX$rT;4tN@aZVG!1kbA)#0Uo0a7!6>ogVzS=Hc=<6CLoQ0lZ12-o~EF`=Rinput->glyphs; + + char *s = (char *) arg; + char *p; + + while (s && *s) + { + while (*s && strchr (", ", *s)) + s++; + if (!*s) + break; + + errno = 0; + hb_codepoint_t start_code = strtoul (s, &p, 10); + if (s[0] == '-' || errno || s == p) + { + hb_set_destroy (gids); + g_set_error (error, G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, + "Failed parsing gids values at: '%s'", s); + return false; + } + + if (p && p[0] == '-') //gid ranges + { + s = ++p; + hb_codepoint_t end_code = strtoul (s, &p, 10); + if (s[0] == '-' || errno || s == p) + { + hb_set_destroy (gids); + g_set_error (error, G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, + "Failed parsing gids values at: '%s'", s); + return false; + } + + if (end_code < start_code) + { + hb_set_destroy (gids); + g_set_error (error, G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, + "Invalid gids range value %u-%u", start_code, end_code); + return false; + } + hb_set_add_range (gids, start_code, end_code); + } + else + { + hb_set_add (gids, start_code); + } + s = p; + } + + return true; +} + static gboolean parse_nameids (const char *name, const char *arg, @@ -184,6 +244,7 @@ subset_options_t::add_options (option_parser_t *parser) { {"no-hinting", 0, 0, G_OPTION_ARG_NONE, &this->input->drop_hints, "Whether to drop hints", nullptr}, {"retain-gids", 0, 0, G_OPTION_ARG_NONE, &this->input->retain_gids, "If set don't renumber glyph ids in the subset.", nullptr}, + {"gids", 0, 0, G_OPTION_ARG_CALLBACK, (gpointer) &parse_gids, "Specify glyph IDs or ranges to include in the subset", "list of comma/whitespace-separated int numbers or ranges"}, {"desubroutinize", 0, 0, G_OPTION_ARG_NONE, &this->input->desubroutinize, "Remove CFF/CFF2 use of subroutines", nullptr}, {"name-IDs", 0, 0, G_OPTION_ARG_CALLBACK, (gpointer) &parse_nameids, "Subset specified nameids", "list of int numbers"}, {"name-legacy", 0, 0, G_OPTION_ARG_NONE, &this->input->name_legacy, "Keep legacy (non-Unicode) 'name' table entries", nullptr},