提交 92a1ad7b 编写于 作者: B Behdad Esfahbod

[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.
上级 4c450c70
...@@ -505,6 +505,7 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff ...@@ -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 */ /* -> starting from the end of the syllable, move backwards */
unsigned int i = end; unsigned int i = end;
bool seen_below = false;
do { do {
i--; i--;
/* -> until a consonant is found */ /* -> until a consonant is found */
...@@ -513,11 +514,13 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff ...@@ -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 /* -> that does not have a below-base or post-base form
* (post-base forms have to follow below-base forms), */ * (post-base forms have to follow below-base forms), */
if (info[i].indic_position() != POS_BELOW_C && 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; base = i;
break; break;
} }
if (info[i].indic_position() == POS_BELOW_C)
seen_below = true;
/* -> or that is not a pre-base reordering Ra, /* -> or that is not a pre-base reordering Ra,
* *
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册