[Indic] Stop searching for base if a post form is found before below form

Improves Bengali and Gurmukhi.  Malayalam regressed a bit.  We will deal
with that later.
This commit is contained in:
Behdad Esfahbod 2012-07-20 18:38:27 -04:00
parent 4c450c703f
commit 92a1ad7bef
1 changed files with 4 additions and 1 deletions

View File

@ -505,6 +505,7 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff
{
/* -> starting from the end of the syllable, move backwards */
unsigned int i = end;
bool seen_below = false;
do {
i--;
/* -> until a consonant is found */
@ -513,11 +514,13 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff
/* -> that does not have a below-base or post-base form
* (post-base forms have to follow below-base forms), */
if (info[i].indic_position() != POS_BELOW_C &&
info[i].indic_position() != POS_POST_C)
(info[i].indic_position() != POS_POST_C || seen_below))
{
base = i;
break;
}
if (info[i].indic_position() == POS_BELOW_C)
seen_below = true;
/* -> or that is not a pre-base reordering Ra,
*