[HarfBuzz] harfbuzz: Branch 'master' - 2 commits

Rajeesh K Nambiar rajeeshknambiar at gmail.com
Sat Dec 22 06:08:13 PST 2012


Hi Behdad,

On 12/22/12, Behdad Esfahbod <behdad at kemper.freedesktop.org> 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 <behdad at behdad.org>
> 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



More information about the HarfBuzz mailing list