Hi Behdad,

On Thu, Dec 17, 2015 at 6:31 PM, Behdad Esfahbod <
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>
> 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).


>
>     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
> http://lists.freedesktop.org/mailman/listinfo/harfbuzz
>



-- 
Cheers,
Rajeesh
_______________________________________________
HarfBuzz mailing list
HarfBuzz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/harfbuzz

Reply via email to