summaryrefslogtreecommitdiffstats
path: root/redhat/tqt3/tqt3-3.4.0-fontrendering-ml_IN-209097.patch
blob: cdb543b25ba9dc5e08a985d1a1693144fdcdb193 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
--- tqt3/src/kernel/qscriptengine_x11.cpp.fontrendering-ml_IN-bz#209097	2012-02-13 19:10:01.000000000 +0100
+++ tqt3/src/kernel/qscriptengine_x11.cpp	2012-02-13 21:36:07.227917886 +0100
@@ -871,7 +871,7 @@
     None, None, None, None,
     None, None, None, Post,
 
-    Post, None, Below, None,
+    None, None, None, None,
     None, Post, None, None,
     None, None, None, None,
     None, None, Post, Post,
@@ -1274,6 +1274,16 @@
     int base = 0;
     int reph = -1;
 
+    //for the special conjuctions about Cons+0d4d+0d30 and Cons+0d40+0d31 of Malayalam
+    bool is_special_conjuction_malayalam = false;
+	
+    if ((len == 3) && 
+	((reordered[2] == 0x0d30) || (reordered[2] == 0x0d31)) && 
+	(reordered[1] == 0x0d4d) && 
+	((reordered[0] >= 0x0d15) && (reordered[0] <= 0x0d39))) {
+        is_special_conjuction_malayalam = true;
+    }
+
 #ifdef INDIC_DEBUG
     IDEBUG("original:");
     for (i = 0; i < len; i++) {
@@ -1550,6 +1560,15 @@
                 reph = i;
     }
 
+    //for the special conjuctions about Cons+0d4d+0d30 and Cons+0d40+0d31 of Malayalam
+    if (is_special_conjuction_malayalam) {
+        unsigned short temp;
+		
+        temp = reordered[0];		
+        reordered[0] = reordered[2];		
+        reordered[2] = temp;	
+    }
+
     if (item->font->stringToCMap((const TQChar *)reordered.data(), len, item->glyphs, item->advances,
                                  &item->num_glyphs, item->flags & TQTextEngine::RightToLeft) != TQFontEngine::NoError)
         return FALSE;
@@ -1661,6 +1680,15 @@
 
         // halant always applies
 
+        //for the special conjuctions about Cons+0d4d+0d30 and Cons+0d40+0d31 of Malayalam
+        if (is_special_conjuction_malayalam) {
+	    unsigned int temp;
+			
+	    temp = properties[0];
+	    properties[0] = ~PreSubstProperty;			
+	    properties[2] = temp; 
+	}
+
 #ifdef INDIC_DEBUG
         {
             IDEBUG("OT properties:");