diff --git a/src/hb-ot-shape-complex-myanmar-machine.rl b/src/hb-ot-shape-complex-myanmar-machine.rl index 45733ac73..0cd84fa1b 100644 --- a/src/hb-ot-shape-complex-myanmar-machine.rl +++ b/src/hb-ot-shape-complex-myanmar-machine.rl @@ -70,7 +70,7 @@ k = (Ra As H); # Kinzi c = C|Ra; # is_consonant medial_group = MY? MR? MW? MH? As?; -main_vowel_group = VPre* VAbv* VBlw* A* (DB As?)?; +main_vowel_group = (VPre.VS?)* VAbv* VBlw* A* (DB As?)?; post_vowel_group = VPst MH? As* VAbv* A* (DB As?)?; pwo_tone_group = PT A* DB? As?; diff --git a/src/hb-ot-shape-complex-myanmar.cc b/src/hb-ot-shape-complex-myanmar.cc index 5ea1dbff2..31bb976b1 100644 --- a/src/hb-ot-shape-complex-myanmar.cc +++ b/src/hb-ot-shape-complex-myanmar.cc @@ -374,6 +374,11 @@ initial_reordering_consonant_syllable (hb_buffer_t *buffer, { continue; } + if (info[i].myanmar_category() == OT_VS) + { + info[i].myanmar_position() = info[i - 1].myanmar_position(); + continue; + } if (pos == POS_AFTER_MAIN && info[i].myanmar_category() == OT_VBlw) { diff --git a/test/shaping/README.md b/test/shaping/README.md index 4c9a1e5dd..99498e60c 100644 --- a/test/shaping/README.md +++ b/test/shaping/README.md @@ -31,11 +31,11 @@ what this does is: $ ./hb-unicode-encode 41 42 43 627 | ./record-test.sh -o=data/in-house/tests/test-name.test ../../util/hb-shape font.ttf ``` -If you created a new test file, add it to `Makefile.am` so it is run. -Check that `make check` does indeed run it, and that the test passes. -When everything looks good, `git add` the new font as well as new -test file if you created any. You can see what new files are there -by running `git status data/in-house`. And commit! +If you created a new test file, add it to `data/in-house/Makefile.sources` +so it is run. Check that `make check` does indeed run it, and that the +test passes. When everything looks good, `git add` the new font as well +as the new test file if you created any. You can see what new files are +there by running `git status data/in-house`. And commit! *Note!* Please only add tests using Open Source fonts, preferably under OFL or similar license. diff --git a/test/shaping/data/in-house/Makefile.sources b/test/shaping/data/in-house/Makefile.sources index 247133d4c..1922fd4cd 100644 --- a/test/shaping/data/in-house/Makefile.sources +++ b/test/shaping/data/in-house/Makefile.sources @@ -29,6 +29,7 @@ TESTS = \ tests/mark-attachment.tests \ tests/mark-filtering-sets.tests \ tests/mongolian-variation-selector.tests \ + tests/myanmar-syllable.tests \ tests/spaces.tests \ tests/simple.tests \ tests/tibetan-contractions-1.tests \ diff --git a/test/shaping/data/in-house/fonts/af3086380b743099c54a3b11b96766039ea62fcd.ttf b/test/shaping/data/in-house/fonts/af3086380b743099c54a3b11b96766039ea62fcd.ttf new file mode 100644 index 000000000..5945b16a6 Binary files /dev/null and b/test/shaping/data/in-house/fonts/af3086380b743099c54a3b11b96766039ea62fcd.ttf differ diff --git a/test/shaping/data/in-house/tests/myanmar-syllable.tests b/test/shaping/data/in-house/tests/myanmar-syllable.tests new file mode 100644 index 000000000..4666ef99d --- /dev/null +++ b/test/shaping/data/in-house/tests/myanmar-syllable.tests @@ -0,0 +1 @@ +../fonts/af3086380b743099c54a3b11b96766039ea62fcd.ttf:--no-glyph-names:U+101D,U+FE00,U+1031,U+FE00,U+1031,U+FE00:[6=0+465|6=0+465|5=0+502]