Hi Behdad, On 12/22/12, Behdad Esfahbod <[email protected]> wrote: > src/hb-ot-shape-complex-indic.cc > | 15 +++++++--- > test/shaping/texts/in-tree/shaper-indic/indic/script-malayalam/misc/MANIFEST > | 1 > test/shaping/texts/in-tree/shaper-indic/indic/script-malayalam/misc/dot-reph.txt > | 1 > 3 files changed, 13 insertions(+), 4 deletions(-) > > New commits: > commit 8b217f5ac54aa0dcbba2dd6d59aa89dde33e56c2 > Author: Behdad Esfahbod <[email protected]> > Date: Fri Dec 21 15:48:32 2012 -0500 > > [Indic] Reorder Malayalam dot-reph to after base > > Test sequence is simple: U+0D4E,U+0D15. The doth-reph should be > reordered to after the Ka. > > https://bugzilla.redhat.com/show_bug.cgi?id=799565 > > diff --git a/src/hb-ot-shape-complex-indic.cc > b/src/hb-ot-shape-complex-indic.cc > index cff2ea6..02cb173 100644 > --- a/src/hb-ot-shape-complex-indic.cc > +++ b/src/hb-ot-shape-complex-indic.cc > @@ -467,7 +467,7 @@ initial_reordering_consonant_syllable (const > hb_ot_shape_plan_t *plan, > unsigned int limit = start; > if (indic_plan->mask_array[RPHF] && > start + 3 <= end && > - (/* TODO Handle other Reph modes. */ > + ( > (indic_plan->config->reph_mode == REPH_MODE_IMPLICIT && !is_joiner > (info[start + 2])) || > (indic_plan->config->reph_mode == REPH_MODE_EXPLICIT && info[start + > 2].indic_category() == OT_ZWJ) > )) > @@ -482,7 +482,14 @@ initial_reordering_consonant_syllable (const > hb_ot_shape_plan_t *plan, > base = start; > has_reph = true; > } > - }; > + } else if (indic_plan->config->reph_mode == REPH_MODE_LOG_REPHA && > info[start].indic_category() == OT_Repha) > + { > + limit += 1; > + while (limit < end && is_joiner (info[limit])) > + limit++; > + base = start; > + has_reph = true; > + } > > switch (indic_plan->config->base_pos) > { > @@ -570,7 +577,7 @@ initial_reordering_consonant_syllable (const > hb_ot_shape_plan_t *plan, > * base consonants. > * > * Only do this for unforced Reph. (ie. not for Ra,H,ZWJ. */ > - if (has_reph && base == start && start + 2 == limit) { > + if (has_reph && base == start && start - limit <= 2) { > /* Have no other consonant, so Reph is not formed and Ra becomes > base. */ > has_reph = false; > }
This seems to have regressed test case 2 (അഥൎവ്വം) under test/shaping/texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt with rendering of sub-base Va being incorrect on വ്വ (Va+Virama+Va). Rendering dot reph with Rachana font also regressed, but I guess that is due to the font implementation - Santhosh Thottingal would be able to clarify. I'm on vacation with very limited access to mail, please excuse delay in replying. > diff --git > -- Cheers, Rajeesh http://rajeeshknambiar.wordpress.com _______________________________________________ HarfBuzz mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/harfbuzz
