Refactor
This commit is contained in:
parent
5e4e21fce4
commit
617f4ac46f
|
@ -250,6 +250,7 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff
|
|||
{
|
||||
hb_glyph_info_t *info = buffer->info;
|
||||
|
||||
|
||||
/* 1. Find base consonant:
|
||||
*
|
||||
* The shaping engine finds the base consonant of the syllable, using the
|
||||
|
@ -267,22 +268,22 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff
|
|||
unsigned int base = end;
|
||||
bool has_reph = false;
|
||||
|
||||
/* -> If the syllable starts with Ra + Halant (in a script that has Reph)
|
||||
* and has more than one consonant, Ra is excluded from candidates for
|
||||
* base consonants. */
|
||||
unsigned int limit = start;
|
||||
if (mask_array[RPHF] &&
|
||||
start + 3 <= end &&
|
||||
info[start].indic_category() == OT_Ra &&
|
||||
info[start + 1].indic_category() == OT_H &&
|
||||
!is_joiner (info[start + 2]))
|
||||
{
|
||||
limit += 2;
|
||||
base = start;
|
||||
has_reph = true;
|
||||
};
|
||||
/* -> If the syllable starts with Ra + Halant (in a script that has Reph)
|
||||
* and has more than one consonant, Ra is excluded from candidates for
|
||||
* base consonants. */
|
||||
unsigned int limit = start;
|
||||
if (mask_array[RPHF] &&
|
||||
start + 3 <= end &&
|
||||
info[start].indic_category() == OT_Ra &&
|
||||
info[start + 1].indic_category() == OT_H &&
|
||||
!is_joiner (info[start + 2]))
|
||||
{
|
||||
limit += 2;
|
||||
base = start;
|
||||
has_reph = true;
|
||||
};
|
||||
|
||||
{
|
||||
/* -> starting from the end of the syllable, move backwards */
|
||||
unsigned int i = end;
|
||||
do {
|
||||
|
@ -314,14 +315,15 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff
|
|||
} while (i > limit);
|
||||
if (base < start)
|
||||
base = start; /* Just in case... */
|
||||
}
|
||||
|
||||
/* -> If the syllable starts with Ra + Halant (in a script that has Reph)
|
||||
* and has more than one consonant, Ra is excluded from candidates for
|
||||
* base consonants. */
|
||||
if (has_reph && base == start) {
|
||||
/* Have no other consonant, so Reph is not formed and Ra becomes base. */
|
||||
has_reph = false;
|
||||
|
||||
/* -> If the syllable starts with Ra + Halant (in a script that has Reph)
|
||||
* and has more than one consonant, Ra is excluded from candidates for
|
||||
* base consonants. */
|
||||
if (has_reph && base == start) {
|
||||
/* Have no other consonant, so Reph is not formed and Ra becomes base. */
|
||||
has_reph = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue