[Indic] Insert dottedcircle after a lone Malayalam dot-reph
This commit is contained in:
parent
3cdce6497b
commit
596740db04
File diff suppressed because it is too large
Load Diff
|
@ -76,7 +76,7 @@ halant_or_matra_group = (final_halant_group | (h.ZWJ)? matra_group{0,4});
|
||||||
consonant_syllable = Repha? (cn.halant_group){0,4} cn A? halant_or_matra_group? syllable_tail;
|
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);
|
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;
|
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;
|
broken_cluster = reph? n? (halant_group.cn){0,4} halant_or_matra_group syllable_tail;
|
||||||
other = any;
|
other = any;
|
||||||
|
|
||||||
main := |*
|
main := |*
|
||||||
|
|
|
@ -894,13 +894,22 @@ insert_dotted_circles (const hb_ot_shape_plan_t *plan HB_UNUSED,
|
||||||
syllable_type_t syllable_type = (syllable_type_t) (syllable & 0x0F);
|
syllable_type_t syllable_type = (syllable_type_t) (syllable & 0x0F);
|
||||||
if (unlikely (last_syllable != syllable && syllable_type == broken_cluster))
|
if (unlikely (last_syllable != syllable && syllable_type == broken_cluster))
|
||||||
{
|
{
|
||||||
|
last_syllable = syllable;
|
||||||
|
|
||||||
hb_glyph_info_t info = dottedcircle;
|
hb_glyph_info_t info = dottedcircle;
|
||||||
info.cluster = buffer->cur().cluster;
|
info.cluster = buffer->cur().cluster;
|
||||||
info.mask = buffer->cur().mask;
|
info.mask = buffer->cur().mask;
|
||||||
info.syllable() = buffer->cur().syllable();
|
info.syllable() = buffer->cur().syllable();
|
||||||
|
|
||||||
|
/* Insert dottedcircle after possible Repha. */
|
||||||
|
while (buffer->idx < buffer->len &&
|
||||||
|
last_syllable == buffer->cur().syllable() &&
|
||||||
|
buffer->cur().indic_category() == OT_Repha)
|
||||||
|
buffer->next_glyph ();
|
||||||
|
|
||||||
buffer->output_info (info);
|
buffer->output_info (info);
|
||||||
last_syllable = syllable;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
buffer->next_glyph ();
|
buffer->next_glyph ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue