diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index 7c9205a811eba700a6bb955df3b34d2ce7109d66..a04c92074f5306fb0ddbe8bd60844c4706ae0f3d 100644 --- a/src/hb-ot-shape-complex-indic.cc +++ b/src/hb-ot-shape-complex-indic.cc @@ -131,12 +131,6 @@ indic_features[] = {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. - */ - {HB_TAG('a','b','v','m'), F_GLOBAL}, - {HB_TAG('b','l','w','m'), F_GLOBAL}, }; /* @@ -162,9 +156,6 @@ enum { _INDIC_PSTS, _INDIC_HALN, - _INDIC_ABVM, - _INDIC_BLWM, - INDIC_NUM_FEATURES, INDIC_BASIC_FEATURES = INDIC_INIT, /* Don't forget to update this! */ }; diff --git a/src/hb-ot-shape-complex-khmer.cc b/src/hb-ot-shape-complex-khmer.cc index 73921ed9b3cdff1a4953e9dbe95376c546d31672..cd82900ba11e4e708acef5f07ae921c43d659350 100644 --- a/src/hb-ot-shape-complex-khmer.cc +++ b/src/hb-ot-shape-complex-khmer.cc @@ -56,12 +56,6 @@ khmer_features[] = {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. - */ - {HB_TAG('a','b','v','m'), F_GLOBAL}, - {HB_TAG('b','l','w','m'), F_GLOBAL}, }; /* @@ -79,9 +73,6 @@ enum { _KHMER_BLWS, _KHMER_PSTS, - _KHMER_ABVM, - _KHMER_BLWM, - KHMER_NUM_FEATURES, KHMER_BASIC_FEATURES = _KHMER_PRES, /* Don't forget to update this! */ }; diff --git a/src/hb-ot-shape-complex-myanmar.cc b/src/hb-ot-shape-complex-myanmar.cc index f734a337167b32e463bbacbfe39bc5878d072183..8b9afa503f20015e2cc8f1433dd7938abefbe470 100644 --- a/src/hb-ot-shape-complex-myanmar.cc +++ b/src/hb-ot-shape-complex-myanmar.cc @@ -59,24 +59,6 @@ myanmar_other_features[] = HB_TAG('b','l','w','s'), HB_TAG('p','s','t','s'), }; -static const hb_tag_t -myanmar_positioning_features[] = -{ - /* - * Positioning features. - * We don't care about the types. - */ - /* Pre-release version of Windows 8 Myanmar font had abvm,blwm - * features. The released Windows 8 version of the font (as well - * as the released spec) used 'mark' instead. The Windows 8 - * shaper however didn't apply 'mark' but did apply 'mkmk'. - * Perhaps it applied abvm/blwm. This was fixed in a Windows 8 - * update, so now it applies mark/mkmk. We are guessing that - * it still applies abvm/blwm too. - */ - HB_TAG('a','b','v','m'), - HB_TAG('b','l','w','m'), -}; static void setup_syllables_myanmar (const hb_ot_shape_plan_t *plan, @@ -113,9 +95,6 @@ collect_features_myanmar (hb_ot_shape_planner_t *plan) for (unsigned int i = 0; i < ARRAY_LENGTH (myanmar_other_features); i++) map->enable_feature (myanmar_other_features[i], F_MANUAL_ZWJ); - - for (unsigned int i = 0; i < ARRAY_LENGTH (myanmar_positioning_features); i++) - map->enable_feature (myanmar_positioning_features[i]); } static void diff --git a/src/hb-ot-shape-complex-use.cc b/src/hb-ot-shape-complex-use.cc index 7f4b6f346c9747dbd2b94cdba3e047576f26c3a4..ffef685babb1426c9b75fecd5bb8f52eda4a5b6a 100644 --- a/src/hb-ot-shape-complex-use.cc +++ b/src/hb-ot-shape-complex-use.cc @@ -88,16 +88,6 @@ use_other_features[] = HB_TAG('p','r','e','s'), HB_TAG('p','s','t','s'), }; -static const hb_tag_t -use_positioning_features[] = -{ - /* - * Positioning features. - * We don't care about the types. - */ - HB_TAG('a','b','v','m'), - HB_TAG('b','l','w','m'), -}; static void setup_syllables_use (const hb_ot_shape_plan_t *plan, @@ -153,10 +143,6 @@ collect_features_use (hb_ot_shape_planner_t *plan) /* "Standard typographic presentation" */ for (unsigned int i = 0; i < ARRAY_LENGTH (use_other_features); i++) map->enable_feature (use_other_features[i], F_MANUAL_ZWJ); - - /* "Positional feature application" */ - for (unsigned int i = 0; i < ARRAY_LENGTH (use_positioning_features); i++) - map->enable_feature (use_positioning_features[i]); } struct use_shape_plan_t diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index cf40ff973fa1617050b6b7221e80150d11491bd3..a1d9a2398a0cf1ba7587b085910a85fb0ebb9860 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -285,6 +285,8 @@ hb_ot_shape_plan_t::position (hb_font_t *font, static const hb_ot_map_feature_t common_features[] = { + {HB_TAG('a','b','v','m'), F_GLOBAL}, + {HB_TAG('b','l','w','m'), F_GLOBAL}, {HB_TAG('c','c','m','p'), F_GLOBAL}, {HB_TAG('l','o','c','l'), F_GLOBAL}, {HB_TAG('m','a','r','k'), F_GLOBAL_MANUAL_JOINERS}, diff --git a/test/shaping/data/in-house/Makefile.sources b/test/shaping/data/in-house/Makefile.sources index f3a6a6211107cd25fe34967e12009d7c2167cea5..bf14a98c6679af4d422bd1ff71fca8dc3b7fb369 100644 --- a/test/shaping/data/in-house/Makefile.sources +++ b/test/shaping/data/in-house/Makefile.sources @@ -14,7 +14,6 @@ TESTS = \ tests/context-matching.tests \ tests/cursive-positioning.tests \ tests/default-ignorables.tests \ - tests/dist.tests \ tests/emoji.tests \ tests/fallback-positioning.tests \ tests/hangul-jamo.tests \ @@ -42,6 +41,7 @@ TESTS = \ tests/myanmar-syllable.tests \ tests/myanmar-zawgyi.tests \ tests/none-directional.tests \ + tests/positioning-features.tests \ tests/rand.tests \ tests/spaces.tests \ tests/simple.tests \ diff --git a/test/shaping/data/in-house/fonts/ea3f63620511b2097200d23774ffef197e829e69.ttf b/test/shaping/data/in-house/fonts/ea3f63620511b2097200d23774ffef197e829e69.ttf new file mode 100644 index 0000000000000000000000000000000000000000..31d4e50368b828644f26e83af070ffb1bc57743f Binary files /dev/null and b/test/shaping/data/in-house/fonts/ea3f63620511b2097200d23774ffef197e829e69.ttf differ diff --git a/test/shaping/data/in-house/fonts/f79eb71df4e4c9c273b67b89a06e5ff9e3c1f834.ttf b/test/shaping/data/in-house/fonts/f79eb71df4e4c9c273b67b89a06e5ff9e3c1f834.ttf new file mode 100644 index 0000000000000000000000000000000000000000..be48fd0c9299933b92f06f263c7bd091fdb64140 Binary files /dev/null and b/test/shaping/data/in-house/fonts/f79eb71df4e4c9c273b67b89a06e5ff9e3c1f834.ttf differ diff --git a/test/shaping/data/in-house/tests/dist.tests b/test/shaping/data/in-house/tests/dist.tests deleted file mode 100644 index 2613808fdd64aaa6baf27bee23e94a07f1874f82..0000000000000000000000000000000000000000 --- a/test/shaping/data/in-house/tests/dist.tests +++ /dev/null @@ -1 +0,0 @@ -../fonts/53a91c20e33a596f2be17fb68b382d6b7eb85d5c.ttf::U+0041,U+0056:[A=0+625|V=1+675] diff --git a/test/shaping/data/in-house/tests/positioning-features.tests b/test/shaping/data/in-house/tests/positioning-features.tests new file mode 100644 index 0000000000000000000000000000000000000000..8cab9d88c71efd3c2b88fab7fc25c6af70d7ead8 --- /dev/null +++ b/test/shaping/data/in-house/tests/positioning-features.tests @@ -0,0 +1,3 @@ +../fonts/53a91c20e33a596f2be17fb68b382d6b7eb85d5c.ttf::U+0041,U+0056:[A=0+625|V=1+675] +../fonts/f79eb71df4e4c9c273b67b89a06e5ff9e3c1f834.ttf::U+006D,U+0315:[m=0+945|uni0315=0@32,-178+0] +../fonts/ea3f63620511b2097200d23774ffef197e829e69.ttf::U+0079,U+0325:[y=0+565|uni0325=0@-422,-240+0]