From d0e68dbd0b9fc9a42c4280d01c8ffd9c5015d550 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Fri, 20 Jul 2012 11:25:41 -0400 Subject: [PATCH] [Indic] Implement reph positioning step 5 Not tuned, just copied from step 2. Fixes another 0.5% of Kannada failures. 1% to go. --- src/hb-ot-shape-complex-indic.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index ffae43095..ae3af2c60 100644 --- a/src/hb-ot-shape-complex-indic.cc +++ b/src/hb-ot-shape-complex-indic.cc @@ -999,7 +999,17 @@ final_reordering_syllable (hb_buffer_t *buffer, */ reph_step_5: { - /* XXX */ + /* Copied from step 2. */ + new_reph_pos = start + 1; + while (new_reph_pos < base && !is_halant_or_coeng (info[new_reph_pos])) + new_reph_pos++; + + if (new_reph_pos < base && is_halant_or_coeng (info[new_reph_pos])) { + /* ->If ZWJ or ZWNJ are following this halant, position is moved after it. */ + if (new_reph_pos + 1 < base && is_joiner (info[new_reph_pos + 1])) + new_reph_pos++; + goto reph_move; + } } /* 6. Otherwise, reorder reph to the end of the syllable.