diff --git a/src/hb-ot-shape-complex-indic-machine.rl b/src/hb-ot-shape-complex-indic-machine.rl index 48bf60915496dfed96a44c69f9a265d1cbf30cc9..9ad3ec25449ae309b2b9341119c5ed7887e93846 100644 --- a/src/hb-ot-shape-complex-indic-machine.rl +++ b/src/hb-ot-shape-complex-indic-machine.rl @@ -67,11 +67,12 @@ matra_group = M.N?.H?; syllable_tail = SM? (Coeng (cn|V))? (VD VD?)?; place_holder = NBSP | DOTTEDCIRCLE; halant_group = (h.z?|z.h); +halant_or_matra_group = (halant_group | matra_group*); -consonant_syllable = Repha? (cn.halant_group)* cn A? (halant_group | matra_group*)? syllable_tail; -vowel_syllable = reph? V.n? (halant_group.cn | ZWJ.cn)* matra_group* syllable_tail; -standalone_cluster = reph? place_holder.n? (halant_group.cn)* matra_group* syllable_tail; +consonant_syllable = Repha? (cn.halant_group)* cn A? halant_or_matra_group? syllable_tail; +vowel_syllable = reph? V.n? (halant_group.cn | ZWJ.cn)* halant_or_matra_group? syllable_tail; +standalone_cluster = reph? place_holder.n? (halant_group.cn)* halant_or_matra_group? syllable_tail; other = any; main := |* diff --git a/test/shaping/texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt b/test/shaping/texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt index 3c2bab76b4356c3a9f2ccc8f6403ebd212a85401..23afbe0c80350fdec5d7a4da8ddfa9750cc63ac6 100644 --- a/test/shaping/texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt +++ b/test/shaping/texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt @@ -28,3 +28,4 @@ र्अ् र्अ्‌ र्अ्‍ +र्आ्र्