GNOME Bugzilla – Bug 356685
[or_IN] Rendering of consonant+0x0B4D+0x0B2F is wrong
Last modified: 2006-10-02 21:38:56 UTC
Please describe the problem: Comnination of (0x0B4D+0x0B2F) does not work. This is due to the reordering done by pango. If the GSUB in font is written according to Pango's order, i.e.(0x0B2F+0x0B4D) then the consonant following this combination gets combined with the 0x0B4D to form its own below-base form. Steps to reproduce: 1. Install an Oriya font 2. Open gedit 3. Enable Oriya inscript keymap 4. Type the key sequence: k + d + / 5. a] the combination will not work b] if it works, type any other consonant, e.g. keystroke 'p' Actual results: Either the key sequence "k + d + / " does not produce required combination or if it produces the combination, then on following consonant the combination gets changed. Expected results: The combinations of form (consonant+0x0B4D+0x0B2F) should produce proper post base form of 0x0B2F. And this combination should not get changed if any other consonant follows it. Does this happen every time? yes Other information: In the indic-ot-class-table.c, oriya character 0B2F is declared as 'pb'. Changing it to 'ct' solves the problem.
Created attachment 73073 [details] [review] my patch I wrote a patch for fixing this bug.
The problem described above occurs only in case of the oriya characters which have '_ct' bit in the oryaCharClass[]. For all other consonants which have '_bb' bit do not have this problem. Thus the '_pb' bit for 0b2f is actually correct. In Oriya, except for 0b2f and 0b5f which are post base, all other consonants have below base form in their conjuncts with other consonants. Since most of these consonants have '_ct' bit, the below base ligture rules for them have to be written accordingly in the font. Due to this, when post base form ends with a 0b4d at the end of cluster, a following '_ct' consonant forms its own below base form since its GSUB is not according to the reordering required. The solution to this problem is to assign '_bb' to all of the consonants which form below base form. I have created and tested a patch with this implementation. This makes pango even compatible with uniscribe.
Created attachment 73134 [details] [review] My Patch for Oriya rendering This patch fixes the rendering problem of oriya consonants in their below base or post base forms.
2006-10-02 Behdad Esfahbod <behdad@gnome.org> Bug 356685 – [or_IN] Rendering of consonant+0x0B4D+0x0B2F is wrong Patch from Rahul Bhalerao * modules/indic/indic-ot-class-tables.c: Change _ct to _bb for various Orya characters.