Bug 192934 - [ml_IN]Triple Combination not working
Summary: [ml_IN]Triple Combination not working
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: fonts-indic
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Rahul Bhalerao
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: FC6Target
TreeView+ depends on / blocked
 
Reported: 2006-05-24 11:36 UTC by Ani Peter
Modified: 2016-08-01 01:30 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2007-05-02 07:34:51 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Patch (565.03 KB, patch)
2006-09-26 22:10 UTC, Rahul Bhalerao
no flags Details | Diff

Description Ani Peter 2006-05-24 11:36:33 UTC
Description of problem:
In Malayalam, we have a lot of conjuncts. 
The conjuncts(lets call X) are formed with the combination of two consonants(say
A and B) with another character called chillu (U + 0D4D). 
Thus we have the equation A + chillu + B = X

Here, if we use another chillu and then another consonant(say C), the conjuct X
gets splitted up into its original form ie, A and B, and the final result will be 
     A  with chillu and another conjuct formed using B and C if any GSUB rule
exist for these B and C.

This splitting doesnt happen if C = U + 0D35 or U + 0D2F or U + 0D30

This is found to happen with the following conjuncts:
  U+0d15  U+0d4d  U+0d35 
  U+0d16  U+0d4d  U+0d35 
  U+0d17  U+0d4d  U+0d35 
  U+0d18  U+0d4d  U+0d35 
  U+0d19  U+0d4d  U+0d35 
  U+0d1a  U+0d4d  U+0d35 
  U+0d1b  U+0d4d  U+0d35 
  U+0d1c  U+0d4d  U+0d35 
  U+0d1d  U+0d4d  U+0d35 
  U+0d1e  U+0d4d  U+0d35 
  U+0d1f  U+0d4d  U+0d35 
  U+0d20  U+0d4d  U+0d35 
  U+0d21  U+0d4d  U+0d35 
  U+0d22  U+0d4d  U+0d35 
  U+0d23  U+0d4d  U+0d35 
  U+0d24  U+0d4d  U+0d35 
  U+0d25  U+0d4d  U+0d35 
  U+0d26  U+0d4d  U+0d35 
  U+0d27  U+0d4d  U+0d35 
  U+0d28  U+0d4d  U+0d35 
  U+0d2a  U+0d4d  U+0d35 
  U+0d2b  U+0d4d  U+0d35 
  U+0d2c  U+0d4d  U+0d35 
  U+0d2d  U+0d4d  U+0d35 
  U+0d2e  U+0d4d  U+0d35 
  U+0d30  U+0d4d  U+0d35 
  U+0d31  U+0d4d  U+0d35 
  U+0d32  U+0d4d  U+0d35 
  U+0d33  U+0d4d  U+0d35 
  U+0d34  U+0d4d  U+0d35 
  U+0d35  U+0d4d  U+0d35 
  U+0d36  U+0d4d  U+0d35 
  U+0d37  U+0d4d  U+0d35 
  U+0d38  U+0d4d  U+0d35 
  U+0d39  U+0d4d  U+0d35 
  U+0d15  U+0d4d  U+0d15 
  U+0d1a  U+0d4d  U+0d1a 
  U+0d1f  U+0d4d  U+0d1f 
  U+0d24  U+0d4d  U+0d24 
  U+0d2a  U+0d4d  U+0d2a 
  U+0d17  U+0d4d  U+0d17 
  U+0d1c  U+0d4d  U+0d1c 
  U+0d21  U+0d4d  U+0d21 
  U+0d26  U+0d4d  U+0d26 
  U+0d2c  U+0d4d  U+0d2c 
  U+0d19  U+0d4d  U+0d19 
  U+0d1e  U+0d4d  U+0d1e 
  U+0d23  U+0d4d  U+0d23 
  U+0d28  U+0d4d  U+0d28 
  U+0d2e  U+0d4d  U+0d2e 
  U+0d2f  U+0d4d  U+0d2f 
  U+0d32  U+0d4d  U+0d32 
  U+0d35  U+0d4d  U+0d35 
  U+0d36  U+0d4d  U+0d36 
  U+0d38  U+0d4d  U+0d38 
  U+0d33  U+0d4d  U+0d33 
  U+0d15  U+0d4d  U+0d24 
  U+0d15  U+0d4d  U+0d37 
  U+0d17  U+0d4d  U+0d28 
  U+0d17  U+0d4d  U+0d2e 
  U+0d19  U+0d4d  U+0d15 
  U+0d1a  U+0d4d  U+0d1b 
  U+0d1c  U+0d4d  U+0d1e 
  U+0d1e  U+0d4d  U+0d1a 
  U+0d23  U+0d4d  U+0d1f 
  U+0d23  U+0d4d  U+0d2e 
  U+0d24  U+0d4d  U+0d25 
  U+0d24  U+0d4d  U+0d2e 
  U+0d24  U+0d4d  U+0d2d 
  U+0d24  U+0d4d  U+0d38 
  U+0d26  U+0d4d  U+0d27 
  U+0d28  U+0d4d  U+0d24 
  U+0d28  U+0d4d  U+0d25 
  U+0d28  U+0d4d  U+0d26 
  U+0d28  U+0d4d  U+0d27 
  U+0d28  U+0d4d  U+0d2a 
  U+0d28  U+0d4d  U+0d2e 
  U+0d28  U+0d4d  U+0d31 
  U+0d2c  U+0d4d  U+0d26 
  U+0d2c  U+0d4d  U+0d27 
  U+0d36  U+0d4d  U+0d1a 
  U+0d37  U+0d4d  U+0d1f 
  U+0d38  U+0d4d  U+0d25 
  U+0d39  U+0d4d  U+0d28 
  U+0d39  U+0d4d  U+0d2e 


Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
Explaining with one example.
1.Open kbabel application
2.Type U + 0D15 (say A)
3.Type U + 0D4D (chillu)
4.Type U + 0D15 (say B)
5.Type U + 0D4D (chillu)
6.Type any consonant from (U + 0D15) - (U + 0D39) except (U + 0D35),(U + 0D2F),
(U + 0D30) (say C)

  
Actual results:
When the above steps are done, if there exists a conjuct for the combination B
and C, then the already formed conjuct of A and B gets splitted and new conjuct
is formed using B and C, else they are simply displayed in the key sequence.

Expected results:
When the above steps are done, the second chillu must be applied to the conjuct
formed using A and B ie, this must be considered as a single character and then
the rule must be aplied to that.

Additional info:

Comment 1 Darshan Santani 2006-05-25 09:37:00 UTC
*Wrong glyph class for ligatures* might be causing this issue.

Comment 2 Rahul Bhalerao 2006-05-25 10:38:19 UTC
This is not a problem at all! Infact the font has been developed with that intent.
The class definition is not a problem. Though the shape change of ligatures can
be avoided by changing the flag for ligature to be 'akhn' i.e. the feature
'Akhand', which generally can not be expected for all the ligatures. Though if
there are some special features in malayalam regarding the more than two
consonant combinations, Ani will have to give detailed requirements, shapes of
the final glyphs. The problem can be then solved in font file, by changing
feature flags and  may require additional intermediate half glyphs for the
ligatures, as in case of the ligature 'kSsa'(u0915+u094d+u0937). 

Ani, please give your shape requirements for the final glyphs in all these
cases, so that the solution can be finalized.

Comment 3 Ani Peter 2006-05-26 06:27:01 UTC
Rahul,
In malayalam we have different type of conjuncts. Each conjunct once formed are
considered as another stand alone characters and if a chillu is followed by them
it should be applied to the the conjuct considering it as one single character.
Here, problem occurs in two type of conjuncts 
Type 1:
(consonant + chillu + same consonant), which is used to stress emphasis on that
consonant.
They are:
[unicodes and the corresponding keys]
(U +0D15) + (U + 0D4D) + (U + 0D15)   // key K + key D + key K
(U +0D17) + (U + 0D4D) + (U + 0D17)   //  key I + key D + key I
(U +0D19) + (U + 0D4D) + (U + 0D19)   // (shift+key U) + key D + (shift+key U)
(U +0D1A) + (U + 0D4D) + (U + 0D1A)   // key ; + key D + key ;
(U +0D1C) + (U + 0D4D) + (U + 0D1C)   // key P + key D + key P
(U +0D1E) + (U + 0D4D) + (U + 0D1E)   // (shift+key ]) + key D + (shift+key ])
(U +0D1F) + (U + 0D4D) + (U + 0D1F)   // key ' + key D + key '
(U +0D21) + (U + 0D4D) + (U + 0D21)   // key [ + key D + key [
(U +0D23) + (U + 0D4D) + (U + 0D23)   // (shift+key C) + key D + (shift+key C)
(U +0D24) + (U + 0D4D) + (U + 0D24)   // key L + key D + key L
(U +0D26) + (U + 0D4D) + (U + 0D26)   // key O + key D + key O
(U +0D28) + (U + 0D4D) + (U + 0D28)   // key V + key D + key V
(U +0D2A) + (U + 0D4D) + (U + 0D2A)   // key H + key D + key H
(U +0D2C) + (U + 0D4D) + (U + 0D2C)   // key Y + key D + key Y
(U +0D2E) + (U + 0D4D) + (U + 0D2E)   // key C + key D + key C
(U +0D2F) + (U + 0D4D) + (U + 0D2F)   // key / + key D + key /
(U +0D32) + (U + 0D4D) + (U + 0D32)   // key N + key D + key N
(U +0D33) + (U + 0D4D) + (U + 0D33)   // (shift+key N) + key D + (shift+key N)
(U +0D35) + (U + 0D4D) + (U + 0D35)   // key B + key D + key B
(U +0D36) + (U + 0D4D) + (U + 0D36)   // (shift+key M) + key D + (shift+key M)
(U +0D38) + (U + 0D4D) + (U + 0D38)   // key M + key D + key M

NOTE: 0D31 (key J) also falls in this category, but does not have  problem.

Type 2:
(consonant + chillu + another consonant)

(U + 0D15) + (U + 0D4D) + (U + 0D24)  // key K + key D + key H
(U + 0D15) + (U + 0D4D) + (U + 0D37)  // key K + key D + (shift+key ,)
(U + 0D17) + (U + 0D4D) + (U + 0D28)  // key I +key D + key V
(U + 0D1A) + (U + 0D4D) + (U + 0D1B)  // key; + key D + (shift+key ;)
(U + 0D1C) + (U + 0D4D) + (U + 0D1E)  // key P + key D + (shift+key ])
(U + 0D1E) + (U + 0D4D) + (U + 0D1A)  // (shift+key ]) + key D + key ;
(U + 0D23) + (U + 0D4D) + (U + 0D1F)  // (shift+key C) + key D + key '
(U + 0D23) + (U + 0D4D) + (U + 0D2E)  // (shift+key C) + key D + key C
(U + 0D24) + (U + 0D4D) + (U + 0D25)  // key L + key D + (shift+key L)
(U + 0D24) + (U + 0D4D) + (U + 0D2E)  // key L + key D + key C
(U + 0D24) + (U + 0D4D) + (U + 0D2D)  // key L + key D + (shift+key Y)
(U + 0D24) + (U + 0D4D) + (U + 0D38)  // key L + key D + key M
(U + 0D26) + (U + 0D4D) + (U + 0D27)  // key O + key D + (shift+key O)
(U + 0D28) + (U + 0D4D) + (U + 0D25)  // key V + key D + (shift+key L)
(U + 0D28) + (U + 0D4D) + (U + 0D26)  // key V + key D + key O
(U + 0D28) + (U + 0D4D) + (U + 0D27)  // key V + key D + (shift+key O)
(U + 0D28) + (U + 0D4D) + (U + 0D2A)  // key V + key D + key H
(U + 0D28) + (U + 0D4D) + (U + 0D2E)  // key V + key D + key C
(U + 0D2C) + (U + 0D4D) + (U + 0D26)  // key Y + key D + key O
(U + 0D2C) + (U + 0D4D) + (U + 0D27)  // key Y + key D + (shift+key O)
(U + 0D36) + (U + 0D4D) + (U + 0D1A)  // (shift+key M) + key D + key ;
(U + 0D37) + (U + 0D4D) + (U + 0D1F)  // (shift+key ,) + key D + key '
(U + 0D38) + (U + 0D4D) + (U + 0D25)  // key M + key D + (shift+key L)
(U + 0D39) + (U + 0D4D) + (U + 0D28)  // key U + key D + key V



Comment 5 Rahul Bhalerao 2006-09-26 22:10:01 UTC
Created attachment 137177 [details]
Patch 

This patch changes all the ligature tags to 'akhn', and thus solve the problem
of triple combinations. It also fixes few other bugs, #206387, #202163.

Comment 6 Lawrence Lim 2006-09-29 03:11:10 UTC
Which group (Pri A, B, or C) of the bugs does this belong to??

Comment 7 Rahul Bhalerao 2006-09-29 04:20:39 UTC
Its a Pri B bug.

Comment 8 A S Alam 2007-05-02 07:34:51 UTC
it is working fine, as mention in comment #3,

tested with following version:
fonts-malayalam-2.1.5-1.fc7


Note You need to log in before you can comment on or make changes to this bug.