From deb97da10497273a4790ad85d965249d0c5acf10 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 2 Oct 2006 21:27:40 +0000 Subject: =?UTF-8?q?Bug=20357790=20=E2=80=93=20Rendering=20problem=20for=20?= =?UTF-8?q?malayalam=20consonant=20RA=20(U+0D30)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2006-10-02 Behdad Esfahbod Bug 357790 – Rendering problem for malayalam consonant RA (U+0D30) * modules/indic/indic-ot-class-tables.c: * modules/indic/indic-ot.c (indic_ot_reorder): Fix. --- ChangeLog | 8 ++++++++ modules/indic/indic-ot-class-tables.c | 2 +- modules/indic/indic-ot.c | 19 ++++++++++--------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6c010ea0..1ce469dc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-10-02 Behdad Esfahbod + + Bug 357790 – Rendering problem for malayalam consonant RA (U+0D30) + + * modules/indic/indic-ot-class-tables.c: + * modules/indic/indic-ot.c (indic_ot_reorder): + Fix. + 2006-10-02 Behdad Esfahbod Bug 359043 – PangoRenderer does not show in API docs diff --git a/modules/indic/indic-ot-class-tables.c b/modules/indic/indic-ot-class-tables.c index a0c32aa4..dd6277d4 100644 --- a/modules/indic/indic-ot-class-tables.c +++ b/modules/indic/indic-ot-class-tables.c @@ -214,7 +214,7 @@ static const IndicOTCharClass mlymCharClasses[] = _xx, _xx, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _iv, _iv, /* 0D00 - 0D0F */ _iv, _xx, _iv, _iv, _iv, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, /* 0D10 - 0D1F */ _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _xx, _ct, _ct, _ct, _ct, _ct, _pb, /* 0D20 - 0D2F */ - _pb, _cn, _ct, _ct, _ct, _pb, _ct, _ct, _ct, _ct, _xx, _xx, _xx, _xx, _dr, _dr, /* 0D30 - 0D3F */ + _cn, _cn, _ct, _ct, _ct, _pb, _ct, _ct, _ct, _ct, _xx, _xx, _xx, _xx, _dr, _dr, /* 0D30 - 0D3F */ _dr, _dr, _dr, _dr, _xx, _xx, _dl, _dl, _dl, _xx, _s1, _s2, _s3, _vr, _xx, _xx, /* 0D40 - 0D4F */ _xx, _xx, _xx, _xx, _xx, _xx, _xx, _dr, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, /* 0D50 - 0D5F */ _iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx /* 0D60 - 0D6F */ diff --git a/modules/indic/indic-ot.c b/modules/indic/indic-ot.c index 496932da..a03e0141 100644 --- a/modules/indic/indic-ot.c +++ b/modules/indic/indic-ot.c @@ -448,7 +448,16 @@ glong indic_ot_reorder(const gunichar *chars, const glong *utf8_offsets, glong c (chars[baseConsonant] == 0x0d31) && ((chars[baseConsonant - 2] >= 0x0d15) && (chars[baseConsonant - 2] <= 0x0d39))) { - swapChars (&output, -1, -3); + swapChars (&output, -1, -3); + } + + /* for the special conjuction of Cons+0x0d4d+0x0d30 of Malayalam */ + if ((baseConsonant - 2 >= 0) && + (chars[baseConsonant - 1] == 0x0d4d) && + (chars[baseConsonant] == 0x0d30) && + ((chars[baseConsonant - 2] >= 0x0d15) && + (chars[baseConsonant - 2] <= 0x0d39))) { + swapChars (&output, -1, -3); } if ((class_table->scriptFlags & SF_MATRAS_AFTER_BASE) != 0) { @@ -496,14 +505,6 @@ glong indic_ot_reorder(const gunichar *chars, const glong *utf8_offsets, glong c /* write halant that was after base consonant */ writeChar(&output, chars[bcSpan], /*bcSpan*/ prev, blwf_p); - - /* for Ra of Malayalam */ - if ((bcSpan - 1 >= 0) && (bcSpan + 1 < char_count) && - (chars[bcSpan] == 0x0d4d) && (chars[bcSpan + 1] == 0x0d30) && - ((chars[bcSpan - 1] >= 0x0d15) && (chars[bcSpan - 1] <= 0x0d39))) { - - shiftCharsLeft3 (&output); - } } /* write the training halant, if there is one */ -- cgit v1.2.1