[Indic] Suppress reph formation upon joiners
This commit is contained in:
parent
8354e004e5
commit
9ee27a928a
|
@ -282,6 +282,11 @@ is_ra (hb_codepoint_t u)
|
||||||
compare_codepoint);
|
compare_codepoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
is_joiner (hb_glyph_info_t *info)
|
||||||
|
{
|
||||||
|
return info->indic_category() == OT_ZWJ || info->indic_category() == OT_ZWNJ;
|
||||||
|
}
|
||||||
|
|
||||||
static const struct {
|
static const struct {
|
||||||
hb_tag_t tag;
|
hb_tag_t tag;
|
||||||
|
@ -501,7 +506,8 @@ found_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buffer, hb_mask_t
|
||||||
/* Handle beginning Ra */
|
/* Handle beginning Ra */
|
||||||
if (start + 2 <= end &&
|
if (start + 2 <= end &&
|
||||||
info[start].indic_category() == OT_Ra &&
|
info[start].indic_category() == OT_Ra &&
|
||||||
info[start + 1].indic_category() == OT_H)
|
info[start + 1].indic_category() == OT_H &&
|
||||||
|
(start + 2 == end || !is_joiner (&info[start])))
|
||||||
{
|
{
|
||||||
info[start].indic_position() = POS_POST;
|
info[start].indic_position() = POS_POST;
|
||||||
info[start].mask = mask_array[RPHF];
|
info[start].mask = mask_array[RPHF];
|
||||||
|
|
Loading…
Reference in New Issue