On 15-12-18 07:49 PM, Rajeesh K V wrote: > Hi Behdad, > > > On Thu, Dec 17, 2015 at 6:31 PM, Behdad Esfahbod > <beh...@kemper.freedesktop.org <mailto:beh...@kemper.freedesktop.org>> wrote: > > src/hb-ot-shape-complex-indic.cc | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > New commits: > commit 508cc3d3cfcfb0383df0fe795cc28db4e0fd5729 > Author: Behdad Esfahbod <beh...@behdad.org <mailto:beh...@behdad.org>> > Date: Thu Dec 17 17:31:17 2015 +0000 > > [indic] Allow context when matching for Malayalam new-spec > > Test sequence: > U+0995,U+09CD,U+09B0 > > > These code points are for Bengali, they don't make sense for Malayalam. Could > you share more details about this specific test case? > (I saw that subsequent commit 45b7ec365225109eb0854e6c417f48860b5f24af fixes > regression introduced by this commit, that made me curious to look into this > one).
Err, you are right. The sequence should have read: U+0D32, U+0D4D, U+0D32, U+0D3E behdad > With Nirmala shipped on Windows 10, this failed to form the below > form. > Works now. > > Reported by Sairus. > > diff --git a/src/hb-ot-shape-complex-indic.cc > b/src/hb-ot-shape-complex-indic.cc > index 5354897..a630419 100644 > --- a/src/hb-ot-shape-complex-indic.cc > +++ b/src/hb-ot-shape-complex-indic.cc > @@ -557,8 +557,15 @@ data_create_indic (const hb_ot_shape_plan_t *plan) > indic_plan->virama_glyph = (hb_codepoint_t) -1; > > /* Use zero-context would_substitute() matching for new-spec of the > main > - * Indic scripts, and scripts with one spec only, but not for > old-specs. */ > - bool zero_context = !indic_plan->is_old_spec; > + * Indic scripts, and scripts with one spec only, but not for > old-specs. > + * The new-spec for all dual-spec scripts says zero-context matching > happens. > + * > + * However, testing with Malayalam shows that old and new spec both > allow > + * context. Testing with Bengali new-spec however shows that it > doesn't. > + * So, the heuristic here is the way it is. It should *only* be > changed, > + * as we discover more cases of what Windows does. DON'T TOUCH > OTHERWISE. > + */ > + bool zero_context = !indic_plan->is_old_spec && plan->props.script != > HB_SCRIPT_MALAYALAM; > indic_plan->rphf.init (&plan->map, HB_TAG('r','p','h','f'), > zero_context); > indic_plan->pref.init (&plan->map, HB_TAG('p','r','e','f'), > zero_context); > indic_plan->blwf.init (&plan->map, HB_TAG('b','l','w','f'), > zero_context); > _______________________________________________ > HarfBuzz mailing list > HarfBuzz@lists.freedesktop.org <mailto:HarfBuzz@lists.freedesktop.org> > http://lists.freedesktop.org/mailman/listinfo/harfbuzz > > > > > -- > Cheers, > Rajeesh > > > > _______________________________________________ > HarfBuzz mailing list > HarfBuzz@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/harfbuzz > _______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz