summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2006-10-02 21:26:51 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2006-10-02 21:26:51 +0000
commitef2f9015deba1d40d247397c25cc25d7a303cb65 (patch)
treeede1b75427bf86d1de1997c7f4aa5cdedc17d001
parente72187e94d38b05a884005db951d28abb418aad9 (diff)
downloadpango-ef2f9015deba1d40d247397c25cc25d7a303cb65.tar.gz
Bug 357790 – Rendering problem for malayalam consonant RA (U+0D30)
2006-10-02 Behdad Esfahbod <behdad@gnome.org> 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.
-rw-r--r--ChangeLog8
-rw-r--r--modules/indic/indic-ot-class-tables.c2
-rw-r--r--modules/indic/indic-ot.c19
3 files changed, 19 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 8f8d30aa..9b70c46e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-10-02 Behdad Esfahbod <behdad@gnome.org>
+
+ 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-08-26 Behdad Esfahbod <behdad@gnome.org>
Bug 349813 – typo in docs for pango_layout_move_cursor_visually
diff --git a/modules/indic/indic-ot-class-tables.c b/modules/indic/indic-ot-class-tables.c
index 95089674..dccadf43 100644
--- a/modules/indic/indic-ot-class-tables.c
+++ b/modules/indic/indic-ot-class-tables.c
@@ -215,7 +215,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 */