diff --git a/src/hb-ot-map.hh b/src/hb-ot-map.hh index 13bbc8fe515540ad2445cf06cab90c93e5697a40..cc8b8d842f95dd90239c5080cceee44ab4b29a43 100644 --- a/src/hb-ot-map.hh +++ b/src/hb-ot-map.hh @@ -174,11 +174,13 @@ enum hb_ot_map_feature_flags_t F_MANUAL_ZWNJ = 0x0004u, /* Don't skip over ZWNJ when matching **context**. */ F_MANUAL_ZWJ = 0x0008u, /* Don't skip over ZWJ when matching **input**. */ F_MANUAL_JOINERS = F_MANUAL_ZWNJ | F_MANUAL_ZWJ, + F_GLOBAL_MANUAL_JOINERS= F_GLOBAL | F_MANUAL_JOINERS, F_GLOBAL_SEARCH = 0x0010u, /* If feature not found in LangSys, look for it in global feature list and pick one. */ F_RANDOM = 0x0020u /* Randomly select a glyph from an AlternateSubstFormat1 subtable. */ }; HB_MARK_AS_FLAG_T (hb_ot_map_feature_flags_t); + struct hb_ot_map_feature_t { hb_tag_t tag; diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index 1fec0e5663b5b8d29995a90fc3d6fd8bf06cb137..4131e705d56dfebe7abec51395182ba84e61d622 100644 --- a/src/hb-ot-shape-complex-indic.cc +++ b/src/hb-ot-shape-complex-indic.cc @@ -102,29 +102,29 @@ indic_features[] = * Basic features. * These features are applied in order, one at a time, after initial_reordering. */ - {HB_TAG('n','u','k','t'), F_GLOBAL | F_MANUAL_JOINERS}, - {HB_TAG('a','k','h','n'), F_GLOBAL | F_MANUAL_JOINERS}, - {HB_TAG('r','p','h','f'), F_NONE | F_MANUAL_JOINERS}, - {HB_TAG('r','k','r','f'), F_GLOBAL | F_MANUAL_JOINERS}, - {HB_TAG('p','r','e','f'), F_NONE | F_MANUAL_JOINERS}, - {HB_TAG('b','l','w','f'), F_NONE | F_MANUAL_JOINERS}, - {HB_TAG('a','b','v','f'), F_NONE | F_MANUAL_JOINERS}, - {HB_TAG('h','a','l','f'), F_NONE | F_MANUAL_JOINERS}, - {HB_TAG('p','s','t','f'), F_NONE | F_MANUAL_JOINERS}, - {HB_TAG('v','a','t','u'), F_GLOBAL | F_MANUAL_JOINERS}, - {HB_TAG('c','j','c','t'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('n','u','k','t'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('a','k','h','n'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('r','p','h','f'), F_MANUAL_JOINERS}, + {HB_TAG('r','k','r','f'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('p','r','e','f'), F_MANUAL_JOINERS}, + {HB_TAG('b','l','w','f'), F_MANUAL_JOINERS}, + {HB_TAG('a','b','v','f'), F_MANUAL_JOINERS}, + {HB_TAG('h','a','l','f'), F_MANUAL_JOINERS}, + {HB_TAG('p','s','t','f'), F_MANUAL_JOINERS}, + {HB_TAG('v','a','t','u'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('c','j','c','t'), F_GLOBAL_MANUAL_JOINERS}, /* * Other features. * These features are applied all at once, after final_reordering. * Default Bengali font in Windows for example has intermixed * lookups for init,pres,abvs,blws features. */ - {HB_TAG('i','n','i','t'), F_NONE | F_MANUAL_JOINERS}, - {HB_TAG('p','r','e','s'), F_GLOBAL | F_MANUAL_JOINERS}, - {HB_TAG('a','b','v','s'), F_GLOBAL | F_MANUAL_JOINERS}, - {HB_TAG('b','l','w','s'), F_GLOBAL | F_MANUAL_JOINERS}, - {HB_TAG('p','s','t','s'), F_GLOBAL | F_MANUAL_JOINERS}, - {HB_TAG('h','a','l','n'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('i','n','i','t'), F_MANUAL_JOINERS}, + {HB_TAG('p','r','e','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('a','b','v','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('b','l','w','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('p','s','t','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('h','a','l','n'), F_GLOBAL_MANUAL_JOINERS}, /* * Positioning features. * We don't care about the types. diff --git a/src/hb-ot-shape-complex-khmer.cc b/src/hb-ot-shape-complex-khmer.cc index f8c0a4bebf35de81204a89cb068f92e23f86e2d0..d46f0b3a0283ddc865abd95c38819ffa3fc957ba 100644 --- a/src/hb-ot-shape-complex-khmer.cc +++ b/src/hb-ot-shape-complex-khmer.cc @@ -39,19 +39,19 @@ khmer_features[] = * Basic features. * These features are applied in order, one at a time, after reordering. */ - {HB_TAG('p','r','e','f'), F_NONE | F_MANUAL_JOINERS}, - {HB_TAG('b','l','w','f'), F_NONE | F_MANUAL_JOINERS}, - {HB_TAG('a','b','v','f'), F_NONE | F_MANUAL_JOINERS}, - {HB_TAG('p','s','t','f'), F_NONE | F_MANUAL_JOINERS}, - {HB_TAG('c','f','a','r'), F_NONE | F_MANUAL_JOINERS}, + {HB_TAG('p','r','e','f'), F_MANUAL_JOINERS}, + {HB_TAG('b','l','w','f'), F_MANUAL_JOINERS}, + {HB_TAG('a','b','v','f'), F_MANUAL_JOINERS}, + {HB_TAG('p','s','t','f'), F_MANUAL_JOINERS}, + {HB_TAG('c','f','a','r'), F_MANUAL_JOINERS}, /* * Other features. * These features are applied all at once. */ - {HB_TAG('p','r','e','s'), F_GLOBAL | F_MANUAL_JOINERS}, - {HB_TAG('a','b','v','s'), F_GLOBAL | F_MANUAL_JOINERS}, - {HB_TAG('b','l','w','s'), F_GLOBAL | F_MANUAL_JOINERS}, - {HB_TAG('p','s','t','s'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('p','r','e','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('a','b','v','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('b','l','w','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('p','s','t','s'), F_GLOBAL_MANUAL_JOINERS}, /* * Positioning features. * We don't care about the types.