diff options
author | Behdad Esfahbod <behdad@gnome.org> | 2006-12-04 18:28:31 +0000 |
---|---|---|
committer | Behdad Esfahbod <behdad@src.gnome.org> | 2006-12-04 18:28:31 +0000 |
commit | 50b258082b18aefcf09d7ce6bade4deb081e7f52 (patch) | |
tree | 5e696b007f584efcc67dfc8e7c8a2db704d6526c /modules | |
parent | 2a9627b697fae3b9023554b867aeeb3701e0f68d (diff) | |
download | pango-50b258082b18aefcf09d7ce6bade4deb081e7f52.tar.gz |
Red Hat Bug 211964: [ta] Rendering issue with Tamil Patch from LingNing
2006-12-04 Behdad Esfahbod <behdad@gnome.org>
Red Hat Bug 211964: [ta] Rendering issue with Tamil
Patch from LingNing Zhang
* modules/indic/indic-ot-class-tables.c (indic_ot_find_syllable):
Handle 2 split matra.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/indic/indic-ot-class-tables.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/modules/indic/indic-ot-class-tables.c b/modules/indic/indic-ot-class-tables.c index 5842cc78..45bf0b05 100644 --- a/modules/indic/indic-ot-class-tables.c +++ b/modules/indic/indic-ot-class-tables.c @@ -468,6 +468,48 @@ glong indic_ot_find_syllable(const IndicOTClassTable *class_table, const gunicha state = stateTable[state][char_class & CF_CLASS_MASK]; + /*for the components of split matra*/ + if ((char_count >= cursor + 3) && + (chars[cursor] == 0x0DD9 && chars[cursor + 1] == 0x0DCF && chars[cursor + 2] == 0x0DCA)) { /*for 3 split matra of Sinhala*/ + return cursor + 3; + } + else if ((char_count >= cursor + 3) && + (chars[cursor] == 0x0CC6 && chars[cursor + 1] == 0x0CC2 && chars[cursor + 2] == 0x0CD5)) { /*for 3 split matra of Kannada*/ + return cursor + 3; + } + /*for 2 split matra*/ + else if (char_count >= cursor + 2) { + /*for Bengali*/ + if ((chars[cursor] == 0x09C7 && chars[cursor + 1] == 0x09BE) || + (chars[cursor] == 0x09C7 && chars[cursor + 1] == 0x09D7) || + /*for Oriya*/ + (chars[cursor] == 0x0B47 && chars[cursor + 1] == 0x0B3E) || + (chars[cursor] == 0x0B47 && chars[cursor + 1] == 0x0B56) || + (chars[cursor] == 0x0B47 && chars[cursor + 1] == 0x0B57) || + /*for Tamil*/ + (chars[cursor] == 0x0BC6 && chars[cursor + 1] == 0x0BBE) || + (chars[cursor] == 0x0BC6 && chars[cursor + 1] == 0x0BD7) || + (chars[cursor] == 0x0BC7 && chars[cursor + 1] == 0x0BBE) || + /*for Malayalam*/ + (chars[cursor] == 0x0D46 && chars[cursor + 1] == 0x0D3E) || + (chars[cursor] == 0x0D46 && chars[cursor + 1] == 0x0D57) || + (chars[cursor] == 0x0D47 && chars[cursor + 1] == 0x0D3E) || + /*for Sinhala*/ + (chars[cursor] == 0x0DD9 && chars[cursor + 1] == 0x0DCA) || + (chars[cursor] == 0x0DD9 && chars[cursor + 1] == 0x0DCF) || + (chars[cursor] == 0x0DD9 && chars[cursor + 1] == 0x0DDF) || + (chars[cursor] == 0x0DDC && chars[cursor + 1] == 0x0DCA) || + /*for Telugu*/ + (chars[cursor] == 0x0C46 && chars[cursor + 1] == 0x0C56) || + /*for Kannada*/ + (chars[cursor] == 0x0CBF && chars[cursor + 1] == 0x0CD5) || + (chars[cursor] == 0x0CC6 && chars[cursor + 1] == 0x0CD5) || + (chars[cursor] == 0x0CC6 && chars[cursor + 1] == 0x0CD6) || + (chars[cursor] == 0x0CC6 && chars[cursor + 1] == 0x0CC2) || + (chars[cursor] == 0x0CCA && chars[cursor + 1] == 0x0CD5)) + return cursor + 2; + } + if (state < 0) { break; } |