[Indic] Move Halant with after-base consonants
Normally, we attach the Halant to the previous character and move it with it. For after-base consonants however, the Halant "belongs" to the consonant after, so attach it so. This fixes Bengali sequences involving post-base consonant Ya, which should ligate with the Halant to form Ya Phala, but previously a reordered matras was blocking the ligation.
This commit is contained in:
parent
d5c4edcdd6
commit
74ccc6a132
|
@ -468,6 +468,17 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* Re-attach ZWJ, ZWNJ, and halant to next char, for after-base consonants. */
|
||||||
|
{
|
||||||
|
unsigned int last_halant = end;
|
||||||
|
for (unsigned int i = base + 1; i < end; i++)
|
||||||
|
if (info[i].indic_category() == OT_H)
|
||||||
|
last_halant = i;
|
||||||
|
else if (is_consonant (info[i])) {
|
||||||
|
for (unsigned int j = last_halant; j < i; j++)
|
||||||
|
info[j].indic_position() = info[i].indic_position();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* We do bubble-sort, skip malicious clusters attempts */
|
/* We do bubble-sort, skip malicious clusters attempts */
|
||||||
if (end - start < 64)
|
if (end - start < 64)
|
||||||
|
|
|
@ -48,3 +48,4 @@
|
||||||
ৱ্ভ
|
ৱ্ভ
|
||||||
অৗ
|
অৗ
|
||||||
ন্ত্র
|
ন্ত্র
|
||||||
|
ত্যু
|
||||||
|
|
Loading…
Reference in New Issue