[Indic] Position Bengali Reph before matras
This commit is contained in:
parent
f893672511
commit
9d0d319a4a
|
@ -565,6 +565,7 @@ final_reordering_syllable (hb_buffer_t *buffer, hb_mask_t *mask_array,
|
||||||
* halant, position is moved after it.
|
* halant, position is moved after it.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
{
|
||||||
unsigned int new_matra_pos = base - 1;
|
unsigned int new_matra_pos = base - 1;
|
||||||
while (new_matra_pos > start &&
|
while (new_matra_pos > start &&
|
||||||
!(FLAG (info[new_matra_pos].indic_category()) & (FLAG (OT_M) | FLAG (OT_H))))
|
!(FLAG (info[new_matra_pos].indic_category()) & (FLAG (OT_M) | FLAG (OT_H))))
|
||||||
|
@ -589,6 +590,7 @@ final_reordering_syllable (hb_buffer_t *buffer, hb_mask_t *mask_array,
|
||||||
new_matra_pos--;
|
new_matra_pos--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* o Reorder reph:
|
/* o Reorder reph:
|
||||||
|
@ -650,8 +652,8 @@ final_reordering_syllable (hb_buffer_t *buffer, hb_mask_t *mask_array,
|
||||||
* proceed to step 5.
|
* proceed to step 5.
|
||||||
*/
|
*/
|
||||||
reph_step_1:
|
reph_step_1:
|
||||||
{
|
|
||||||
if (reph_pos == REPH_AFTER_POSTSCRIPT)
|
if (reph_pos == REPH_AFTER_POSTSCRIPT)
|
||||||
|
{
|
||||||
goto reph_step_5;
|
goto reph_step_5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -685,6 +687,7 @@ final_reordering_syllable (hb_buffer_t *buffer, hb_mask_t *mask_array,
|
||||||
* consonant that is not a potential pre-base reordering Ra.
|
* consonant that is not a potential pre-base reordering Ra.
|
||||||
*/
|
*/
|
||||||
reph_step_3:
|
reph_step_3:
|
||||||
|
if (reph_pos == REPH_AFTER_MAIN)
|
||||||
{
|
{
|
||||||
/* XXX */
|
/* XXX */
|
||||||
}
|
}
|
||||||
|
@ -695,8 +698,15 @@ final_reordering_syllable (hb_buffer_t *buffer, hb_mask_t *mask_array,
|
||||||
* first matra, syllable modifier sign or vedic sign.
|
* first matra, syllable modifier sign or vedic sign.
|
||||||
*/
|
*/
|
||||||
reph_step_4:
|
reph_step_4:
|
||||||
|
/* This is our take on what step 4 is trying to say (and failing, BADLY). */
|
||||||
|
if (reph_pos == REPH_AFTER_SUBSCRIPT)
|
||||||
{
|
{
|
||||||
/* XXX */
|
new_reph_pos = base;
|
||||||
|
while (new_reph_pos < end &&
|
||||||
|
!( FLAG (info[new_reph_pos + 1].indic_position()) & (FLAG (POS_MATRAS) | FLAG (POS_SMVD))))
|
||||||
|
new_reph_pos++;
|
||||||
|
if (new_reph_pos < end)
|
||||||
|
goto reph_move;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 5. If no consonant is found in steps 3 or 4, move reph to a position
|
/* 5. If no consonant is found in steps 3 or 4, move reph to a position
|
||||||
|
|
Loading…
Reference in New Issue