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;
|
hb_glyph_info_t *info = buffer->info;
|
||||||
|
|
||||||
|
|
||||||
/* 1. Find base consonant:
|
/* 1. Find base consonant:
|
||||||
*
|
*
|
||||||
* The shaping engine finds the base consonant of the syllable, using the
|
* 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;
|
unsigned int base = end;
|
||||||
bool has_reph = false;
|
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;
|
/* -> If the syllable starts with Ra + Halant (in a script that has Reph)
|
||||||
base = start;
|
* and has more than one consonant, Ra is excluded from candidates for
|
||||||
has_reph = true;
|
* 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 */
|
/* -> starting from the end of the syllable, move backwards */
|
||||||
unsigned int i = end;
|
unsigned int i = end;
|
||||||
do {
|
do {
|
||||||
|
@ -314,14 +315,15 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff
|
||||||
} while (i > limit);
|
} while (i > limit);
|
||||||
if (base < start)
|
if (base < start)
|
||||||
base = start; /* Just in case... */
|
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
|
/* -> If the syllable starts with Ra + Halant (in a script that has Reph)
|
||||||
* base consonants. */
|
* and has more than one consonant, Ra is excluded from candidates for
|
||||||
if (has_reph && base == start) {
|
* base consonants. */
|
||||||
/* Have no other consonant, so Reph is not formed and Ra becomes base. */
|
if (has_reph && base == start) {
|
||||||
has_reph = false;
|
/* Have no other consonant, so Reph is not formed and Ra becomes base. */
|
||||||
|
has_reph = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue