From 892eb7878238d810a2a70f9dadbf958207bfeaa1 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Fri, 11 May 2012 16:54:40 +0200 Subject: [PATCH] [Indic] Implement Uniscribe Reph+Matra+Halant bug feature --- src/hb-ot-shape-complex-indic.cc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index 4a5f3630e..089df06e7 100644 --- a/src/hb-ot-shape-complex-indic.cc +++ b/src/hb-ot-shape-complex-indic.cc @@ -650,11 +650,15 @@ final_reordering_syllable (hb_buffer_t *buffer, while (new_reph_pos > start && info[new_reph_pos].indic_position() == POS_SMVD) new_reph_pos--; - if (unlikely (info[new_reph_pos].indic_category() == OT_H)) { - /* *If* the Reph is to be ending up after a Matra,Halant sequence, - * position it before that Halant so it can interact with the Matra. - * However, if it's a plain Consonant,Halant we shouldn't do that. - */ + /* + * If the Reph is to be ending up after a Matra,Halant sequence, + * position it before that Halant so it can interact with the Matra. + * However, if it's a plain Consonant,Halant we shouldn't do that. + * Uniscribe doesn't do this. + * TEST: U+0930,U+094D,U+0915,U+094B,U+094D + */ + if (!options.uniscribe_bug_compatible && + unlikely (info[new_reph_pos].indic_category() == OT_H)) { for (unsigned int i = base + 1; i < new_reph_pos; i++) if (info[i].indic_category() == OT_M) { /* Ok, got it. */