[HarfBuzz] [BUG] commit b85800f9de8976a7418ef9df467d3080c6ab0199

Harshula harshula at gmail.com
Thu Sep 6 19:11:26 PDT 2012


On Fri, 2012-08-31 at 16:21 -0700, Behdad Esfahbod wrote:

> commit b85800f9de8976a7418ef9df467d3080c6ab0199
> Author: Behdad Esfahbod <behdad at behdad.org>
> Date:   Fri Aug 31 18:12:01 2012 -0400
> 
>     [Indic] Implement dotted-circle insertion for broken clusters
>     
>     No panic, we reeally insert dotted circle when it's absolutely broken.
>     
>     Fixes most of the dotted-circle cases against Uniscribe. (for Devanagari
>     fixes 80% of them, for Khmer 70%; the rest look like Uniscribe being
>     really bogus...)
>     
>     I had to make a decision.  Apparently Uniscribe adds one dotted circle
>     to each broken character.  I tried that, but that goes wrong easily with
>     split matras.  So I made it add only one dotted circle to an entire
>     broken syllable tail.  As in: "if there was a dotted circle here, this
>     would have formed a correct cluster."  That works better for split
>     stuff, and I like it more.

<snip>

> --- a/src/hb-ot-shape-complex-indic-machine.rl
> +++ b/src/hb-ot-shape-complex-indic-machine.rl
> @@ -75,12 +75,14 @@ halant_or_matra_group = (final_halant_group | matra_group{0,4});
>  consonant_syllable =	Repha? (cn.halant_group){0,4} cn A? halant_or_matra_group? syllable_tail;
>  vowel_syllable =	reph? V.n? (ZWJ | (halant_group.cn){0,4} halant_or_matra_group? syllable_tail);
>  standalone_cluster =	reph? place_holder.n? (halant_group.cn){0,4} halant_or_matra_group? syllable_tail;
> +broken_cluster =	n? (halant_group.cn){0,4} halant_or_matra_group syllable_tail;
>  other =			any;

reproducer string: ක්‍රා
reproducer font: FreeSerif.ttf

Working before commit b85800f9de8976a7418ef9df467d3080c6ab0199:

FreeSerif.ttf:
[ka_sinh=0+915|rak1.sinh=0|aa2_sinh=0+336]

lklug.hj.ttf:
[uni0D9A.vatu=0+913|uni0DCF=0+356]

Bug after commit b85800f9de8976a7418ef9df467d3080c6ab0199:

FreeSerif.ttf:
[ka_sinh=0+915|rak1.sinh=0|dottedcircle=0+809|aa2_sinh=0+336]

lklug.hj.ttf:
[uni0D9A.vatu=0+913|uni0DCF=0+356]

Visible bug after commit 2bd9fe359839a653f7caae534bf768af1735f155:

FreeSerif.ttf:
[ka_sinh=0+915|rak1.sinh=0|space=0|aa2_sinh=0+336]

lklug.hj.ttf:
[uni0D9A.vatu=0+913|uni0DCF=0+356]

cya,
#




More information about the HarfBuzz mailing list