[smc-discuss] [Git][smc/keraleeyam][master] Conjunct formation rules of l3, v1, z1, sh: Conditional stacking applied

Kavya Manohar gitlab at mg.gitlab.com
Wed Dec 7 09:43:56 PST 2016


Kavya Manohar pushed to branch master at SMC / Keraleeyam


Commits:
0a071bc2 by Kavya Manohar at 2016-12-07T23:10:00+05:30
Conjunct formation rules of l3, v1, z1, sh: Conditional stacking applied

shk1k1 conditional stacking requires rework

- - - - -


4 changed files:

- Keraleeyam.sfd
- features/lookups.fea
- features/tables.fea
- tests/tests.txt


Changes:

=====================================
Keraleeyam.sfd
=====================================
--- a/Keraleeyam.sfd
+++ b/Keraleeyam.sfd
@@ -67,7 +67,7 @@ NameList: Adobe Glyph List
 DisplaySize: -48
 AntiAlias: 1
 FitToEm: 1
-WinInfo: 27 27 9
+WinInfo: 675 27 9
 BeginPrivate: 0
 EndPrivate
 TeXData: 1 0 0 289792 144896 96597 461824 -1048576 96597 783286 444596 497025 792723 393216 433062 380633 303038 157286 324010 404750 52429 2506097 1059062 262144
@@ -44129,7 +44129,7 @@ SplineSet
 EndSplineSet
 EndChar
 
-StartChar: shm1r3
+StartChar: shr3
 Encoding: 66008 -1 657
 Width: 1613
 GlyphClass: 3
@@ -44204,7 +44204,7 @@ SplineSet
 EndSplineSet
 EndChar
 
-StartChar: shm1r3u1
+StartChar: shr3u1
 Encoding: 66009 -1 658
 Width: 1613
 GlyphClass: 3
@@ -44292,7 +44292,7 @@ SplineSet
 EndSplineSet
 EndChar
 
-StartChar: shm1r3u2
+StartChar: shr3u2
 Encoding: 66010 -1 659
 Width: 1613
 GlyphClass: 3


=====================================
features/lookups.fea
=====================================
--- a/features/lookups.fea
+++ b/features/lookups.fea
@@ -70,22 +70,9 @@ lookup akhn_conjuncts {
     sub m1 xx m1  by m1m1;
     sub y1 xx k1 xx k1  by y1k1k1;
     sub y1 xx y1  by y1y1;
-    sub l3 xx m1  by l3m1;
     sub l3 xx l3  by l3l3;
     sub v1 xx v1  by v1v1;
     sub z1 xx ch1  by z1ch1;
-    sub z1 xx ch2  by z1ch2;
-    sub z1 xx n1  by z1n1;
-    sub z1 xx m1  by z1m1;
-    sub z1 xx z1  by z1z1;
-    sub sh xx k1  by shk1;
-    sub sh xx k1 xx k1  by shk1k1;
-    sub sh xx t1  by sht1;
-    sub sh xx t2  by sht2;
-    sub sh xx nh  by shnh;
-    sub sh xx p1  by shp1;
-    sub sh xx p2  by shp2;
-    sub sh xx m1  by shm1;
     sub s1 xx k1 xx k1 by s1k1k1;
     sub s1 xx k2  by s1k2;
     sub s1 xx t1 xx r3  by s1t1r3;
@@ -155,20 +142,22 @@ lookup akhn_conditional_stacking {
     sub p2' xx' m1' by p2m1;
     ignore sub p2' xx' p1' [u1 u2 r1 xx];
     sub p2' xx' p1' by p2p1;
-     ignore sub p2' xx' s1' [u1 u2 r1 xx];
+    ignore sub p2' xx' s1' [u1 u2 r1 xx];
     sub p2' xx' s1' by p2s1;
-     ignore sub p2' xx' rhrh' [u1 u2 r1 xx];
+    ignore sub p2' xx' rhrh' [u1 u2 r1 xx];
     sub p2' xx' rhrh' by p2rhrh;
     ignore sub p3' xx' k3' [u1 u2 xx r1];
     sub p3' xx' k3' by p3k3;
-     ignore sub p3' xx' th3' [xx r1];
+    ignore sub p3' xx' th3' [xx r1];
     sub p3' xx' th3' by p3th3;
-     ignore sub p3' xx' th4' [u1 u2 xx r1];
+    ignore sub p3' xx' th4' [u1 u2 xx r1];
     sub p3' xx' th4' by p3th4;
     ignore sub p3' xx' ch3' [u1 u2 xx r1];
     sub p3' xx' ch3' by p3ch3;
     ignore sub p3' xx' n1' [u1 u2 xx r1];
     sub p3' xx' n1' by p3n1;
+    ignore sub p3' xx' p4' [u1 u2 xx r1];
+    sub p3' xx' p4' by p3p4;
     ignore sub  y1' xx' k1' [u1 u2 r1];
     ignore sub y1' xx' k1' xx r3;
     sub y1' xx' k1' by y1k1;
@@ -184,6 +173,46 @@ lookup akhn_conditional_stacking {
     sub y1' xx' p1'  by y1p1;
     ignore sub y1' xx' m1' [u1 u2 xx r1];
     sub y1' xx' m1' by y1m1;
+    ignore sub l3' xx' k1' [xx u1 u2 r1];
+    sub l3' xx' k1'  by l3k1;
+    ignore sub l3' xx' ch1' [xx u1 u2 r1];
+    sub l3' xx' ch1'  by l3ch1;
+    ignore sub l3' xx' th1' [xx u1 u2 r1];
+    sub l3' xx' th1'  by l3th1;
+    ignore sub l3' xx' p1' [xx u1 u2 r1];
+    sub l3' xx' p1'  by l3p1;
+    ignore sub l3' xx' p3' [xx u1 u2 r1];
+    sub l3' xx' p3'  by l3p3;
+    ignore sub l3' xx' m1' [xx u1 u2 r1];
+    sub l3' xx' m1'  by l3m1;
+    ignore sub l3' xx' k1' xx' k1' [xx u1 u2 r1];
+    sub l3' xx' k1' xx' k1' by l3k1k1;
+    ignore sub z1' xx' ch2' [u1 u2 r1 xx];
+    sub z1' xx' ch2' by z1ch2;
+    ignore sub z1' xx' n1' [r1 xx];
+    sub z1' xx' n1' by z1n1;
+    ignore sub z1' xx' z1' xx r3 [u1 u2];
+    sub z1' xx' z1' by z1z1;
+    ignore sub z1' xx' m1' [u1 u2 r1 xx];
+    sub z1' xx' m1' by z1m1;
+    ignore sub sh' xx' k1' [u1 u2];
+    sub sh' xx' k1' by shk1;
+    ignore sub sh' xx' k1' xx' k1' xx;
+    sub sh' xx' k1' xx' k1' by shk1k1;#need to make shk1k1 stacked and others unstacked. not working.
+    ignore sub sh' xx' t1' [u1 u2 r1];
+    ignore sub sh' xx' t1' xx r3 [u1 u2];
+    sub sh' xx' t1' by sht1;
+    ignore sub sh' xx' t2' [r1 xx];
+    sub sh' xx' t2' by sht2;
+    ignore sub sh' xx' nh' [r1 xx];
+    sub sh' xx' nh' by shnh;
+    ignore sub sh' xx' p1' [u1 u2];
+    ignore sub sh' xx' p1' xx r3 [u1 u2];
+    sub sh' xx' p1' by shp1;
+    ignore sub sh' xx' m1' [u1 u2 r1 xx];
+    sub sh' xx' m1' by shm1;
+    ignore sub sh' xx' p2' [u1 u2 r1 xx];
+    sub sh' xx' p2' by shp2;
     ignore sub zh' xx' ch1' [xx u1 u2 r1];
     sub zh' xx' ch1'  by zhch1;
     ignore sub s1' xx' k1' xx r3 [u1 u2];
@@ -194,14 +223,7 @@ lookup akhn_conditional_stacking {
     sub p1' xx' th1'  by p1th1;
     #ignore sub k3' xx' th3' xx' th4' [xx u1 u2 r1];
     #sub k3' xx' th3' xx' th4'  by k3th3th4;
-    ignore sub l3' xx' k1' [xx u1 u2 r1];
-    sub l3' xx' k1'  by l3k1;
-    ignore sub l3' xx' p1' [xx u1 u2 r1];
-    sub l3' xx' p1'  by l3p1;
-    ignore sub l3' xx' k1' xx' k1' [xx u1 u2 r1];
-    sub l3' xx' k1' xx' k1' by l3k1k1;
 } akhn_conditional_stacking;
-
 lookup blwf_la_sign_mlym {
   lookupflag 0;
     sub l3 xx  by l4;
@@ -327,6 +349,7 @@ lookup pres_reph_mlym {
     sub m1p1 xx r3  by m1p1r3;
     sub m1xx r3  by m1r3;
     sub m1 r4  by m1r3;
+    sub y1xx k1  by y1k1;
     sub y1xx k1k1  by y1k1k1;
     sub y1xx th1  by y1th1;
     sub y1xx p1  by y1p1;
@@ -339,14 +362,16 @@ lookup pres_reph_mlym {
     sub v1 r4  by v1r3;
     sub z1xx r3  by z1r3;
     sub z1 r4  by z1r3;
+    sub z1z1 r4 by z1z1r3;
+    sub z1z1 xx r3 by z1z1r3;
     sub shk1 r4  by shk1r3;
     sub shk1 xx r3  by shk1r3;
     sub sht1 r4  by sht1r3;
     sub sht1 xx r3  by sht1r3;
     sub shp1 r4  by shp1r3;
     sub shp1 xx r3  by shp1r3;
-    sub shxx r3  by shm1r3;
-    sub sh r4  by shm1r3;
+    sub shxx r3  by shr3;
+    sub sh r4  by shr3;
     sub s1k1 r4  by s1k1r3;
     sub s1k1 xx r3  by s1k1r3;
     sub s1th1 r4  by s1th1r3;
@@ -392,10 +417,11 @@ lookup pres_reph {
     sub r4 m1  by m1r3;
     sub r4 v1  by v1r3;
     sub r4 z1  by z1r3;
+    sub r4 z1z1 by z1z1r3;
     sub r4 shk1  by shk1r3;
     sub r4 sht1  by sht1r3;
     sub r4 shp1  by shp1r3;
-    sub r4 sh  by shm1r3;
+    sub r4 sh  by shr3;
     sub r4 s1k1  by s1k1r3;
     sub r4 s1th1  by s1th1r3;
     sub r4 s1p1  by s1p1r3;
@@ -693,8 +719,10 @@ lookup psts_vowel_signs {
     sub y1 y2 u2  by y1y1u2;
     sub r3 u1  by r3u1;
     sub r3 u2  by r3u2;
+    sub r3 r1 by r3r1;
     sub l3 u1  by l3u1;
     sub l3 u2  by l3u2;
+    sub l3 r1 by l3r1;
     sub l3l3 u1  by l3l3u1;
     sub l3 l4 u1  by l3l3u1;
     sub l3l3 u2  by l3l3u2;
@@ -702,6 +730,10 @@ lookup psts_vowel_signs {
     sub v1 u1  by v1u1;
     sub v1 u2  by v1u2;
     sub v1 r1  by v1r1;
+    sub v1r3 u1 by v1r3u1;
+    sub v1r3 u2 by v1r3u2;
+    sub v1l3 u1 by v1l3u1;
+    sub v1l3 u2 by v1l3u2;
     sub v1 v2  by v1v1;
     sub v1v1 u1  by v1v1u1;
     sub v1 v2 u1  by v1v1u1;
@@ -710,15 +742,27 @@ lookup psts_vowel_signs {
     sub z1 u1  by z1u1;
     sub z1 u2  by z1u2;
     sub z1 r1  by z1r1;
+    sub z1ch1 u1 by z1ch1u1;
+    sub z1ch1 u2 by z1ch1u2;
+    sub z1ch1 r1 by z1ch1r1;
+    sub z1n1 u1 by z1n1u1;
+    sub z1n1 u2 by z1n1u2;
     sub z1r3 u1  by z1r3u1;
     sub z1r3 u2  by z1r3u2;
+    sub z1l3 u1 by z1l3u1;
+    sub z1l3 u2 by z1l3u2;
     sub z1z1 u1  by z1z1u1;
     sub z1z1 u2  by z1z1u2;
+    sub z1z1 r1  by z1z1r1;
     sub sh u1  by shu1;
     sub sh u2  by shu2;
     sub shk1 r1  by shk1r1;
+    sub sht2 u1  by sht2u1;
     sub sht2 u2  by sht2u2;
     sub shnh u1  by shnhu1;
+    sub shnh u2  by shnhu2;
+    sub shr3 u1 by shr3u1;
+    sub shr3 u2 by shr3u2;
     sub s1 u1  by s1u1;
     sub s1 u2  by s1u2;
     sub s1 r1  by s1r1;


=====================================
features/tables.fea
=====================================
--- a/features/tables.fea
+++ b/features/tables.fea
@@ -1,75 +1,75 @@
 #Mark attachment classes (defined in GDEF, used in lookupflags)
- at GDEF_Simple = [.notdef .null nonmarkingreturn NULL CR.001 space exclam 
-	quotedbl numbersign dollar percent ampersand quotesingle parenleft 
-	parenright asterisk plus comma hyphen period slash zero one two three 
-	four five six seven eight nine colon semicolon less equal greater 
-	question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
-	bracketleft backslash bracketright asciicircum underscore grave a b c d 
-	e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright 
-	asciitilde uni0D02 uni0D03 uni0D05 uni0D06 uni0D07 uni0D08 uni0D09 
-	uni0D0A uni0D0B l1 uni0D0E uni0D0F uni0D10 uni0D12 uni0D13 uni0D14 k1 
-	k2 k3 k4 ng ch1 ch2 ch3 ch4 nj t1 t2 t3 t4 nh th1 th2 th3 th4 n1 p1 p2 
-	p3 p4 m1 y1 r3 rh l3 lh zh v1 z1 sh s1 h1 uni0D3D uni0D3E uni0D3F 
-	uni0D40 u1 u2 r1 uni0D46 uni0D47 uni0D48 uni0D4A uni0D4B uni0D4C 
-	uni0D57 uni0d60 l2 ZWNJ ZWJ uni20B9 uni25CC quotedblleft 
+ at GDEF_Simple = [.notdef .null nonmarkingreturn NULL CR.001 space exclam
+	quotedbl numbersign dollar percent ampersand quotesingle parenleft
+	parenright asterisk plus comma hyphen period slash zero one two three
+	four five six seven eight nine colon semicolon less equal greater
+	question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
+	bracketleft backslash bracketright asciicircum underscore grave a b c d
+	e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright
+	asciitilde uni0D02 uni0D03 uni0D05 uni0D06 uni0D07 uni0D08 uni0D09
+	uni0D0A uni0D0B l1 uni0D0E uni0D0F uni0D10 uni0D12 uni0D13 uni0D14 k1
+	k2 k3 k4 ng ch1 ch2 ch3 ch4 nj t1 t2 t3 t4 nh th1 th2 th3 th4 n1 p1 p2
+	p3 p4 m1 y1 r3 rh l3 lh zh v1 z1 sh s1 h1 uni0D3D uni0D3E uni0D3F
+	uni0D40 u1 u2 r1 uni0D46 uni0D47 uni0D48 uni0D4A uni0D4B uni0D4C
+	uni0D57 uni0d60 l2 ZWNJ ZWJ uni20B9 uni25CC quotedblleft
 	quotedblright quoteleft quoteright
-	onequarter onehalf threequarters ellipsis plusminus multiply 
-	circumflex  Acircumflex 
-	Ecircumflex Icircumflex Ocircumflex Ucircumflex acircumflex ecircumflex 
-	icircumflex ocircumflex ucircumflex tilde Atilde Ntilde Otilde atilde 
-	ntilde otilde dieresis Adieresis Edieresis Idieresis Odieresis 
-	Udieresis adieresis edieresis idieresis odieresis udieresis acute 
-	Aacute Eacute Iacute Oacute Uacute aacute eacute iacute oacute uacute 
-	grave Agrave Egrave Igrave Ograve Ugrave agrave egrave igrave ograve 
-	ugrave yacute ydieresis macron questiondown periodcentered degree 
-	backslash underscore Eth Aring aring divide exclamdown guillemotleft 
-	guillemotright guilsinglleft guilsinglright asciicircum cent 
-	copyright bracketleft bracketright brokenbar currency 
-	currency sterling yen section ordmasculine fraction Euro ordfeminine 
-	registered uni00B2 uni00B3 mu uni00B9 oslash Oslash Yacute germandbls 
-	Thorn thorn minus uni2074 ae AE endash emdash quoteleft quoteright 
-	quotesinglbase quotedblright quotedblbase cedilla 
+	onequarter onehalf threequarters ellipsis plusminus multiply
+	circumflex  Acircumflex
+	Ecircumflex Icircumflex Ocircumflex Ucircumflex acircumflex ecircumflex
+	icircumflex ocircumflex ucircumflex tilde Atilde Ntilde Otilde atilde
+	ntilde otilde dieresis Adieresis Edieresis Idieresis Odieresis
+	Udieresis adieresis edieresis idieresis odieresis udieresis acute
+	Aacute Eacute Iacute Oacute Uacute aacute eacute iacute oacute uacute
+	grave Agrave Egrave Igrave Ograve Ugrave agrave egrave igrave ograve
+	ugrave yacute ydieresis macron questiondown periodcentered degree
+	backslash underscore Eth Aring aring divide exclamdown guillemotleft
+	guillemotright guilsinglleft guilsinglright asciicircum cent
+	copyright bracketleft bracketright brokenbar currency
+	currency sterling yen section ordmasculine fraction Euro ordfeminine
+	registered uni00B2 uni00B3 mu uni00B9 oslash Oslash Yacute germandbls
+	Thorn thorn minus uni2074 ae AE endash emdash quoteleft quoteright
+	quotesinglbase quotedblright quotedblbase cedilla
 	Ccedilla ccedilla oe OE dotlessi eth bullet];
- at GDEF_Ligature = [nhcil n1cil r3cil l3cil lhcil r4 y2 y2u1 y2u2 v2 k1u1 
-	k1u2 k1r1 k1k1 k1k1u1 k1k1u2 k1k1r1 k1k1r3 k1t1 k1t1r3 k1th1 k1th1r1 
-	k1th1r3 k1n1 k1r3 k1r3u1 k1r3u2 k1l3 k1l3u1 k1l3u2 k1sh k1shu1 k1shu2 
-	k1shnh k1shm1 k1s1 k1rhrh k2u1 k2u2 k3u1 k3u2 k3r1 k3k3 k3k3u2 k3th3 
-	k3th3th4 k3n1 k3n1u1 k3m1 k3r3 k3r3u1 k3r3u2 k3l3 k3l3u1 k3l3u2 k4u1 
-	k4u2 k4r1 k4n1 k4r3 ngu1 ngu2 ngk1 ngk1u1 ngk1u2 ngk1r1 ngng ngngu1 
-	ngngu2 ch1u1 ch1u2 ch1ch1 ch1ch1u1 ch1ch1u2 ch1ch2 ch2u1 ch2u2 ch2r1 
-	ch2r3 ch3u1 ch3u2 ch3r1 ch3ch3 ch3ch3u1 ch3ch3u2 ch3ch3r1 ch3nj ch3r3 
-	ch4u1 ch4u2 ch4r1 nju1 nju2 njch1 njch1u1 njch1u2 njch2 njch3 njch3u1 
-	njch3u2 njnj njnju1 njnju2 t1u1 t1u2 t1t1 t1t1u1 t1t1u2 t1r3 t1r3u1 
-	t1r3u2 t2u1 t2u2 t3u1 t3u2 t3t3 t3t3u1 t3t4 t3r3 t3r3u1 t3r3u2 t4u1 
-	t4u2 t4r3 nhu1 nhu2 nht1 nht1u1 nht1u2 nht2 nht3 nht3u1 nht3u2 nht4 
-	nhnh nhnhu1 nhnhu2 nhm1 nhm1u1 nhm1u2 th1u1 th1u2 th1r1 th1th1 th1th1u1 
-	th1th1u2 th1th1r1 th1th1r3 th1th2 th1n1 th1p4 th1p4u1 th1p4u2 th1m1 
-	th1m1u1 th1m1u2 th1r3 th1r3u1 th1r3u2 th1l3 th1s1 th1s1u1 th1s1u2 
-	th1s1n1 th2u1 th2u2 th3u1 th3u2 th3r1 th3th3 th3th3u1 th3th3u2 th3th4 
-	th3th4u1 th3th4u2 th3r3 th3r3u1 th3r3u2 th4u1 th4u2 th4r1 th4r3 th4r3u1 
-	th4r3u2 n1u1 n1u2 n1r1 n1th1 n1th1u1 n1th1u2 n1th1r3 n1th1r3u1 
-	n1th1r3u2 n1th2 n1th2u1 n1th2u2 n1th3 n1th3u1 n1th3u2 n1th3r3 n1th3r3u1 
-	n1th3r3u2 n1th4 n1th4u1 n1th4u2 n1th4r3 n1n1 n1n1u1 n1n1u2 n1m1 n1m1u1 
-	n1m1u2 n1rh n1rhu1 n1rhu2 p1u1 p1u2 p1r1 p1t1 p1th1 p1n1 p1p1 p1p1u1 
-	p1p1u2 p1p2 p1r3 p1r3u1 p1r3u2 p1l3 p1l3u1 p1l3u2 p1s1 p2u1 p2u2 p2k1 
-	p2t1 p2th1 p2n1 p2r3 p2r3u1 p2r3u2 p2l3 p2l3u1 p2l3u2 p2s1 p2rhrh p3u1 
-	p3u2 p3r1 p3ch3 p3th3 p3th3u1 p3th3u2 p3th4 p3n1 p3p3 p3p3u1 p3p3u2 
-	p3r3 p3r3u1 p3r3u2 p3l3 p3l3u1 p3l3u2 p4u1 p4u2 p4r1 p4r3 p4r3u1 p4r3u2 
-	m1u1 m1u2 m1r1 m1n1 m1p1 m1p1u1 m1p1u2 m1p1r3 m1p1r3u1 m1p1r3u2 m1m1 
-	m1m1u1 m1m1u2 m1r3 m1l3 y1u1 y1u2 y1k1 y1k1k1 y1k1k1u1 y1k1k1u2 y1th1 
-	y1th1u1 y1th1u2 y1p1 y1m1 y1y1 y1y1u1 y1y1u2 r3u1 r3u2 l3u1 l3u2 l3k1 
-	l3k1k1 l3p1 l3m1 l3l3 l3l3u1 l3l3u2 v1u1 v1u2 v1r1 v1r3 v1l3 v1v1 
-	v1v1u1 v1v1u2 z1u1 z1u2 z1r1 z1ch1 z1ch2 z1n1 z1m1 z1r3 z1r3u1 z1r3u2 
-	z1l3 z1z1 z1z1u1 z1z1u2 shu1 shu2 shk1 shk1r1 shk1k1 shk1r3 sht1 sht1r3 
-	sht2 sht2u2 shnh shnhu1 shp1 shp1r3 shp2 shm1 shm1r3 s1u1 s1u2 s1r1 
-	s1k1 s1k1u1 s1k1u2 s1k1r1 s1k1k1 s1k1r3 s1k2 s1t1r3 s1th1 s1th1u1 
-	s1th1u2 s1th1r1 s1th1r3 s1th2 s1th2u2 s1n1 s1p1 s1p1u1 s1p1u2 s1p1r1 
-	s1p1r3 s1p2 s1p2u1 s1m1 s1m1u1 s1m1u2 s1m1r1 s1r3 s1r3u1 s1r3u2 s1l3 
-	s1l3u1 s1l3u2 s1s1 s1s1u1 s1s1u2 s1rhrh s1rhrhu1 s1rhrhu2 h1u1 h1u2 
-	h1r1 h1n1 h1m1 h1r3 h1r3u1 h1l3 lhu1 lhu2 lhlh lhlhu1 lhlhu2 zhu1 zhu2 
-	zhk1 zhch1 zhm1 zhs1 rhu1 rhu2 rhrh rhrhu1 rhrhu2 l4 k1xx k2xx k3xx 
-	k4xx ngxx ch1xx ch2xx ch3xx ch4xx njxx t1xx t2xx t3xx t4xx nhxx th1xx 
-	th2xx th3xx th4xx n1xx p1xx p2xx p3xx p4xx m1xx y1xx r3xx rhxx l3xx 
+ at GDEF_Ligature = [nhcil n1cil r3cil l3cil lhcil r4 y2 y2u1 y2u2 v2 k1u1
+	k1u2 k1r1 k1k1 k1k1u1 k1k1u2 k1k1r1 k1k1r3 k1t1 k1t1r3 k1th1 k1th1r1
+	k1th1r3 k1n1 k1r3 k1r3u1 k1r3u2 k1l3 k1l3u1 k1l3u2 k1sh k1shu1 k1shu2
+	k1shnh k1shm1 k1s1 k1rhrh k2u1 k2u2 k3u1 k3u2 k3r1 k3k3 k3k3u2 k3th3
+	k3th3th4 k3n1 k3n1u1 k3m1 k3r3 k3r3u1 k3r3u2 k3l3 k3l3u1 k3l3u2 k4u1
+	k4u2 k4r1 k4n1 k4r3 ngu1 ngu2 ngk1 ngk1u1 ngk1u2 ngk1r1 ngng ngngu1
+	ngngu2 ch1u1 ch1u2 ch1ch1 ch1ch1u1 ch1ch1u2 ch1ch2 ch2u1 ch2u2 ch2r1
+	ch2r3 ch3u1 ch3u2 ch3r1 ch3ch3 ch3ch3u1 ch3ch3u2 ch3ch3r1 ch3nj ch3r3
+	ch4u1 ch4u2 ch4r1 nju1 nju2 njch1 njch1u1 njch1u2 njch2 njch3 njch3u1
+	njch3u2 njnj njnju1 njnju2 t1u1 t1u2 t1t1 t1t1u1 t1t1u2 t1r3 t1r3u1
+	t1r3u2 t2u1 t2u2 t3u1 t3u2 t3t3 t3t3u1 t3t4 t3r3 t3r3u1 t3r3u2 t4u1
+	t4u2 t4r3 nhu1 nhu2 nht1 nht1u1 nht1u2 nht2 nht3 nht3u1 nht3u2 nht4
+	nhnh nhnhu1 nhnhu2 nhm1 nhm1u1 nhm1u2 th1u1 th1u2 th1r1 th1th1 th1th1u1
+	th1th1u2 th1th1r1 th1th1r3 th1th2 th1n1 th1p4 th1p4u1 th1p4u2 th1m1
+	th1m1u1 th1m1u2 th1r3 th1r3u1 th1r3u2 th1l3 th1s1 th1s1u1 th1s1u2
+	th1s1n1 th2u1 th2u2 th3u1 th3u2 th3r1 th3th3 th3th3u1 th3th3u2 th3th4
+	th3th4u1 th3th4u2 th3r3 th3r3u1 th3r3u2 th4u1 th4u2 th4r1 th4r3 th4r3u1
+	th4r3u2 n1u1 n1u2 n1r1 n1th1 n1th1u1 n1th1u2 n1th1r3 n1th1r3u1
+	n1th1r3u2 n1th2 n1th2u1 n1th2u2 n1th3 n1th3u1 n1th3u2 n1th3r3 n1th3r3u1
+	n1th3r3u2 n1th4 n1th4u1 n1th4u2 n1th4r3 n1n1 n1n1u1 n1n1u2 n1m1 n1m1u1
+	n1m1u2 n1rh n1rhu1 n1rhu2 p1u1 p1u2 p1r1 p1t1 p1th1 p1n1 p1p1 p1p1u1
+	p1p1u2 p1p2 p1r3 p1r3u1 p1r3u2 p1l3 p1l3u1 p1l3u2 p1s1 p2u1 p2u2 p2k1
+	p2t1 p2th1 p2n1 p2r3 p2r3u1 p2r3u2 p2l3 p2l3u1 p2l3u2 p2s1 p2rhrh p3u1
+	p3u2 p3r1 p3ch3 p3th3 p3th3u1 p3th3u2 p3th4 p3n1 p3p3 p3p3u1 p3p3u2
+	p3r3 p3r3u1 p3r3u2 p3l3 p3l3u1 p3l3u2 p4u1 p4u2 p4r1 p4r3 p4r3u1 p4r3u2
+	m1u1 m1u2 m1r1 m1n1 m1p1 m1p1u1 m1p1u2 m1p1r3 m1p1r3u1 m1p1r3u2 m1m1
+	m1m1u1 m1m1u2 m1r3 m1l3 y1u1 y1u2 y1k1 y1k1k1 y1k1k1u1 y1k1k1u2 y1th1
+	y1th1u1 y1th1u2 y1p1 y1m1 y1y1 y1y1u1 y1y1u2 r3u1 r3u2 l3u1 l3u2 l3k1
+	l3k1k1 l3p1 l3m1 l3l3 l3l3u1 l3l3u2 v1u1 v1u2 v1r1 v1r3 v1l3 v1v1
+	v1v1u1 v1v1u2 z1u1 z1u2 z1r1 z1ch1 z1ch2 z1n1 z1m1 z1r3 z1r3u1 z1r3u2
+	z1l3 z1z1 z1z1u1 z1z1u2 shu1 shu2 shk1 shk1r1 shk1k1 shk1r3 sht1 sht1r3
+	sht2 sht2u2 shnh shnhu1 shp1 shp1r3 shp2 shm1 shr3 shr3u1 shr3u2 s1u1 s1u2 s1r1 
+	s1k1 s1k1u1 s1k1u2 s1k1r1 s1k1k1 s1k1r3 s1k2 s1t1r3 s1th1 s1th1u1
+	s1th1u2 s1th1r1 s1th1r3 s1th2 s1th2u2 s1n1 s1p1 s1p1u1 s1p1u2 s1p1r1
+	s1p1r3 s1p2 s1p2u1 s1m1 s1m1u1 s1m1u2 s1m1r1 s1r3 s1r3u1 s1r3u2 s1l3
+	s1l3u1 s1l3u2 s1s1 s1s1u1 s1s1u2 s1rhrh s1rhrhu1 s1rhrhu2 h1u1 h1u2
+	h1r1 h1n1 h1m1 h1r3 h1r3u1 h1l3 lhu1 lhu2 lhlh lhlhu1 lhlhu2 zhu1 zhu2
+	zhk1 zhch1 zhm1 zhs1 rhu1 rhu2 rhrh rhrhu1 rhrhu2 l4 k1xx k2xx k3xx
+	k4xx ngxx ch1xx ch2xx ch3xx ch4xx njxx t1xx t2xx t3xx t4xx nhxx th1xx
+	th2xx th3xx th4xx n1xx p1xx p2xx p3xx p4xx m1xx y1xx r3xx rhxx l3xx
 	lhxx zhxx v1xx z1xx shxx s1xx h1xx ];
 @GDEF_Mark = [xx dotreph];
 table GDEF {


=====================================
tests/tests.txt
=====================================
--- a/tests/tests.txt
+++ b/tests/tests.txt
@@ -151,6 +151,7 @@ Rendering glyphs with r4 ( ്ര)
 ബ്ധ ബ്ധു ബധൂ ബ്ധ്ര ബ്ധൃ
 ബ്ന ബ്നു ബ്നൂ ബ്നൃ ബ്ന്ര 
 ബ്സ ബ്സു ബ്സൂ ബ്സ്ര ബ്സൃ
+ബ്ഭ ബ്ഭു ബ്ഭൂ ബ്ഭ്ര ബ്ഭൃ ബ്ഭ്രു
 ബ്ബ ബ്ബു ബ്ബൂ
 ഭു ഭൂ ഭ്ര ഭ്രു ഭ്രൂ ഭൃ 
 മു മൂ മൃ മ്ര മ്രു മ്രൂ മ്ല മ്ലു മ്ലൂ 
@@ -163,22 +164,39 @@ Rendering glyphs with r4 ( ്ര)
 യ്ന യ്നു യ്ന്ര യ്ന്രു 
 യ്മ യ്മു യ്മൂ യ്മ്ര യ്മൂ 
 യ്ച യ്ചു യ്ച്ച്ര യ്ച്ച യ്ച്ചൂ  യ്ച്ച്
+രു രൂ രൃ 
+ലു ലൂ ലൃ ല്ല ല്ലു ല്ലൂ 
+ല്ക ല്കു ല്കൂ ല്കൃ ല്ക്ര ല്ക്രു 
+ല്ക്ക ല്ക്കു ല്ക്കൃ ല്ക്കൂ ല്ക്ക്ര ല്ക്ക്രു 
+ല്ഗ ല്ഗു ല്ഗൂ ല്ഗൃ ല്ഗ്ര ല്ഗ്രു
+ല്ച ല്ചു ല്ചൂ ല്ച്ര ല്ച്രു
+ല്ത ല്തു ല്തൂ ല്തൃ ല്ത്ര ല്ത്രു 
+ല്പ ല്പു ല്പൂ ല്പൃ ല്പ്ര ല്പ്രു ല്പ്രൂ ല്പ്പ ല്പ്പു 
+ല്ബ ല്ബു ല്ബൂ ല്ബ്ര ല്ബ്രു ല്ബൃ ല്ബ്ബ 
+ല്മ ല്മു ല്മൂ ല്മൃ ല്മ്ര ല്മ്രു ല്മ്മ 
+വു വൂ വൃ വ്ര വ്രു വ്രൂ
+വ്ല വ്ലു വ്ലൂ വ്വ വ്വു വ്വൂ
+ശു ശൂ ശൃ ശ്ര ശ്രു ശ്രൂ 
+ശ്ച ശ്ചു ശ്ചൂ ശ്ചൃ ശ്ച്ര ശ്ച്രു ശ്ച്രൂ  ശ്ഛ ശ്ഛു ശ്ഛൂ
+ശ്ന ശ്നു ശ്നൂ  ശ്ന്ര ശ്നൃ 
+ശ്ല ശ്ലു ശ്ലൂ 
+ശ്മ ശ്മു ശ്മൂ ശ്മൃ ശ്മ്ര ശ്മ്രു ശ്മ്രൂ 
+ശ്ശ ശ്ശു ശ്ശൂ ശ്ശ്ര ശ്ശൃ ശ്ശ്രു ശ്ശ്രൂ 
+ഷു ഷൂ  ഷ്ര ഷ്രു ഷ്രൂ
+ഷ്ക ഷ്കു ഷ്കൂ ഷ്ക്ര ഷ്കൃ   
+ഷ്ക്ക ഷ്ക്കു ഷ്ക്കൃ ഷ്ക്ക്ര ഷ്ക്ക്രു 
+ഷ്ട ഷ്ടു ഷ്ടൂ ഷ്ട്ര ഷ്ട്രു ഷ്ടൃ ഷ്ട്ട 
+ഷ്ഠ ഷ്ഠു ഷ്ഠൂ ഷ്ഠ്ര 
+ഷ്പ ഷ്പു ഷ്പൂ ഷ്പ്പ ഷ്പ്പൂ  ഷ്പ്ര ഷ്പ്രു 
+ഷ്ണ ഷ്ണു ഷ്ണൂ ഷ്ണ്ര ഷ്ണൃ ഷ്ണ്ണ 
+ഷ്ഫ ഷ്ഫു ഷ്ഫൂ ഷ്ഫ്ര ഷ്ഫ്രു ഷ്ഫ്രൂ 
+ഷ്മ ഷ്മൃ ഷ്മ്ര ഷ്മ്രു ഷ്മ്മ 
 സ്ക സ്കു സ്കൂ സ്കൃ സ്ക്ര സ്ക്രു
 സ്ക്ക സ്ക്കു സ്ക്കൂ സ്ക്കൃ സ്ക്ക്ര സ്ക്ക്രു 
-ല്ക
-ല്ക്ക
-ല്ക്കു
-ല്തു
-ല്ത്തൂ
-ല്പ
-ല്പു
-ഷ്ക്ക
-ഷ്ക്കു
 ഷ്ഠൂ
 ഴ്വ
 ഭൄ
 ഥൃ
-ശ്ന
 വ്ശ
 ശ്ക
 ശ്ക്ക



View it on GitLab: https://gitlab.com/smc/keraleeyam/commit/0a071bc23748b60bbd833d5e3b1f3d6f00c8c661
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.smc.org.in/pipermail/discuss-smc.org.in/attachments/20161207/8da2569a/attachment-0001.htm>


More information about the discuss mailing list