*** empty log message ***
authorntakahas <ntakahas>
Fri, 15 Oct 2004 04:45:09 +0000 (04:45 +0000)
committerntakahas <ntakahas>
Fri, 15 Oct 2004 04:45:09 +0000 (04:45 +0000)
77 files changed:
ARAB-OTF.flt [new file with mode: 0644]
ARAB.flt [new file with mode: 0644]
ARABIC-OTF.flt [deleted file]
ARABIC.flt [deleted file]
BEN-OTF.flt [deleted file]
BENG-OTF.flt [new file with mode: 0644]
DEV-CDAC.flt [deleted file]
DEV-OTF.flt [deleted file]
DEVA-CDAC.flt [new file with mode: 0644]
DEVA-OTF.flt [new file with mode: 0644]
GUJ-OTF.flt [deleted file]
GUJR-OTF.flt [new file with mode: 0644]
GUR-OTF.flt [deleted file]
GURU-OTF.flt [new file with mode: 0644]
HEBR-FF.flt [new file with mode: 0644]
HEBR.flt [new file with mode: 0644]
HEBREW-FF.flt [deleted file]
HEBREW.flt [deleted file]
KAN-OTF.flt [deleted file]
KHMER-ANLONG.flt [deleted file]
KHMER-MULE.flt [deleted file]
KHMR-ANLONG.flt [new file with mode: 0644]
KHMR-MULE.flt [new file with mode: 0644]
KNDA-OTF.flt [new file with mode: 0644]
LAO-ALICE.flt [deleted file]
LAO-MULE.flt [deleted file]
LAOO-ALICE.flt [new file with mode: 0644]
LAOO-MULE.flt [new file with mode: 0644]
MLM-CDAC.flt [deleted file]
MLM-OTF.flt [deleted file]
MLYM-CDAC.flt [new file with mode: 0644]
MLYM-OTF.flt [new file with mode: 0644]
MYMR-MYAZEDI.flt [new file with mode: 0644]
Makefile.am
Mymr-MyaZedi.flt [deleted file]
ORI-OTF.flt [deleted file]
ORYA-OTF.flt [new file with mode: 0644]
SINH-OTF.flt
SYRC-OTF.flt [new file with mode: 0644]
SYRIAC-OTF.flt [deleted file]
TAML-CDAC.flt [new file with mode: 0644]
TAML-OTF.flt [new file with mode: 0644]
TEL-OTF.flt [deleted file]
TELU-OTF.flt [new file with mode: 0644]
THAA-OTF.flt [new file with mode: 0644]
THAANA-OTF.flt [deleted file]
TIB-MTIB.flt [deleted file]
TIB-MULE.flt [deleted file]
TIBT-MTIB.flt [new file with mode: 0644]
TIBT-MULE.flt [new file with mode: 0644]
TML-CDAC.flt [deleted file]
TML-OTF.flt [deleted file]
as-itrans.mim [new file with mode: 0644]
asm-itrans.mim [deleted file]
bn-itrans.mim [new file with mode: 0644]
bng-itrans.mim [deleted file]
dev-itrans.mim [deleted file]
gjr-itrans.mim [deleted file]
gu-itrans.mim [new file with mode: 0644]
hi-itrans.mim [new file with mode: 0644]
kh-yannis.mim [deleted file]
km-yannis.mim [new file with mode: 0644]
kn-itrans.mim [new file with mode: 0644]
knd-itrans.mim [deleted file]
latin-post.mim [deleted file]
latn-post.mim [new file with mode: 0644]
mdb.dir
ml-itrans.mim [new file with mode: 0644]
mlm-itrans.mim [deleted file]
or-itrans.mim [new file with mode: 0644]
ori-itrans.mim [deleted file]
pa-itrans.mim [new file with mode: 0644]
pnj-itrans.mim [deleted file]
ta-itrans.mim [new file with mode: 0644]
te-itrans.mim [new file with mode: 0644]
tlg-itrans.mim [deleted file]
tml-itrans.mim [deleted file]

diff --git a/ARAB-OTF.flt b/ARAB-OTF.flt
new file mode 100644 (file)
index 0000000..1c54011
--- /dev/null
@@ -0,0 +1,223 @@
+;; ARABIC-OTF.flt -- Font Layout Table for Arabic OpenType font
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> ARABIC-OTF.flt
+;;;
+;;; For Arabic OpenType fonts to draw the Arabic script.
+
+
+;; Step 0: Move Kazakh high hamza.
+
+(category
+ ;; p: high hamza carrier (p for positive)
+ ;; n: high hamza suppressor (n for negative)
+ ;; x: don't care
+ (0x0600 0x06FF                ?x)
+ (0x0674 0x0678                ?p)
+ (0x0643               ?n)
+ (0x06AF               ?n)
+ (0x06D5               ?n)
+ (0x200C               ?x)
+ (0x200D               ?x)
+ (0xFB50 0xFDFF                ?X)             ; Arabic Presentation Froms-A
+ (0xFE70 0xFEFC                ?X)             ; Arabic Presentation Froms-B
+ )
+
+(generator
+ (0
+  (cond
+   ;; If a presentation from is found, draw the whole sequence as is.
+   (".*X.*" = *)
+
+   (".*p.*"                            ; If a high hamza is found,
+    (cond
+     (".*n.*"                          ;   and a suppressor exists,
+      rmhamza *)                       ;   then remove the high hamza.
+     (0                                        ;   Otherwise, move the high
+      0x674 rmhamza *)))               ;   hamza to the beginning.
+   (0 = *)))                           ; If no high hamza, do nothing.
+
+ (rmhamza
+  (cond
+   ((0x0674)           )
+   ((0x0675)           0x0627)
+   ((0x0676)           0x0648)
+   ((0x0677)           0x06C7)
+   ((0x0678)           0x0649)
+   ("."                        =))))
+
+;; Step 1: ccmp
+
+(category
+ ;; D: Dual-joining (beh, teh, etc. & zwj)
+ ;; R: Right-joining (alef, dal, thal, reh, zain)
+ ;; U: Non-joining (Hamza, etc. & zwnj)
+ ;; T: Transparent (combining marks)
+ (0x060C 0x060F                ?U)
+ (0x0610 0x0615                ?T)
+ (0x061B               ?U)
+ (0x061F               ?U)
+ (0x0621               ?U)
+ (0x0622 0x0623                ?R)
+ (0x0624               ?R)
+ (0x0625               ?R)
+ (0x0626               ?D)
+ (0x0627               ?R)
+ (0x0628               ?D)
+ (0x0629               ?R)
+ (0x062A 0x062E                ?D)
+ (0x062F 0x0632                ?R)
+ (0x0633 0x0647                ?D)
+ (0x0648               ?R)
+ (0x0649 0x064A                ?D)
+ (0x064B 0x0658                ?T)
+ (0x0660 0x066D                ?U)
+ (0x066E 0x066F                ?D)
+ (0x0670               ?T)
+ (0x0671 0x0673                ?R)
+ (0x0674 0x0678                ?U)
+ (0x0679 0x0687                ?D)
+ (0x0688 0x0699                ?R)
+ (0x069A 0x06C3                ?D)
+ (0x06C4 0x06CB                ?R)
+ (0x06CC 0x06CE                ?D)
+ (0x06CF               ?R)
+ (0x06D0 0x06D3                ?D)
+ (0x06D4               ?U)
+ (0x06D5               ?R)
+ (0x06D6 0x06E4                ?T)
+ (0x06E5 0x06E6                ?U)
+ (0x06E7 0x06E8                ?T)
+ (0x06E9               ?U)
+ (0x06EA 0x06ED                ?T)
+ (0x06EE 0x06EF                ?R)
+ (0x06F0 0x06F9                ?U)
+ (0x06FA 0x06FC                ?D)
+ (0x06FD 0x06FE                ?U)
+ (0x06FF               ?D)
+ (0x200C               ?U)
+ (0x200D               ?D)
+ (0xFB50 0xFDFF                ?X)             ; Arabic Presentation Froms-A
+ (0xFE70 0xFEFC                ?X)             ; Arabic Presentation Froms-B
+ )
+
+;; (generator
+;;  (0
+;;   otf:arab=ccmp))
+
+;; Step 2: Initial, medial, or final.
+
+(generator
+ (0
+  (cond
+   (".*X.*" (cond ("[DRUX]T*" < = * >) ("." =)) *)
+
+   ("D.*"
+    (cond
+     ("(.)(T*)([DR].*)"
+      <
+      (1 otf:arab=init)
+      (2 = *)
+      >
+      (3 join))
+     ("(.)(T*)(.*)"                    ; == (D)(T*)(U.*)
+      <
+      (1 otf:arab=isol)
+      (2 = *)
+      >
+      (3 disjoin))))
+
+   ("([RU])(T*)(.*)"
+    <
+    (1 otf:arab=isol)
+    (2 = *)
+    >
+    (3 disjoin))
+
+   ("(T+)(.*)"
+    (1 = *)
+    (2 disjoin))))
+
+ (join
+  (cond
+   ("D.*"
+    (cond
+     ("(.)(T*)([DR].*)"
+      <
+      (1 otf:arab=medi)
+      (2 = *)
+      >
+      (3 join))
+     ("(.)(T*)(.*)"                    ; == (D)(T*)(U.*)
+      <
+      (1 otf:arab=fina)
+      (2 = *)
+      >
+      (3 disjoin))))
+
+   ("(.)(T*)(.*)"
+    <
+    (1 otf:arab=fina)
+    (2 = *)
+    >
+    (3 disjoin))))
+
+ (disjoin
+  (cond
+   ("D.*"
+    (cond
+     ("(.)(T*)([DR].*)"
+      <
+      (1 otf:arab=init)
+      (2 = *)
+      >
+      (3 join))
+     ("(.)(T*)(.*)"                    ; == (D)(T*)(U.*)
+      <
+      (1 otf:arab=isol)
+      (2 = *)
+      >
+      (3 disjoin))))
+
+   ("(.)(T*)(.*)"                      ; == ([RU])(T*)(.*)
+    <
+    (1 otf:arab=isol)
+    (2 = *)
+    >
+    (3 disjoin)))))
+
+;; Step 3: Other GSUB features (ligatures, etc.)
+
+(generator
+ (0
+  otf:arab=rlig,calt,liga,dlig,cswh,mset))
+
+;; Step 4: GPOS features.
+
+(generator
+ (0
+  otf:arab=))
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/ARAB.flt b/ARAB.flt
new file mode 100644 (file)
index 0000000..c02abd0
--- /dev/null
+++ b/ARAB.flt
@@ -0,0 +1,555 @@
+;; ARABIC.flt -- Font Layout Table for Arabic font (Unicode encoding)
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> ARABIC.flt
+;;;
+;;; For Arabic fonts of Unicode encoding to draw Arabic script.
+
+;; phase 1: Kazakh high hamza
+(category
+ (0x0600 0x06FF                ?x)
+ (0x0675 0x0678                ?p)
+ (0x0643               ?n)
+ (0x06AF               ?n)
+ (0x06D5               ?n)
+ (0x200C               ?x)
+ (0x200D               ?x)
+ (0xFB50 0xFDFF                ?x)             ; Arabic Presentation Froms-A
+ (0xFE70 0xFEFC                ?x)             ; Arabic Presentation Froms-B
+ )
+
+(generator
+ (0
+  (cond
+   (".*p.*"
+    (cond
+     (".*n.*"
+      rmhamza *)
+     ("(.)(.*)"
+      (1 < 0x0674 rmhamza >)
+      (2 rmhamza *))))
+   (0 = *)))
+
+ (rmhamza
+  (cond
+   ((0x0675)   0x0627)
+   ((0x0676)   0x0648)
+   ((0x0677)   0x06C7)
+   ((0x0678)   0x0649)
+   ("."                =))))
+
+;; phase 2: ligatures
+(category
+ (0x0600 0x06FF                ?x)             ; general
+ (0x0622               ?a)             ; alef madda
+ (0x0623               ?b)             ; alef hamza above
+ (0x0625               ?c)             ; alef hamza below
+ (0x0627               ?d)             ; alef
+ (0x0644               ?l)             ; lam
+ (0x064B 0x0655                ?t)             ; combinings
+ (0x0670               ?t)             ; combining
+ (0x06D6 0x06ED                ?t)             ; combinings
+ (0x06E5               ?x)
+ (0x06E6               ?x)
+ (0x06E9               ?x)
+ (0x200C               ?x)
+ (0x200D               ?x)
+ (0xFB50 0xFDFF                ?x)
+ (0xFE70 0xFEFC                ?x)
+ )
+
+(generator
+ (0
+  (cond
+   ("l(t*)a(t*)"
+    0xFEF5
+    (1 = *)
+    (2 = *))
+   ("l(t*)b(t*)"
+    0xFEF7
+    (1 = *)
+    (2 = *))
+   ("l(t*)c(t*)"
+    0xFEF9
+    (1 = *)
+    (2 = *))
+   ("l(t*)d(t*)"
+    0xFEFB
+    (1 = *)
+    (2 = *))
+   ("."
+    =))
+  *))
+
+;; phase 3: joining
+(category
+ ;; D: Dual-joining (beh, teh, etc. & zwj)
+ ;; R: Right-joining (alef, dal, thal, reh, zain)
+ ;; U: Non-joining (Hamza, etc. & zwnj)
+ ;; T: Transparent (combining marks)
+ ;; P: Already in Arabic Presentation Form A & B
+ (0x060C 0x060F                ?U)
+ (0x0610 0x0615                ?T)
+ (0x061B               ?U)
+ (0x061F               ?U)
+ (0x0621               ?U)
+ (0x0622 0x0623                ?R)
+ (0x0624               ?R)
+ (0x0625               ?R)
+ (0x0626               ?D)
+ (0x0627               ?R)
+ (0x0628               ?D)
+ (0x0629               ?R)
+ (0x062A 0x062E                ?D)
+ (0x062F 0x0632                ?R)
+ (0x0633 0x0647                ?D)
+ (0x0648               ?R)
+ (0x0649 0x064A                ?D)
+ (0x064B 0x0658                ?T)
+ (0x0660 0x066D                ?U)
+ (0x066E 0x066F                ?D)
+ (0x0670               ?T)
+ (0x0671 0x0673                ?R)
+ (0x0674 0x0678                ?U)
+ (0x0679 0x0687                ?D)
+ (0x0688 0x0699                ?R)
+ (0x069A 0x06C3                ?D)
+ (0x06C4 0x06CB                ?R)
+ (0x06CC 0x06CE                ?D)
+ (0x06CF               ?R)
+ (0x06D0 0x06D3                ?D)
+ (0x06D4               ?U)
+ (0x06D5               ?R)
+ (0x06D6 0x06E4                ?T)
+ (0x06E5 0x06E6                ?U)
+ (0x06E7 0x06E8                ?T)
+ (0x06E9               ?U)
+ (0x06EA 0x06ED                ?T)
+ (0x06EE 0x06EF                ?R)
+ (0x06F0 0x06F9                ?U)
+ (0x06FA 0x06FC                ?D)
+ (0x06FD 0x06FE                ?U)
+ (0x06FF               ?D)
+ (0xFB50 0xFDFF                ?P)
+ (0xFE70 0xFEFC                ?P)
+ (0xFEF5               ?R)
+ (0xFEF7               ?R)
+ (0xFEF9               ?R)
+ (0xFEFB               ?R)
+ (0x200C               ?U)
+ (0x200D               ?D)
+ )
+
+(generator
+ (0
+  (cond
+   ("PT*"
+    = combining *)
+
+   ("D[^P]*"
+    (cond
+     ("(.)(T*)([DR].*)"
+      (1 initial)
+      (2 combining *)
+      (3 join))
+     ("(.)(T*)(.*)"                    ; == (D)(T*)(U.*)
+      (1 isolated)
+      (2 combining *)
+      (3 disjoin))))
+
+   ("([RU])(T*)([^P]*)"
+    (1 isolated)
+    (2 combining *)
+    (3 disjoin))
+
+   ("(T+)([^P]*)"
+    (1 = *)
+    (2 disjoin)))
+
+  *)
+
+ (join
+  (cond
+   ("D.*"
+    (cond
+     ("(.)(T*)([DR].*)"
+      (1 medial)
+      (2 combining *)
+      (3 join))
+     ("(.)(T*)(.*)"                    ; == (D)(T*)(U.*)
+      (1 final)
+      (2 combining *)
+      (3 disjoin))))
+
+   ("(.)(T*)(.*)"                      ; == (R)(T*)(.*)
+    (1 final)
+    (2 combining *)
+    (3 disjoin))))
+
+ (disjoin
+  (cond
+   ("D.*"
+    (cond
+     ("(.)(T*)([DR].*)"
+      (1 initial)
+      (2 combining *)
+      (3 join))
+     ("(.)(T*)(.*)"                    ; == (D)(T*)(U.*)
+      (1 isolated)
+      (2 combining *)
+      (3 disjoin))))
+
+   ("(.)(T*)(.*)"                      ; == ([RU])(T*)(.*)
+    (1 isolated)
+    (2 combining *)
+    (3 disjoin))))
+
+ (isolated
+  (cond
+   ((range 0x060C 0x060F)      =)
+   ((0x061B)   =)
+   ((0x061F)   =)
+   ((0x0621)   0xFE80)
+   ((0x0622)   0xFE81)
+   ((0x0623)   0xFE83)
+   ((0x0624)   0xFE85)
+   ((0x0625)   0xFE87)
+   ((0x0626)   0xFE89)
+   ((0x0627)   0xFE8D)
+   ((0x0628)   0xFE8F)
+   ((0x0629)   0xFE93)
+   ((0x062A)   0xFE95)
+   ((0x062B)   0xFE99)
+   ((0x062C)   0xFE9D)
+   ((0x062D)   0xFEA1)
+   ((0x062E)   0xFEA5)
+   ((0x062F)   0xFEA9)
+   ((0x0630)   0xFEAB)
+   ((0x0631)   0xFEAD)
+   ((0x0632)   0xFEAF)
+   ((0x0633)   0xFEB1)
+   ((0x0634)   0xFEB5)
+   ((0x0635)   0xFEB9)
+   ((0x0636)   0xFEBD)
+   ((0x0637)   0xFEC1)
+   ((0x0638)   0xFEC5)
+   ((0x0639)   0xFEC9)
+   ((0x0640)   0x0640)
+   ((0x063A)   0xFECD)
+   ((0x0641)   0xFED1)
+   ((0x0642)   0xFED5)
+   ((0x0643)   0xFED9)
+   ((0x0644)   0xFEDD)
+   ((0x0645)   0xFEE1)
+   ((0x0646)   0xFEE5)
+   ((0x0647)   0xFEE9)
+   ((0x0648)   0xFEED)
+   ((0x0649)   0xFEEF)
+   ((0x064A)   0xFEF1)
+   ((range 0x0660 0x066D)      =)
+   ((0x0671)   0xFB50)
+   ((0x0674)   =)
+   ((0x0677)   0xFBDD)
+   ((0x0679)   0xFB66)
+   ((0x067A)   0xFB5E)
+   ((0x067B)   0xFB52)
+   ((0x067E)   0xFB56)
+   ((0x067F)   0xFB62)
+   ((0x0680)   0xFB5A)
+   ((0x0683)   0xFB76)
+   ((0x0684)   0xFB72)
+   ((0x0686)   0xFB7A)
+   ((0x0687)   0xFB7E)
+   ((0x0688)   0xFB88)
+   ((0x068C)   0xFB84)
+   ((0x068D)   0xFB82)
+   ((0x068E)   0xFB86)
+   ((0x0691)   0xFB8C)
+   ((0x0698)   0xFB8A)
+   ((0x06A4)   0xFB6A)
+   ((0x06A6)   0xFB6E)
+   ((0x06A9)   0xFB8E)
+   ((0x06AD)   0xFBD3)
+   ((0x06AF)   0xFB92)
+   ((0x06B1)   0xFB9A)
+   ((0x06B3)   0xFB96)
+   ((0x06BA)   0xFB9E)
+   ((0x06BB)   0xFBA0)
+   ((0x06BE)   0xFBAA)
+   ((0x06C0)   0xFBA4)
+   ((0x06C1)   0xFBA6)
+   ((0x06C5)   0xFBE0)
+   ((0x06C6)   0xFBD9)
+   ((0x06C7)   0xFBD7)
+   ((0x06C8)   0xFBDB)
+   ((0x06C9)   0xFBE2)
+   ((0x06CB)   0xFBDE)
+   ((0x06CC)   0xFBFC)
+   ((0x06D0)   0xFBE4)
+   ((0x06D2)   0xFBAE)
+   ((0x06D3)   0xFBB0)
+   ((0x06D4)   =)
+   ((0x06D5)   0xFEE9)
+   ((0x06E5)   =)
+   ((0x06E6)   =)
+   ((0x06E9)   =)
+   ((range 0x06F0 0x06F9)      =)
+   ((0x06FD)   =)
+   ((0x06FE)   =)
+   ((0xFEF5)   =)
+   ((0xFEF7)   =)
+   ((0xFEF9)   =)
+   ((0xFEFB)   =)
+   ((0x200C)   =)
+   ((0x200D)   =)
+   ))
+
+ (final
+  (cond
+   ((0x0622)   0xFE82)
+   ((0x0623)   0xFE84)
+   ((0x0624)   0xFE86)
+   ((0x0625)   0xFE88)
+   ((0x0626)   0xFE8A)
+   ((0x0627)   0xFE8E)
+   ((0x0628)   0xFE90)
+   ((0x0629)   0xFE94)
+   ((0x062A)   0xFE96)
+   ((0x062B)   0xFE9A)
+   ((0x062C)   0xFE9E)
+   ((0x062D)   0xFEA2)
+   ((0x062E)   0xFEA6)
+   ((0x062F)   0xFEAA)
+   ((0x0630)   0xFEAC)
+   ((0x0631)   0xFEAE)
+   ((0x0632)   0xFEB0)
+   ((0x0633)   0xFEB2)
+   ((0x0634)   0xFEB6)
+   ((0x0635)   0xFEBA)
+   ((0x0636)   0xFEBE)
+   ((0x0637)   0xFEC2)
+   ((0x0638)   0xFEC6)
+   ((0x0639)   0xFECA)
+   ((0x0640)   0x0640)
+   ((0x063A)   0xFECE)
+   ((0x0641)   0xFED2)
+   ((0x0642)   0xFED6)
+   ((0x0643)   0xFEDA)
+   ((0x0644)   0xFEDE)
+   ((0x0645)   0xFEE2)
+   ((0x0646)   0xFEE6)
+   ((0x0647)   0xFEEA)
+   ((0x0648)   0xFEEE)
+   ((0x0649)   0xFEF0)
+   ((0x064A)   0xFEF2)
+   ((0x0671)   0xFB51)
+   ((0x0679)   0xFB67)
+   ((0x067A)   0xFB5F)
+   ((0x067B)   0xFB52)
+   ((0x067E)   0xFB57)
+   ((0x067F)   0xFB63)
+   ((0x0680)   0xFB5B)
+   ((0x0683)   0xFB77)
+   ((0x0684)   0xFB73)
+   ((0x0686)   0xFB7B)
+   ((0x0687)   0xFB7F)
+   ((0x0688)   0xFB89)
+   ((0x068C)   0xFB85)
+   ((0x068D)   0xFB83)
+   ((0x068E)   0xFB87)
+   ((0x0691)   0xFB8D)
+   ((0x0698)   0xFB8B)
+   ((0x06A4)   0xFB6B)
+   ((0x06A6)   0xFB6F)
+   ((0x06A9)   0xFB8F)
+   ((0x06AD)   0xFBD4)
+   ((0x06AF)   0xFB93)
+   ((0x06B1)   0xFB9B)
+   ((0x06B3)   0xFB97)
+   ((0x06BA)   0xFB9F)
+   ((0x06BB)   0xFBA1)
+   ((0x06BE)   0xFBAB)
+   ((0x06C0)   0xFBA5)
+   ((0x06C1)   0xFBA7)
+   ((0x06C5)   0xFBE1)
+   ((0x06C6)   0xFBDA)
+   ((0x06C7)   0xFBD8)
+   ((0x06C8)   0xFBDC)
+   ((0x06C9)   0xFBE3)
+   ((0x06CB)   0xFBDF)
+   ((0x06CC)   0xFBFD)
+   ((0x06D0)   0xFBE5)
+   ((0x06D2)    0xFBAF)
+   ((0x06D3)   0xFBB1)
+   ((0x06D5)   0xFEEA)
+   ((0xFEF5)   0xFEF6)
+   ((0xFEF7)   0xFEF8)
+   ((0xFEF9)   0xFEFA)
+   ((0xFEFB)   0xFEFC)
+   ((0x200C)   =)
+   ((0x200D)   =)
+   ))
+
+ (initial
+  (cond
+   ((0x0626)   0xFE8B)
+   ((0x0628)   0xFE91)
+   ((0x062A)   0xFE97)
+   ((0x062B)   0xFE9B)
+   ((0x062C)   0xFE9F)
+   ((0x062D)   0xFEA3)
+   ((0x062E)   0xFEA7)
+   ((0x0633)   0xFEB3)
+   ((0x0634)   0xFEB7)
+   ((0x0635)   0xFEBB)
+   ((0x0636)   0xFEBF)
+   ((0x0637)   0xFEC3)
+   ((0x0638)   0xFEC7)
+   ((0x0639)   0xFECB)
+   ((0x0640)   0x0640)
+   ((0x063A)   0xFECF)
+   ((0x0641)   0xFED3)
+   ((0x0642)   0xFED7)
+   ((0x0643)   0xFEDB)
+   ((0x0644)   0xFEDF)
+   ((0x0645)   0xFEE3)
+   ((0x0646)   0xFEE7)
+   ((0x0647)   0xFEEB)
+   ((0x0649)   0xFBE8)
+   ((0x064A)   0xFEF3)
+   ((0x0679)   0xFB68)
+   ((0x067A)   0xFB60)
+   ((0x067B)   0xFB54)
+   ((0x067E)   0xFB58)
+   ((0x067F)   0xFB64)
+   ((0x0680)   0xFB5C)
+   ((0x0683)   0xFB78)
+   ((0x0684)   0xFB74)
+   ((0x0686)   0xFB7C)
+   ((0x0687)   0xFB80)
+   ((0x06A4)   0xFB6C)
+   ((0x06A6)   0xFB70)
+   ((0x06A9)   0xFB90)
+   ((0x06AD)   0xFBD5)
+   ((0x06AF)   0xFB94)
+   ((0x06B1)   0xFB9C)
+   ((0x06B3)   0xFB98)
+   ((0x06BA)   0xFEE7)
+   ((0x06BB)   0xFBA2)
+   ((0x06BE)   0xFBAC)
+   ((0x06C1)   0xFBA8)
+   ((0x06CC)   0xFBFE)
+   ((0x06D0)   0xFBE6)
+   ((0x200C)   =)
+   ((0x200D)   =)
+   ))
+
+ (medial
+  (cond
+   ((0x0626)   0xFE8C)
+   ((0x0628)   0xFE92)
+   ((0x062A)   0xFE98)
+   ((0x062B)   0xFE9C)
+   ((0x062C)   0xFEA0)
+   ((0x062D)   0xFEA4)
+   ((0x062E)   0xFEA8)
+   ((0x0633)   0xFEB4)
+   ((0x0634)   0xFEB8)
+   ((0x0635)   0xFEBC)
+   ((0x0636)   0xFEC0)
+   ((0x0637)   0xFEC4)
+   ((0x0638)   0xFEC8)
+   ((0x0639)   0xFECC)
+   ((0x0640)   0x0640)
+   ((0x063A)   0xFED0)
+   ((0x0641)   0xFED4)
+   ((0x0642)   0xFED8)
+   ((0x0643)   0xFEDC)
+   ((0x0644)   0xFEE0)
+   ((0x0645)   0xFEE4)
+   ((0x0646)   0xFEE8)
+   ((0x0647)   0xFEEC)
+   ((0x0649)   0xFBE9)
+   ((0x064A)   0xFEF4)
+   ((0x0679)   0xFB69)
+   ((0x067A)   0xFB61)
+   ((0x067B)   0xFB55)
+   ((0x067E)   0xFB59)
+   ((0x067F)   0xFB65)
+   ((0x0680)   0xFB5D)
+   ((0x0683)   0xFB79)
+   ((0x0684)   0xFB75)
+   ((0x0686)   0xFB7D)
+   ((0x0687)   0xFB81)
+   ((0x06A4)   0xFB6D)
+   ((0x06A6)   0xFB71)
+   ((0x06A9)   0xFB91)
+   ((0x06AD)   0xFBD6)
+   ((0x06AF)   0xFB95)
+   ((0x06B1)   0xFB9D)
+   ((0x06B3)   0xFB99)
+   ((0x06BA)   0xFEE8)
+   ((0x06BB)   0xFBA3)
+   ((0x06BE)   0xFBAD)
+   ((0x06C1)   0xFBA9)
+   ((0x06CC)   0xFBFF)
+   ((0x06D0)   0xFBE7)
+   ((0x200C)   =)
+   ((0x200D)   =)
+   ))
+
+ (combining
+  (cond
+   ((0x0651 0x0650) tc+bc 0x064E tc+bc 0x0651) ; shadda + kasra
+   ((0x0651 0x064D) tc+bc 0x064B tc+bc 0x0651) ; shadda + kasratan
+   ((range 0x0610 0x0615) tc+bc =)
+   ((0x064B) tc+bc =)
+   ((0x064C) tc+bc =)
+   ((0x064D) bc-tc =)
+   ((0x064E) tc+bc =)
+   ((0x064F) tc+bc =)
+   ((0x0650) bc-tc =)
+   ((range 0x0651 0x0654) tc+bc =)
+   ((0x0655) bc-tc =)
+   ((0x0656) bc-tc =)
+   ((0x0657) tc+bc =)
+   ((0x0658) tc+bc =)
+   ((0x0670) tc+bc =)
+   ((range 0x06D6 0x06DC) tc+bc =)
+   ((range 0x06DF 0x06E2) tc+bc =)
+   ((0x06E3) bc-tc =)
+   ((0x06E4) tc+bc =)
+   ((0x06E7) tc+bc =)
+   ((0x06E8) tc+bc =)
+   ((0x06EA) bc-tc =)
+   ((0x06EB) tc+bc =)
+   ((0x06EC) tc+bc =)
+   ((0x06ED) bc-tc =)
+   ((0x200C)   =)
+   ((0x200D)   =)
+   ))
+ )
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/ARABIC-OTF.flt b/ARABIC-OTF.flt
deleted file mode 100644 (file)
index bf37a15..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-;; ARABIC-OTF.flt -- Font Layout Table for Arabic OpenType font
-;; Copyright (C) 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> ARABIC-OTF.flt
-;;;
-;;; For Arabic OpenType fonts to draw the Arabic script.
-
-
-;; Step 0: Move Kazakh high hamza.
-
-(category
- ;; p: high hamza carrier (p for positive)
- ;; n: high hamza suppressor (n for negative)
- ;; x: don't care
- (0x0600 0x06FF                ?x)
- (0x0674 0x0678                ?p)
- (0x0643               ?n)
- (0x06AF               ?n)
- (0x06D5               ?n)
- (0x200C               ?x)
- (0x200D               ?x)
- (0xFB50 0xFDFF                ?X)             ; Arabic Presentation Froms-A
- (0xFE70 0xFEFC                ?X)             ; Arabic Presentation Froms-B
- )
-
-(generator
- (0
-  (cond
-   ;; If a presentation from is found, draw the whole sequence as is.
-   (".*X.*" = *)
-
-   (".*p.*"                            ; If a high hamza is found,
-    (cond
-     (".*n.*"                          ;   and a suppressor exists,
-      rmhamza *)                       ;   then remove the high hamza.
-     (0                                        ;   Otherwise, move the high
-      0x674 rmhamza *)))               ;   hamza to the beginning.
-   (0 = *)))                           ; If no high hamza, do nothing.
-
- (rmhamza
-  (cond
-   ((0x0674)           )
-   ((0x0675)           0x0627)
-   ((0x0676)           0x0648)
-   ((0x0677)           0x06C7)
-   ((0x0678)           0x0649)
-   ("."                        =))))
-
-;; Step 1: ccmp
-
-;; (generator
-;;  (0
-;;   otf:arab=ccmp))
-
-;; Step 2: Initial, medial, or final.
-
-(category
- ;; D: Dual-joining (beh, teh, etc. & zwj)
- ;; R: Right-joining (alef, dal, thal, reh, zain)
- ;; U: Non-joining (Hamza, etc. & zwnj)
- ;; T: Transparent (combining marks)
- (0x060C 0x060F                ?U)
- (0x0610 0x0615                ?T)
- (0x061B               ?U)
- (0x061F               ?U)
- (0x0621               ?U)
- (0x0622 0x0623                ?R)
- (0x0624               ?R)
- (0x0625               ?R)
- (0x0626               ?D)
- (0x0627               ?R)
- (0x0628               ?D)
- (0x0629               ?R)
- (0x062A 0x062E                ?D)
- (0x062F 0x0632                ?R)
- (0x0633 0x0647                ?D)
- (0x0648               ?R)
- (0x0649 0x064A                ?D)
- (0x064B 0x0658                ?T)
- (0x0660 0x066D                ?U)
- (0x066E 0x066F                ?D)
- (0x0670               ?T)
- (0x0671 0x0673                ?R)
- (0x0674 0x0678                ?U)
- (0x0679 0x0687                ?D)
- (0x0688 0x0699                ?R)
- (0x069A 0x06C3                ?D)
- (0x06C4 0x06CB                ?R)
- (0x06CC 0x06CE                ?D)
- (0x06CF               ?R)
- (0x06D0 0x06D3                ?D)
- (0x06D4               ?U)
- (0x06D5               ?R)
- (0x06D6 0x06E4                ?T)
- (0x06E5 0x06E6                ?U)
- (0x06E7 0x06E8                ?T)
- (0x06E9               ?U)
- (0x06EA 0x06ED                ?T)
- (0x06EE 0x06EF                ?R)
- (0x06F0 0x06F9                ?U)
- (0x06FA 0x06FC                ?D)
- (0x06FD 0x06FE                ?U)
- (0x06FF               ?D)
- (0x200C               ?U)
- (0x200D               ?D)
- (0xFB50 0xFDFF                ?X)             ; Arabic Presentation Froms-A
- (0xFE70 0xFEFC                ?X)             ; Arabic Presentation Froms-B
- )
-
-(generator
- (0
-  (cond
-   (".*X.*" (cond ("[DRUX]T*" < = * >) ("." =)) *)
-
-   ("D.*"
-    (cond
-     ("(.)(T*)([DR].*)"
-      <
-      (1 otf:arab=init)
-      (2 = *)
-      >
-      (3 join))
-     ("(.)(T*)(.*)"                    ; == (D)(T*)(U.*)
-      <
-      (1 otf:arab=isol)
-      (2 = *)
-      >
-      (3 disjoin))))
-
-   ("([RU])(T*)(.*)"
-    <
-    (1 otf:arab=isol)
-    (2 = *)
-    >
-    (3 disjoin))
-
-   ("(T+)(.*)"
-    (1 = *)
-    (2 disjoin))))
-
- (join
-  (cond
-   ("D.*"
-    (cond
-     ("(.)(T*)([DR].*)"
-      <
-      (1 otf:arab=medi)
-      (2 = *)
-      >
-      (3 join))
-     ("(.)(T*)(.*)"                    ; == (D)(T*)(U.*)
-      <
-      (1 otf:arab=fina)
-      (2 = *)
-      >
-      (3 disjoin))))
-
-   ("(.)(T*)(.*)"
-    <
-    (1 otf:arab=fina)
-    (2 = *)
-    >
-    (3 disjoin))))
-
- (disjoin
-  (cond
-   ("D.*"
-    (cond
-     ("(.)(T*)([DR].*)"
-      <
-      (1 otf:arab=init)
-      (2 = *)
-      >
-      (3 join))
-     ("(.)(T*)(.*)"                    ; == (D)(T*)(U.*)
-      <
-      (1 otf:arab=isol)
-      (2 = *)
-      >
-      (3 disjoin))))
-
-   ("(.)(T*)(.*)"                      ; == ([RU])(T*)(.*)
-    <
-    (1 otf:arab=isol)
-    (2 = *)
-    >
-    (3 disjoin)))))
-
-;; Step 3: Other GSUB features (ligatures, etc.)
-
-(generator
- (0
-  otf:arab=rlig,calt,liga,dlig,cswh,mset))
-
-;; Step 4: GPOS features.
-
-(generator
- (0
-  otf:arab=))
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/ARABIC.flt b/ARABIC.flt
deleted file mode 100644 (file)
index c02abd0..0000000
+++ /dev/null
@@ -1,555 +0,0 @@
-;; ARABIC.flt -- Font Layout Table for Arabic font (Unicode encoding)
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> ARABIC.flt
-;;;
-;;; For Arabic fonts of Unicode encoding to draw Arabic script.
-
-;; phase 1: Kazakh high hamza
-(category
- (0x0600 0x06FF                ?x)
- (0x0675 0x0678                ?p)
- (0x0643               ?n)
- (0x06AF               ?n)
- (0x06D5               ?n)
- (0x200C               ?x)
- (0x200D               ?x)
- (0xFB50 0xFDFF                ?x)             ; Arabic Presentation Froms-A
- (0xFE70 0xFEFC                ?x)             ; Arabic Presentation Froms-B
- )
-
-(generator
- (0
-  (cond
-   (".*p.*"
-    (cond
-     (".*n.*"
-      rmhamza *)
-     ("(.)(.*)"
-      (1 < 0x0674 rmhamza >)
-      (2 rmhamza *))))
-   (0 = *)))
-
- (rmhamza
-  (cond
-   ((0x0675)   0x0627)
-   ((0x0676)   0x0648)
-   ((0x0677)   0x06C7)
-   ((0x0678)   0x0649)
-   ("."                =))))
-
-;; phase 2: ligatures
-(category
- (0x0600 0x06FF                ?x)             ; general
- (0x0622               ?a)             ; alef madda
- (0x0623               ?b)             ; alef hamza above
- (0x0625               ?c)             ; alef hamza below
- (0x0627               ?d)             ; alef
- (0x0644               ?l)             ; lam
- (0x064B 0x0655                ?t)             ; combinings
- (0x0670               ?t)             ; combining
- (0x06D6 0x06ED                ?t)             ; combinings
- (0x06E5               ?x)
- (0x06E6               ?x)
- (0x06E9               ?x)
- (0x200C               ?x)
- (0x200D               ?x)
- (0xFB50 0xFDFF                ?x)
- (0xFE70 0xFEFC                ?x)
- )
-
-(generator
- (0
-  (cond
-   ("l(t*)a(t*)"
-    0xFEF5
-    (1 = *)
-    (2 = *))
-   ("l(t*)b(t*)"
-    0xFEF7
-    (1 = *)
-    (2 = *))
-   ("l(t*)c(t*)"
-    0xFEF9
-    (1 = *)
-    (2 = *))
-   ("l(t*)d(t*)"
-    0xFEFB
-    (1 = *)
-    (2 = *))
-   ("."
-    =))
-  *))
-
-;; phase 3: joining
-(category
- ;; D: Dual-joining (beh, teh, etc. & zwj)
- ;; R: Right-joining (alef, dal, thal, reh, zain)
- ;; U: Non-joining (Hamza, etc. & zwnj)
- ;; T: Transparent (combining marks)
- ;; P: Already in Arabic Presentation Form A & B
- (0x060C 0x060F                ?U)
- (0x0610 0x0615                ?T)
- (0x061B               ?U)
- (0x061F               ?U)
- (0x0621               ?U)
- (0x0622 0x0623                ?R)
- (0x0624               ?R)
- (0x0625               ?R)
- (0x0626               ?D)
- (0x0627               ?R)
- (0x0628               ?D)
- (0x0629               ?R)
- (0x062A 0x062E                ?D)
- (0x062F 0x0632                ?R)
- (0x0633 0x0647                ?D)
- (0x0648               ?R)
- (0x0649 0x064A                ?D)
- (0x064B 0x0658                ?T)
- (0x0660 0x066D                ?U)
- (0x066E 0x066F                ?D)
- (0x0670               ?T)
- (0x0671 0x0673                ?R)
- (0x0674 0x0678                ?U)
- (0x0679 0x0687                ?D)
- (0x0688 0x0699                ?R)
- (0x069A 0x06C3                ?D)
- (0x06C4 0x06CB                ?R)
- (0x06CC 0x06CE                ?D)
- (0x06CF               ?R)
- (0x06D0 0x06D3                ?D)
- (0x06D4               ?U)
- (0x06D5               ?R)
- (0x06D6 0x06E4                ?T)
- (0x06E5 0x06E6                ?U)
- (0x06E7 0x06E8                ?T)
- (0x06E9               ?U)
- (0x06EA 0x06ED                ?T)
- (0x06EE 0x06EF                ?R)
- (0x06F0 0x06F9                ?U)
- (0x06FA 0x06FC                ?D)
- (0x06FD 0x06FE                ?U)
- (0x06FF               ?D)
- (0xFB50 0xFDFF                ?P)
- (0xFE70 0xFEFC                ?P)
- (0xFEF5               ?R)
- (0xFEF7               ?R)
- (0xFEF9               ?R)
- (0xFEFB               ?R)
- (0x200C               ?U)
- (0x200D               ?D)
- )
-
-(generator
- (0
-  (cond
-   ("PT*"
-    = combining *)
-
-   ("D[^P]*"
-    (cond
-     ("(.)(T*)([DR].*)"
-      (1 initial)
-      (2 combining *)
-      (3 join))
-     ("(.)(T*)(.*)"                    ; == (D)(T*)(U.*)
-      (1 isolated)
-      (2 combining *)
-      (3 disjoin))))
-
-   ("([RU])(T*)([^P]*)"
-    (1 isolated)
-    (2 combining *)
-    (3 disjoin))
-
-   ("(T+)([^P]*)"
-    (1 = *)
-    (2 disjoin)))
-
-  *)
-
- (join
-  (cond
-   ("D.*"
-    (cond
-     ("(.)(T*)([DR].*)"
-      (1 medial)
-      (2 combining *)
-      (3 join))
-     ("(.)(T*)(.*)"                    ; == (D)(T*)(U.*)
-      (1 final)
-      (2 combining *)
-      (3 disjoin))))
-
-   ("(.)(T*)(.*)"                      ; == (R)(T*)(.*)
-    (1 final)
-    (2 combining *)
-    (3 disjoin))))
-
- (disjoin
-  (cond
-   ("D.*"
-    (cond
-     ("(.)(T*)([DR].*)"
-      (1 initial)
-      (2 combining *)
-      (3 join))
-     ("(.)(T*)(.*)"                    ; == (D)(T*)(U.*)
-      (1 isolated)
-      (2 combining *)
-      (3 disjoin))))
-
-   ("(.)(T*)(.*)"                      ; == ([RU])(T*)(.*)
-    (1 isolated)
-    (2 combining *)
-    (3 disjoin))))
-
- (isolated
-  (cond
-   ((range 0x060C 0x060F)      =)
-   ((0x061B)   =)
-   ((0x061F)   =)
-   ((0x0621)   0xFE80)
-   ((0x0622)   0xFE81)
-   ((0x0623)   0xFE83)
-   ((0x0624)   0xFE85)
-   ((0x0625)   0xFE87)
-   ((0x0626)   0xFE89)
-   ((0x0627)   0xFE8D)
-   ((0x0628)   0xFE8F)
-   ((0x0629)   0xFE93)
-   ((0x062A)   0xFE95)
-   ((0x062B)   0xFE99)
-   ((0x062C)   0xFE9D)
-   ((0x062D)   0xFEA1)
-   ((0x062E)   0xFEA5)
-   ((0x062F)   0xFEA9)
-   ((0x0630)   0xFEAB)
-   ((0x0631)   0xFEAD)
-   ((0x0632)   0xFEAF)
-   ((0x0633)   0xFEB1)
-   ((0x0634)   0xFEB5)
-   ((0x0635)   0xFEB9)
-   ((0x0636)   0xFEBD)
-   ((0x0637)   0xFEC1)
-   ((0x0638)   0xFEC5)
-   ((0x0639)   0xFEC9)
-   ((0x0640)   0x0640)
-   ((0x063A)   0xFECD)
-   ((0x0641)   0xFED1)
-   ((0x0642)   0xFED5)
-   ((0x0643)   0xFED9)
-   ((0x0644)   0xFEDD)
-   ((0x0645)   0xFEE1)
-   ((0x0646)   0xFEE5)
-   ((0x0647)   0xFEE9)
-   ((0x0648)   0xFEED)
-   ((0x0649)   0xFEEF)
-   ((0x064A)   0xFEF1)
-   ((range 0x0660 0x066D)      =)
-   ((0x0671)   0xFB50)
-   ((0x0674)   =)
-   ((0x0677)   0xFBDD)
-   ((0x0679)   0xFB66)
-   ((0x067A)   0xFB5E)
-   ((0x067B)   0xFB52)
-   ((0x067E)   0xFB56)
-   ((0x067F)   0xFB62)
-   ((0x0680)   0xFB5A)
-   ((0x0683)   0xFB76)
-   ((0x0684)   0xFB72)
-   ((0x0686)   0xFB7A)
-   ((0x0687)   0xFB7E)
-   ((0x0688)   0xFB88)
-   ((0x068C)   0xFB84)
-   ((0x068D)   0xFB82)
-   ((0x068E)   0xFB86)
-   ((0x0691)   0xFB8C)
-   ((0x0698)   0xFB8A)
-   ((0x06A4)   0xFB6A)
-   ((0x06A6)   0xFB6E)
-   ((0x06A9)   0xFB8E)
-   ((0x06AD)   0xFBD3)
-   ((0x06AF)   0xFB92)
-   ((0x06B1)   0xFB9A)
-   ((0x06B3)   0xFB96)
-   ((0x06BA)   0xFB9E)
-   ((0x06BB)   0xFBA0)
-   ((0x06BE)   0xFBAA)
-   ((0x06C0)   0xFBA4)
-   ((0x06C1)   0xFBA6)
-   ((0x06C5)   0xFBE0)
-   ((0x06C6)   0xFBD9)
-   ((0x06C7)   0xFBD7)
-   ((0x06C8)   0xFBDB)
-   ((0x06C9)   0xFBE2)
-   ((0x06CB)   0xFBDE)
-   ((0x06CC)   0xFBFC)
-   ((0x06D0)   0xFBE4)
-   ((0x06D2)   0xFBAE)
-   ((0x06D3)   0xFBB0)
-   ((0x06D4)   =)
-   ((0x06D5)   0xFEE9)
-   ((0x06E5)   =)
-   ((0x06E6)   =)
-   ((0x06E9)   =)
-   ((range 0x06F0 0x06F9)      =)
-   ((0x06FD)   =)
-   ((0x06FE)   =)
-   ((0xFEF5)   =)
-   ((0xFEF7)   =)
-   ((0xFEF9)   =)
-   ((0xFEFB)   =)
-   ((0x200C)   =)
-   ((0x200D)   =)
-   ))
-
- (final
-  (cond
-   ((0x0622)   0xFE82)
-   ((0x0623)   0xFE84)
-   ((0x0624)   0xFE86)
-   ((0x0625)   0xFE88)
-   ((0x0626)   0xFE8A)
-   ((0x0627)   0xFE8E)
-   ((0x0628)   0xFE90)
-   ((0x0629)   0xFE94)
-   ((0x062A)   0xFE96)
-   ((0x062B)   0xFE9A)
-   ((0x062C)   0xFE9E)
-   ((0x062D)   0xFEA2)
-   ((0x062E)   0xFEA6)
-   ((0x062F)   0xFEAA)
-   ((0x0630)   0xFEAC)
-   ((0x0631)   0xFEAE)
-   ((0x0632)   0xFEB0)
-   ((0x0633)   0xFEB2)
-   ((0x0634)   0xFEB6)
-   ((0x0635)   0xFEBA)
-   ((0x0636)   0xFEBE)
-   ((0x0637)   0xFEC2)
-   ((0x0638)   0xFEC6)
-   ((0x0639)   0xFECA)
-   ((0x0640)   0x0640)
-   ((0x063A)   0xFECE)
-   ((0x0641)   0xFED2)
-   ((0x0642)   0xFED6)
-   ((0x0643)   0xFEDA)
-   ((0x0644)   0xFEDE)
-   ((0x0645)   0xFEE2)
-   ((0x0646)   0xFEE6)
-   ((0x0647)   0xFEEA)
-   ((0x0648)   0xFEEE)
-   ((0x0649)   0xFEF0)
-   ((0x064A)   0xFEF2)
-   ((0x0671)   0xFB51)
-   ((0x0679)   0xFB67)
-   ((0x067A)   0xFB5F)
-   ((0x067B)   0xFB52)
-   ((0x067E)   0xFB57)
-   ((0x067F)   0xFB63)
-   ((0x0680)   0xFB5B)
-   ((0x0683)   0xFB77)
-   ((0x0684)   0xFB73)
-   ((0x0686)   0xFB7B)
-   ((0x0687)   0xFB7F)
-   ((0x0688)   0xFB89)
-   ((0x068C)   0xFB85)
-   ((0x068D)   0xFB83)
-   ((0x068E)   0xFB87)
-   ((0x0691)   0xFB8D)
-   ((0x0698)   0xFB8B)
-   ((0x06A4)   0xFB6B)
-   ((0x06A6)   0xFB6F)
-   ((0x06A9)   0xFB8F)
-   ((0x06AD)   0xFBD4)
-   ((0x06AF)   0xFB93)
-   ((0x06B1)   0xFB9B)
-   ((0x06B3)   0xFB97)
-   ((0x06BA)   0xFB9F)
-   ((0x06BB)   0xFBA1)
-   ((0x06BE)   0xFBAB)
-   ((0x06C0)   0xFBA5)
-   ((0x06C1)   0xFBA7)
-   ((0x06C5)   0xFBE1)
-   ((0x06C6)   0xFBDA)
-   ((0x06C7)   0xFBD8)
-   ((0x06C8)   0xFBDC)
-   ((0x06C9)   0xFBE3)
-   ((0x06CB)   0xFBDF)
-   ((0x06CC)   0xFBFD)
-   ((0x06D0)   0xFBE5)
-   ((0x06D2)    0xFBAF)
-   ((0x06D3)   0xFBB1)
-   ((0x06D5)   0xFEEA)
-   ((0xFEF5)   0xFEF6)
-   ((0xFEF7)   0xFEF8)
-   ((0xFEF9)   0xFEFA)
-   ((0xFEFB)   0xFEFC)
-   ((0x200C)   =)
-   ((0x200D)   =)
-   ))
-
- (initial
-  (cond
-   ((0x0626)   0xFE8B)
-   ((0x0628)   0xFE91)
-   ((0x062A)   0xFE97)
-   ((0x062B)   0xFE9B)
-   ((0x062C)   0xFE9F)
-   ((0x062D)   0xFEA3)
-   ((0x062E)   0xFEA7)
-   ((0x0633)   0xFEB3)
-   ((0x0634)   0xFEB7)
-   ((0x0635)   0xFEBB)
-   ((0x0636)   0xFEBF)
-   ((0x0637)   0xFEC3)
-   ((0x0638)   0xFEC7)
-   ((0x0639)   0xFECB)
-   ((0x0640)   0x0640)
-   ((0x063A)   0xFECF)
-   ((0x0641)   0xFED3)
-   ((0x0642)   0xFED7)
-   ((0x0643)   0xFEDB)
-   ((0x0644)   0xFEDF)
-   ((0x0645)   0xFEE3)
-   ((0x0646)   0xFEE7)
-   ((0x0647)   0xFEEB)
-   ((0x0649)   0xFBE8)
-   ((0x064A)   0xFEF3)
-   ((0x0679)   0xFB68)
-   ((0x067A)   0xFB60)
-   ((0x067B)   0xFB54)
-   ((0x067E)   0xFB58)
-   ((0x067F)   0xFB64)
-   ((0x0680)   0xFB5C)
-   ((0x0683)   0xFB78)
-   ((0x0684)   0xFB74)
-   ((0x0686)   0xFB7C)
-   ((0x0687)   0xFB80)
-   ((0x06A4)   0xFB6C)
-   ((0x06A6)   0xFB70)
-   ((0x06A9)   0xFB90)
-   ((0x06AD)   0xFBD5)
-   ((0x06AF)   0xFB94)
-   ((0x06B1)   0xFB9C)
-   ((0x06B3)   0xFB98)
-   ((0x06BA)   0xFEE7)
-   ((0x06BB)   0xFBA2)
-   ((0x06BE)   0xFBAC)
-   ((0x06C1)   0xFBA8)
-   ((0x06CC)   0xFBFE)
-   ((0x06D0)   0xFBE6)
-   ((0x200C)   =)
-   ((0x200D)   =)
-   ))
-
- (medial
-  (cond
-   ((0x0626)   0xFE8C)
-   ((0x0628)   0xFE92)
-   ((0x062A)   0xFE98)
-   ((0x062B)   0xFE9C)
-   ((0x062C)   0xFEA0)
-   ((0x062D)   0xFEA4)
-   ((0x062E)   0xFEA8)
-   ((0x0633)   0xFEB4)
-   ((0x0634)   0xFEB8)
-   ((0x0635)   0xFEBC)
-   ((0x0636)   0xFEC0)
-   ((0x0637)   0xFEC4)
-   ((0x0638)   0xFEC8)
-   ((0x0639)   0xFECC)
-   ((0x0640)   0x0640)
-   ((0x063A)   0xFED0)
-   ((0x0641)   0xFED4)
-   ((0x0642)   0xFED8)
-   ((0x0643)   0xFEDC)
-   ((0x0644)   0xFEE0)
-   ((0x0645)   0xFEE4)
-   ((0x0646)   0xFEE8)
-   ((0x0647)   0xFEEC)
-   ((0x0649)   0xFBE9)
-   ((0x064A)   0xFEF4)
-   ((0x0679)   0xFB69)
-   ((0x067A)   0xFB61)
-   ((0x067B)   0xFB55)
-   ((0x067E)   0xFB59)
-   ((0x067F)   0xFB65)
-   ((0x0680)   0xFB5D)
-   ((0x0683)   0xFB79)
-   ((0x0684)   0xFB75)
-   ((0x0686)   0xFB7D)
-   ((0x0687)   0xFB81)
-   ((0x06A4)   0xFB6D)
-   ((0x06A6)   0xFB71)
-   ((0x06A9)   0xFB91)
-   ((0x06AD)   0xFBD6)
-   ((0x06AF)   0xFB95)
-   ((0x06B1)   0xFB9D)
-   ((0x06B3)   0xFB99)
-   ((0x06BA)   0xFEE8)
-   ((0x06BB)   0xFBA3)
-   ((0x06BE)   0xFBAD)
-   ((0x06C1)   0xFBA9)
-   ((0x06CC)   0xFBFF)
-   ((0x06D0)   0xFBE7)
-   ((0x200C)   =)
-   ((0x200D)   =)
-   ))
-
- (combining
-  (cond
-   ((0x0651 0x0650) tc+bc 0x064E tc+bc 0x0651) ; shadda + kasra
-   ((0x0651 0x064D) tc+bc 0x064B tc+bc 0x0651) ; shadda + kasratan
-   ((range 0x0610 0x0615) tc+bc =)
-   ((0x064B) tc+bc =)
-   ((0x064C) tc+bc =)
-   ((0x064D) bc-tc =)
-   ((0x064E) tc+bc =)
-   ((0x064F) tc+bc =)
-   ((0x0650) bc-tc =)
-   ((range 0x0651 0x0654) tc+bc =)
-   ((0x0655) bc-tc =)
-   ((0x0656) bc-tc =)
-   ((0x0657) tc+bc =)
-   ((0x0658) tc+bc =)
-   ((0x0670) tc+bc =)
-   ((range 0x06D6 0x06DC) tc+bc =)
-   ((range 0x06DF 0x06E2) tc+bc =)
-   ((0x06E3) bc-tc =)
-   ((0x06E4) tc+bc =)
-   ((0x06E7) tc+bc =)
-   ((0x06E8) tc+bc =)
-   ((0x06EA) bc-tc =)
-   ((0x06EB) tc+bc =)
-   ((0x06EC) tc+bc =)
-   ((0x06ED) bc-tc =)
-   ((0x200C)   =)
-   ((0x200D)   =)
-   ))
- )
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/BEN-OTF.flt b/BEN-OTF.flt
deleted file mode 100644 (file)
index 20c9366..0000000
+++ /dev/null
@@ -1,474 +0,0 @@
-;; BEN-OTF.flt -- Font Layout Table for Bengali OpenType font
-;; Copyright (C) 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> BEN-OTF.flt
-;;;
-;;; For Bengali OpenType fonts to draw the Bengali script.  Tested with
-;;; MuktiNarrow.ttf <http://www.nongnu.org/freebangfont/index.html>
-;;; and
-;;; LikhanNormal.otf <http:http://www.stat.wisc.edu/~deepayan/Bengali/WebPage/Font/fonts.html>
-
-(category
- ;; C: consonant (excluding B, Y and R)
- ;; B: consonant BA (below)
- ;; Y: consonant YA (post)
- ;; R: consonant RA (reph, below)
- ;; n: NUKTA
- ;; H: HALANT
- ;; m: MATRA (pre)
- ;; b: MATRA (below)
- ;; p: MATRA (post)
- ;; t: MATRA (two-part)
- ;; A: vowel modifier (above)
- ;; a: vowel modifier (post)
- ;; V: independent vowel
- ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
- ;; J: ZWJ (ZERO WIDTH JOINER)
- ;; E: ELSE
- ;;
- (0x200C       ?N)                     ; ZWNJ
- (0x200D       ?J)                     ; ZWJ
- (0x0964 0x0965        ?E)                     ; DANDA, DOUBLE DANDA
- (0x0980 0x09FF        ?E)                     ; ELSE
- (0x0981       ?A)                     ; SIGN CANDRABINDU (above)
- (0x0982 0x0983        ?a)                     ; SIGN ANUSWAR, VISARGA (post)
- (0x0985 0x098C        ?V)                     ; LETTER A .. VOCALIC L
- (0x098F 0x0990        ?V)                     ; LETTER E .. AI
- (0x0993 0x0994        ?V)                     ; LETTER O .. AU
- (0x0995 0x09B9        ?C)                     ; LETTER KA .. HA
- (0x09AC       ?B)                     ; LETTER BA
- (0x09AF       ?Y)                     ; LETTER YA
- (0x09B0       ?R)                     ; LETTER RA
- (0x09BC       ?n)                     ; SIGN NUKTA
- (0x09BE       ?p)                     ; VOWEL SIGN AA (post)
- (0x09BF       ?m)                     ; VOWEL SIGN I (pre)
- (0x09C0       ?p)                     ; VOWEL SIGN II (post)
- (0x09C1 0x09C4        ?b)                     ; VOWEL SIGN U, UU, R, RR (below)
- (0x09C7 0x09C8        ?m)                     ; VOWEL SIGN E, AI (pre)
- (0x09CB 0x09CC ?t)                    ; VOWEL SIGN O, AU (two-part)
- (0x09CD       ?H)                     ; SIGN VIRAMA (HASANT)
- (0x09D7       ?p)                     ; AU LENGTH MARK
- (0x09DC 0x09DD        ?C)                     ; LETTER RRA, RHA
- (0x09DF       ?C)                     ; LETTER YYA
- (0x09E0 0x09E1        ?V)                     ; LETTER VOCALIC RR, LL
- (0x09E2 0x09E3        ?b)                     ; VOWEL SIGN L .. LL (below)
- (0x09F0 0x09F1        ?C)                     ; LETTER RR', RR'' (assamese)
- (0x09FE       ?x)                     ; mark #1 (internal use)
- (0x09FF       ?y)                     ; mark #2 (internal use)
- )
-
-;; Step 1 : Syllable identification.  Recognised syllables are quoted
-;; by the pseudo character, which is generated by the command "|" and
-;; has the category " " (space).
-(generator
- (0
-  (cond
-   ;; Case A-C are for those syllables that end with an explicit vowel
-   ;; mark and/or a vowel modifier.  They are divided into three cases
-   ;; for the readability of regular expression.  The leading
-   ;; consonant-Hasant repetition is analysed for reordering in the
-   ;; next step.  Two-part vowel, if any, is split for
-   ;; canonicalisation.
-
-   ;; Case A : A syllable ending with a vowel modifier.
-   ;;1    23                4          5       6   7
-   ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))([mbp]*)(t)?([Aa])"
-    < |
-    (1 = =)
-    (2 set-marks)
-    (5 = *)
-    (6 split)
-    (7 =)
-    | >)
-
-   ;; Case B : A syllable ending with a two-part vowel.
-   ;;1    23                4          5
-   ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))(t)"
-    < |
-    (1 = =)
-    (2 set-marks)
-    (5 split)
-    | >)
-
-   ;; Case C : A syllable ending with other vowel.  Note that a
-   ;; two-part vowel may be expressed with two vowel marks for
-   ;; backward compatibility.
-   ;;1    23                4          5
-   ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))([mbp]+)"
-    < |
-    (1 = =)
-    (2 set-marks)
-    (5 = *)
-    | >)
-
-   ;; Case D : Ya-phalaa.  Reorder H and Y for the next step.
-   ;; The web page "Unicode FAQ for Indic Scripts and Languages"
-   ;; <http://www.unicode.org/faq/indic.html> says "it should be
-   ;; permissible for the Ya-phalla to be consistently formed by "ZWNJ
-   ;; + VIRAMA + YA".
-   ("([CRBY]n?N)(H)(Y)"
-    < |
-    (1 = *)
-    (3 =)
-    (2 =)
-    | >)
-
-   ;; Case E : No explicit vowel nor modifier.  If the syllable ends
-   ;; with a consonant, analyse it for reordering in the next step.
-   ;; Otherwise, just identify the syllable without changing anything.
-   ;;1    23                         4
-   ("(RH)?(([CRBY]n?H[NJ]?)*[CRBY]n?)(HN|HJ|H)?"
-    < |
-    (1 = =)
-    (2 set-marks)
-    (4 = *)
-    | >)
-
-   ;; Case F : Syllables that begin with an independent vowel.  An
-   ;; optional HYp sequence appears when this syllable represents the
-   ;; sound "a" in English "bat" (see the FAQ above).  If it appears,
-   ;; we reorder the H and Y for the next step.
-   ("(V)(HYp)?([aA])?"
-    < | (1 =) (2 ("HY(p)" 0x09AF 0x09CD (1 =))) (3 =) | >)
-
-   ("." =))
-  *)
-
- ;; Set mark #1 (x) at the position where below consonants begin, and
- ;; mark #2 (y) at the position to which below and above signs will be
- ;; moved.
- (set-marks
-  (cond
-   ;; Ending with Y.
-   ;;1        2            3  45        6
-   ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*)(Y)"
-    (1 = *)                            ; prebase & base
-    0x09FE                             ; mark #1
-    (4 = *)                            ; below consonants
-    0x09FF                             ; mark #2
-    (6 =)                              ; YA
-    (3 =))                             ; moved HASANT
-   ;; Ending with R or B.
-   ;;1        2            3  45
-   ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*[RB])"
-    (1 = *)                            ; prebase & base
-    0x09FE                             ; mark #1
-    (4 = *)                            ; below consonants 
-    (3 =)                              ; moved HASANT
-    0x09FF)                            ; mark #2
-   (".+"
-    = *
-    0x09FE                             ; mark #1
-    0x09FF)))                          ; mark #2
-
- ;; Split two-part dependent vowel signs for canonicalisation.
- (split
-  (cond
-   ((0x09CB)   0x09C7 0x09BE)
-   ((0x09CC)   0x09C7 0x09D7)))
- )
-
-;; Step 2 : Move Reph and Matra if necessary.  From now on, we care
-;; only for those syllables that have been identified in Step 1.
-(generator
- (0
-  (cond
-   ;; Special case: a single consonant and a Halant.
-   (" (.)xy(H[NJ]?) "
-    |
-    0x09FE
-    (1 =)
-    (2 = *)
-    0x09FE
-    |)
-
-   ;; This is the most generic pattern.  It follows Cases A, B, C and
-   ;; E in Step 1.  Now Mark #1 is used to indicate the critical part
-   ;; that requires pre-base substitution in the following steps.
-
-   ;; 1    2         3        4    5   6   7   8   9   10
-   (" (RH)?([^ xy]+)x([^ y]*)y(YH)?(m)?(b)?(p)?(A)?(a)?(HN|HJ|H)? "
-    |
-    (5 =)                              ; [Mpre]
-    ;; Actually, the nukt feature is not necessary for Bengali because
-    ;; all the necessary Nukta forms are precomposed in the Unicode
-    ;; standard.  Even if a Nukta consonant is given in the form of
-    ;; the combination of the base consonant and a Nukta sign, we can
-    ;; safely perform the composition here because it does not affect
-    ;; surrounding letters in the syllable.  The Akhand ligature
-    ;; operation is also applied here, before applying the half form
-    ;; operation because the Mukti font generates Akhand ligatures
-    ;; directly from the "C H C" sequence, not via the half form.
-    0x09FE                             ; begin Cpre & Cbase
-    (2 otf:beng=nukt,akhn)             ; {Cpre + H} + Cbase
-    0x09FE                             ; end Cpre & Cbase
-    (3 otf:beng=blwf)                  ; {Cbelow + H}
-    (6 =)                              ; [Mbelow]
-    (1 otf:beng=rphf)                  ; [Reph]
-    (8 =)                              ; [VMabove]
-    (4 otf:beng=pstf)                  ; [Cpost + H]
-    (7 =)                              ; [Mpost]
-    (9 =)                              ; [VMpost]
-    (10 = *)                           ; optional HASANT
-    |)
-
-   ;; Syllables that begin with an independent vowel (following up
-   ;; Step 1, Case F).  If a YH sequence exist, it is changed to the
-   ;; post-base form.  Syllables of this type do not require further
-   ;; modification.
-   (" (V)(YH)(.*) "
-    |
-    (1 =)
-    (2 otf:beng=pstf)
-    (3 = *)
-    |)
-
-   ;; Ya-phalaa (following up Step 1, Case D).  Remove N and change YH
-   ;; to the post base form.  Syllables of this type do not require
-   ;; further modification.
-   (" ([CBRY]n?)N(YH) "
-    |
-    (1 =)
-    (2 otf:beng=pstf)
-    |)
-
-   ("." =))
-  *))
-
-;; Step 3 : Now only those syllables that contain the pseudo character
-;; x require pre-base substition.  This is the most complicated part
-;; in this FLT.
-
-;; If the sequence "C1 H C2" makes ligature L12, L12 replaces the
-;; original sequence.
-
-;; To test the availability of such a ligature, we try to generate it
-;; using the pre-base substitute feature, then see whether succeeded
-;; or not.  In the case of failure, the pre-base feature does not
-;; change the original sequence.
-
-;; To create a ligature, the "C1 H" part must be first converted into
-;; the half form of C1.  Creating the half form of a consonant always
-;; succeeds.
-
-;; ligature(half(C1,H),C2)
-;; ==> ligature(C1half,C2)
-;; ==> L12         ; success
-;;     C1half C2   ; fail
-
-;; If the ligature is not available, the "C1 H" part must be converted
-;; into the _Halant_ (not half) form of C1.  However, there is no way
-;; to reconvert C1half into C1halant nor to revert back to "C1 H".
-;; Thus we duplicate the critical part in two different forms so that
-;; we can select the appropriate one in the next step.  The pseudo
-;; character x is used to indicate the boundaries.
-
-;; ... C1 H C2 ...  ==>  ... x C1halant C2 x L12 x ...
-
-;; If the length of the L12 part is one, ligature generation was
-;; successful.  In this case we wipe out the duplicated C1halant and
-;; C2.  Otherwise we remove L12.
-
-;; In very few cases (I found only one in the Mukti font), the "C1 H"
-;; part need to be converted into C1halant to make a ligature with C2.
-;; So when try to generate a ligature form, we apply the GSUB features
-;; "half", "haln" and "pres" in this order.
-
-(category
- ;; C: consonant (excluding B, Y and R)
- ;; H: HALANT
- ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
- ;; J: ZWJ (ZERO WIDTH JOINER)
- ;; E: ELSE
- ;;
- (0x200C       ?N)                     ; ZWNJ
- (0x200D       ?J)                     ; ZWJ
- (0x0964 0x0965        ?E)                     ; DANDA, DOUBLE DANDA
- (0x0980 0x09FF        ?E)                     ; ELSE
- (0x09CD       ?H)                     ; SIGN VIRAMA (HASANT)
- (0x0995       ?K)                     ; LETTER KA
- (0x09B7       ?S)                     ; LETTER SSA
- (0x09A3       ?M)                     ; LETTER NNA
- (0x09AE       ?M)                     ; LETTER MA
- (0x09FE       ?x)                     ; mark #1 (internal use)
- )
-
-(generator
- (0
-  (cond
-
-   ;; One pre-base and base.
-   ;; 1        23   4       5    6
-   (" ([^x ]*)x((.H)([^NJ]))(H)?x([^ ]*) "
-    |
-    (1 = *)
-    0x09FE                             ; x
-    (3 otf:beng=haln)                  ; C1halant
-    (4 =)                              ; C2
-    0x09FE                             ; x
-    (2 otf:beng=half,haln,pres)                ; ligature result
-    0x09FE                             ; x
-    (5 =)
-    (6 = *)
-    |)
-
-   ;; One pre-base with ZWJ.  According to the Unicode FAQ, the half
-   ;; form is forced in this case.  So we fake as if ligature
-   ;; generation was failed.
-   (" ([^x ]*)x(.H)J(.)?x([^ ]*) "
-    |
-    (1 = *)
-    0x09FE                             ; x
-    (2 otf:beng=half)                  ; C1half
-    (3 =)                              ; C2
-    0x09FE                             ; x
-    0x09FD                             ; pseudo result
-    0x09FD                             ; pseudo result
-    0x09FE                             ; x
-    (4 = *)
-    |)
-
-   ;; One pre-base possibly with ZWNJ.  Similar to above.
-   (" ([^x ]*)x(.H)N?(.)?x([^ ]*) "
-    |
-    (1 = *)
-    0x09FE                             ; x
-    (2 otf:beng=haln)                  ; C1halant
-    (3 =)                              ; C2
-    0x09FE                             ; x
-    0x09FD                             ; pseudo result
-    0x09FD                             ; pseudo result
-    0x09FE                             ; x
-    (4 = *)
-    |)
-
-   ;; Standalone base.  There is nothing more to do.
-   (" ([^x ]*)x(.)x([^ ]*) "
-    |
-    (1 = *)
-    (2 =)
-    (3 = *)
-    |)
-
-   ;; KA-SSA-NNA and KA-SSA-MA are the only pre-base ligatures that
-   ;; consist of three consonants.
-   ;; 1        23   4   5   6    7
-   (" ([^x ]*)x((KH)(SH)(M))(H)?x([^ ]*) "
-    |
-    (1 = *)
-    0x09FE                             ; x
-    (3 otf:beng=haln)                  ; KAhalant
-    (4 otf:beng=haln)                  ; SSAhalant
-    (5 =)                              ; NNA or MA
-    0x09FE                             ; x
-    (2 otf:beng=half,haln,pres)                ; ligature result
-    0x09FE                             ; x
-    (6 =)
-    (7 = *)
-    |)
-
-   ;; Two or more pre-bases plus base.  Give up.  Convert all
-   ;; pre-bases into halant form.
-   ;; 1        23             4       5
-   (" ([^x ]*)x(([^x]H[JN]?)+)([^x])?x([^ ]*) "
-    |
-    (1 = *)
-    0x09FE                             ; x
-    (2 force-haln)                     ; halant forms
-    (4 =)                              ; full form
-    0x09FE                             ; x
-    0x09FD                             ; pseudo result
-    0x09FD                             ; pseudo result
-    0x09FE                             ; x
-    (5 = *)
-    |)
-
-   ("." =))
-  *)
-
- ;; This is to remove ZWNJ and ZWJ.  The half-form-force-effect of ZWJ
- ;; is ignored.  Sorry.
- (force-haln
-  (cond
-   ("([^JN]*)[JN](.*)"
-    (1 otf:beng=haln)
-    (2 force-haln))
-   (".+"
-    otf:beng=haln)))
- )
-
-;; Step 4 : Select the appropriate representation.  Only those
-;; syllables that contain the virtual character x require
-;; modification.
-(generator
- (0
-  (cond
-   ;; Only one glyph in the ligature section (between the second and
-   ;; the third x).  It means a ligature was successfully generated.
-   ;; C1halant and C2 (between the first and second x) are removed.
-   (" ([^x ]*)x[^x]+x(.)x([^ ]*) "
-    |
-    (1 = *)
-    (2 =)
-    (3 = *)
-    |)
-
-   ;; Otherwise halant and base forms are used.  The failed ligature
-   ;; is removed.
-   (" ([^x ]*)x([^x]+)x[^x]+x([^ ]*) "
-    |
-    (1 = *)
-    (2 = *)
-    (3 = *)
-    |)
-
-   ;; No need to care the other cases.
-   ("." =))
-  *))
-
-;; Step 5 : Select appropriate glyph variants for fine adjustments.
-;; Now the syllable boundary marks are removed so that the final step
-;; can find word boundaries.
-(generator
- (0
-  (cond
-   (" ([^ ]+) "
-    (1 otf:beng=blws,abvs,psts,vatu))
-   ("."
-    [ otf:beng=+ ] ))
-  *)
- )
-
-;; Step 6 : Word initial substitute.  As the syllable boundaries have
-;; been eliminated in the previous step, this rule is applied to a run
-;; of Bengali glyphs, i.e. word by word.  We finally apply the init
-;; feature to the word initial gylphs to get the final result.
-(generator
- (0
-  ("(.)(.*)"
-   (1 otf:beng=init)
-   (2 = *))))
-
-;; Local Variables:
-;; mode: emacs-lisp
-;; End:
diff --git a/BENG-OTF.flt b/BENG-OTF.flt
new file mode 100644 (file)
index 0000000..20c9366
--- /dev/null
@@ -0,0 +1,474 @@
+;; BEN-OTF.flt -- Font Layout Table for Bengali OpenType font
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> BEN-OTF.flt
+;;;
+;;; For Bengali OpenType fonts to draw the Bengali script.  Tested with
+;;; MuktiNarrow.ttf <http://www.nongnu.org/freebangfont/index.html>
+;;; and
+;;; LikhanNormal.otf <http:http://www.stat.wisc.edu/~deepayan/Bengali/WebPage/Font/fonts.html>
+
+(category
+ ;; C: consonant (excluding B, Y and R)
+ ;; B: consonant BA (below)
+ ;; Y: consonant YA (post)
+ ;; R: consonant RA (reph, below)
+ ;; n: NUKTA
+ ;; H: HALANT
+ ;; m: MATRA (pre)
+ ;; b: MATRA (below)
+ ;; p: MATRA (post)
+ ;; t: MATRA (two-part)
+ ;; A: vowel modifier (above)
+ ;; a: vowel modifier (post)
+ ;; V: independent vowel
+ ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
+ ;; J: ZWJ (ZERO WIDTH JOINER)
+ ;; E: ELSE
+ ;;
+ (0x200C       ?N)                     ; ZWNJ
+ (0x200D       ?J)                     ; ZWJ
+ (0x0964 0x0965        ?E)                     ; DANDA, DOUBLE DANDA
+ (0x0980 0x09FF        ?E)                     ; ELSE
+ (0x0981       ?A)                     ; SIGN CANDRABINDU (above)
+ (0x0982 0x0983        ?a)                     ; SIGN ANUSWAR, VISARGA (post)
+ (0x0985 0x098C        ?V)                     ; LETTER A .. VOCALIC L
+ (0x098F 0x0990        ?V)                     ; LETTER E .. AI
+ (0x0993 0x0994        ?V)                     ; LETTER O .. AU
+ (0x0995 0x09B9        ?C)                     ; LETTER KA .. HA
+ (0x09AC       ?B)                     ; LETTER BA
+ (0x09AF       ?Y)                     ; LETTER YA
+ (0x09B0       ?R)                     ; LETTER RA
+ (0x09BC       ?n)                     ; SIGN NUKTA
+ (0x09BE       ?p)                     ; VOWEL SIGN AA (post)
+ (0x09BF       ?m)                     ; VOWEL SIGN I (pre)
+ (0x09C0       ?p)                     ; VOWEL SIGN II (post)
+ (0x09C1 0x09C4        ?b)                     ; VOWEL SIGN U, UU, R, RR (below)
+ (0x09C7 0x09C8        ?m)                     ; VOWEL SIGN E, AI (pre)
+ (0x09CB 0x09CC ?t)                    ; VOWEL SIGN O, AU (two-part)
+ (0x09CD       ?H)                     ; SIGN VIRAMA (HASANT)
+ (0x09D7       ?p)                     ; AU LENGTH MARK
+ (0x09DC 0x09DD        ?C)                     ; LETTER RRA, RHA
+ (0x09DF       ?C)                     ; LETTER YYA
+ (0x09E0 0x09E1        ?V)                     ; LETTER VOCALIC RR, LL
+ (0x09E2 0x09E3        ?b)                     ; VOWEL SIGN L .. LL (below)
+ (0x09F0 0x09F1        ?C)                     ; LETTER RR', RR'' (assamese)
+ (0x09FE       ?x)                     ; mark #1 (internal use)
+ (0x09FF       ?y)                     ; mark #2 (internal use)
+ )
+
+;; Step 1 : Syllable identification.  Recognised syllables are quoted
+;; by the pseudo character, which is generated by the command "|" and
+;; has the category " " (space).
+(generator
+ (0
+  (cond
+   ;; Case A-C are for those syllables that end with an explicit vowel
+   ;; mark and/or a vowel modifier.  They are divided into three cases
+   ;; for the readability of regular expression.  The leading
+   ;; consonant-Hasant repetition is analysed for reordering in the
+   ;; next step.  Two-part vowel, if any, is split for
+   ;; canonicalisation.
+
+   ;; Case A : A syllable ending with a vowel modifier.
+   ;;1    23                4          5       6   7
+   ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))([mbp]*)(t)?([Aa])"
+    < |
+    (1 = =)
+    (2 set-marks)
+    (5 = *)
+    (6 split)
+    (7 =)
+    | >)
+
+   ;; Case B : A syllable ending with a two-part vowel.
+   ;;1    23                4          5
+   ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))(t)"
+    < |
+    (1 = =)
+    (2 set-marks)
+    (5 split)
+    | >)
+
+   ;; Case C : A syllable ending with other vowel.  Note that a
+   ;; two-part vowel may be expressed with two vowel marks for
+   ;; backward compatibility.
+   ;;1    23                4          5
+   ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))([mbp]+)"
+    < |
+    (1 = =)
+    (2 set-marks)
+    (5 = *)
+    | >)
+
+   ;; Case D : Ya-phalaa.  Reorder H and Y for the next step.
+   ;; The web page "Unicode FAQ for Indic Scripts and Languages"
+   ;; <http://www.unicode.org/faq/indic.html> says "it should be
+   ;; permissible for the Ya-phalla to be consistently formed by "ZWNJ
+   ;; + VIRAMA + YA".
+   ("([CRBY]n?N)(H)(Y)"
+    < |
+    (1 = *)
+    (3 =)
+    (2 =)
+    | >)
+
+   ;; Case E : No explicit vowel nor modifier.  If the syllable ends
+   ;; with a consonant, analyse it for reordering in the next step.
+   ;; Otherwise, just identify the syllable without changing anything.
+   ;;1    23                         4
+   ("(RH)?(([CRBY]n?H[NJ]?)*[CRBY]n?)(HN|HJ|H)?"
+    < |
+    (1 = =)
+    (2 set-marks)
+    (4 = *)
+    | >)
+
+   ;; Case F : Syllables that begin with an independent vowel.  An
+   ;; optional HYp sequence appears when this syllable represents the
+   ;; sound "a" in English "bat" (see the FAQ above).  If it appears,
+   ;; we reorder the H and Y for the next step.
+   ("(V)(HYp)?([aA])?"
+    < | (1 =) (2 ("HY(p)" 0x09AF 0x09CD (1 =))) (3 =) | >)
+
+   ("." =))
+  *)
+
+ ;; Set mark #1 (x) at the position where below consonants begin, and
+ ;; mark #2 (y) at the position to which below and above signs will be
+ ;; moved.
+ (set-marks
+  (cond
+   ;; Ending with Y.
+   ;;1        2            3  45        6
+   ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*)(Y)"
+    (1 = *)                            ; prebase & base
+    0x09FE                             ; mark #1
+    (4 = *)                            ; below consonants
+    0x09FF                             ; mark #2
+    (6 =)                              ; YA
+    (3 =))                             ; moved HASANT
+   ;; Ending with R or B.
+   ;;1        2            3  45
+   ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*[RB])"
+    (1 = *)                            ; prebase & base
+    0x09FE                             ; mark #1
+    (4 = *)                            ; below consonants 
+    (3 =)                              ; moved HASANT
+    0x09FF)                            ; mark #2
+   (".+"
+    = *
+    0x09FE                             ; mark #1
+    0x09FF)))                          ; mark #2
+
+ ;; Split two-part dependent vowel signs for canonicalisation.
+ (split
+  (cond
+   ((0x09CB)   0x09C7 0x09BE)
+   ((0x09CC)   0x09C7 0x09D7)))
+ )
+
+;; Step 2 : Move Reph and Matra if necessary.  From now on, we care
+;; only for those syllables that have been identified in Step 1.
+(generator
+ (0
+  (cond
+   ;; Special case: a single consonant and a Halant.
+   (" (.)xy(H[NJ]?) "
+    |
+    0x09FE
+    (1 =)
+    (2 = *)
+    0x09FE
+    |)
+
+   ;; This is the most generic pattern.  It follows Cases A, B, C and
+   ;; E in Step 1.  Now Mark #1 is used to indicate the critical part
+   ;; that requires pre-base substitution in the following steps.
+
+   ;; 1    2         3        4    5   6   7   8   9   10
+   (" (RH)?([^ xy]+)x([^ y]*)y(YH)?(m)?(b)?(p)?(A)?(a)?(HN|HJ|H)? "
+    |
+    (5 =)                              ; [Mpre]
+    ;; Actually, the nukt feature is not necessary for Bengali because
+    ;; all the necessary Nukta forms are precomposed in the Unicode
+    ;; standard.  Even if a Nukta consonant is given in the form of
+    ;; the combination of the base consonant and a Nukta sign, we can
+    ;; safely perform the composition here because it does not affect
+    ;; surrounding letters in the syllable.  The Akhand ligature
+    ;; operation is also applied here, before applying the half form
+    ;; operation because the Mukti font generates Akhand ligatures
+    ;; directly from the "C H C" sequence, not via the half form.
+    0x09FE                             ; begin Cpre & Cbase
+    (2 otf:beng=nukt,akhn)             ; {Cpre + H} + Cbase
+    0x09FE                             ; end Cpre & Cbase
+    (3 otf:beng=blwf)                  ; {Cbelow + H}
+    (6 =)                              ; [Mbelow]
+    (1 otf:beng=rphf)                  ; [Reph]
+    (8 =)                              ; [VMabove]
+    (4 otf:beng=pstf)                  ; [Cpost + H]
+    (7 =)                              ; [Mpost]
+    (9 =)                              ; [VMpost]
+    (10 = *)                           ; optional HASANT
+    |)
+
+   ;; Syllables that begin with an independent vowel (following up
+   ;; Step 1, Case F).  If a YH sequence exist, it is changed to the
+   ;; post-base form.  Syllables of this type do not require further
+   ;; modification.
+   (" (V)(YH)(.*) "
+    |
+    (1 =)
+    (2 otf:beng=pstf)
+    (3 = *)
+    |)
+
+   ;; Ya-phalaa (following up Step 1, Case D).  Remove N and change YH
+   ;; to the post base form.  Syllables of this type do not require
+   ;; further modification.
+   (" ([CBRY]n?)N(YH) "
+    |
+    (1 =)
+    (2 otf:beng=pstf)
+    |)
+
+   ("." =))
+  *))
+
+;; Step 3 : Now only those syllables that contain the pseudo character
+;; x require pre-base substition.  This is the most complicated part
+;; in this FLT.
+
+;; If the sequence "C1 H C2" makes ligature L12, L12 replaces the
+;; original sequence.
+
+;; To test the availability of such a ligature, we try to generate it
+;; using the pre-base substitute feature, then see whether succeeded
+;; or not.  In the case of failure, the pre-base feature does not
+;; change the original sequence.
+
+;; To create a ligature, the "C1 H" part must be first converted into
+;; the half form of C1.  Creating the half form of a consonant always
+;; succeeds.
+
+;; ligature(half(C1,H),C2)
+;; ==> ligature(C1half,C2)
+;; ==> L12         ; success
+;;     C1half C2   ; fail
+
+;; If the ligature is not available, the "C1 H" part must be converted
+;; into the _Halant_ (not half) form of C1.  However, there is no way
+;; to reconvert C1half into C1halant nor to revert back to "C1 H".
+;; Thus we duplicate the critical part in two different forms so that
+;; we can select the appropriate one in the next step.  The pseudo
+;; character x is used to indicate the boundaries.
+
+;; ... C1 H C2 ...  ==>  ... x C1halant C2 x L12 x ...
+
+;; If the length of the L12 part is one, ligature generation was
+;; successful.  In this case we wipe out the duplicated C1halant and
+;; C2.  Otherwise we remove L12.
+
+;; In very few cases (I found only one in the Mukti font), the "C1 H"
+;; part need to be converted into C1halant to make a ligature with C2.
+;; So when try to generate a ligature form, we apply the GSUB features
+;; "half", "haln" and "pres" in this order.
+
+(category
+ ;; C: consonant (excluding B, Y and R)
+ ;; H: HALANT
+ ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
+ ;; J: ZWJ (ZERO WIDTH JOINER)
+ ;; E: ELSE
+ ;;
+ (0x200C       ?N)                     ; ZWNJ
+ (0x200D       ?J)                     ; ZWJ
+ (0x0964 0x0965        ?E)                     ; DANDA, DOUBLE DANDA
+ (0x0980 0x09FF        ?E)                     ; ELSE
+ (0x09CD       ?H)                     ; SIGN VIRAMA (HASANT)
+ (0x0995       ?K)                     ; LETTER KA
+ (0x09B7       ?S)                     ; LETTER SSA
+ (0x09A3       ?M)                     ; LETTER NNA
+ (0x09AE       ?M)                     ; LETTER MA
+ (0x09FE       ?x)                     ; mark #1 (internal use)
+ )
+
+(generator
+ (0
+  (cond
+
+   ;; One pre-base and base.
+   ;; 1        23   4       5    6
+   (" ([^x ]*)x((.H)([^NJ]))(H)?x([^ ]*) "
+    |
+    (1 = *)
+    0x09FE                             ; x
+    (3 otf:beng=haln)                  ; C1halant
+    (4 =)                              ; C2
+    0x09FE                             ; x
+    (2 otf:beng=half,haln,pres)                ; ligature result
+    0x09FE                             ; x
+    (5 =)
+    (6 = *)
+    |)
+
+   ;; One pre-base with ZWJ.  According to the Unicode FAQ, the half
+   ;; form is forced in this case.  So we fake as if ligature
+   ;; generation was failed.
+   (" ([^x ]*)x(.H)J(.)?x([^ ]*) "
+    |
+    (1 = *)
+    0x09FE                             ; x
+    (2 otf:beng=half)                  ; C1half
+    (3 =)                              ; C2
+    0x09FE                             ; x
+    0x09FD                             ; pseudo result
+    0x09FD                             ; pseudo result
+    0x09FE                             ; x
+    (4 = *)
+    |)
+
+   ;; One pre-base possibly with ZWNJ.  Similar to above.
+   (" ([^x ]*)x(.H)N?(.)?x([^ ]*) "
+    |
+    (1 = *)
+    0x09FE                             ; x
+    (2 otf:beng=haln)                  ; C1halant
+    (3 =)                              ; C2
+    0x09FE                             ; x
+    0x09FD                             ; pseudo result
+    0x09FD                             ; pseudo result
+    0x09FE                             ; x
+    (4 = *)
+    |)
+
+   ;; Standalone base.  There is nothing more to do.
+   (" ([^x ]*)x(.)x([^ ]*) "
+    |
+    (1 = *)
+    (2 =)
+    (3 = *)
+    |)
+
+   ;; KA-SSA-NNA and KA-SSA-MA are the only pre-base ligatures that
+   ;; consist of three consonants.
+   ;; 1        23   4   5   6    7
+   (" ([^x ]*)x((KH)(SH)(M))(H)?x([^ ]*) "
+    |
+    (1 = *)
+    0x09FE                             ; x
+    (3 otf:beng=haln)                  ; KAhalant
+    (4 otf:beng=haln)                  ; SSAhalant
+    (5 =)                              ; NNA or MA
+    0x09FE                             ; x
+    (2 otf:beng=half,haln,pres)                ; ligature result
+    0x09FE                             ; x
+    (6 =)
+    (7 = *)
+    |)
+
+   ;; Two or more pre-bases plus base.  Give up.  Convert all
+   ;; pre-bases into halant form.
+   ;; 1        23             4       5
+   (" ([^x ]*)x(([^x]H[JN]?)+)([^x])?x([^ ]*) "
+    |
+    (1 = *)
+    0x09FE                             ; x
+    (2 force-haln)                     ; halant forms
+    (4 =)                              ; full form
+    0x09FE                             ; x
+    0x09FD                             ; pseudo result
+    0x09FD                             ; pseudo result
+    0x09FE                             ; x
+    (5 = *)
+    |)
+
+   ("." =))
+  *)
+
+ ;; This is to remove ZWNJ and ZWJ.  The half-form-force-effect of ZWJ
+ ;; is ignored.  Sorry.
+ (force-haln
+  (cond
+   ("([^JN]*)[JN](.*)"
+    (1 otf:beng=haln)
+    (2 force-haln))
+   (".+"
+    otf:beng=haln)))
+ )
+
+;; Step 4 : Select the appropriate representation.  Only those
+;; syllables that contain the virtual character x require
+;; modification.
+(generator
+ (0
+  (cond
+   ;; Only one glyph in the ligature section (between the second and
+   ;; the third x).  It means a ligature was successfully generated.
+   ;; C1halant and C2 (between the first and second x) are removed.
+   (" ([^x ]*)x[^x]+x(.)x([^ ]*) "
+    |
+    (1 = *)
+    (2 =)
+    (3 = *)
+    |)
+
+   ;; Otherwise halant and base forms are used.  The failed ligature
+   ;; is removed.
+   (" ([^x ]*)x([^x]+)x[^x]+x([^ ]*) "
+    |
+    (1 = *)
+    (2 = *)
+    (3 = *)
+    |)
+
+   ;; No need to care the other cases.
+   ("." =))
+  *))
+
+;; Step 5 : Select appropriate glyph variants for fine adjustments.
+;; Now the syllable boundary marks are removed so that the final step
+;; can find word boundaries.
+(generator
+ (0
+  (cond
+   (" ([^ ]+) "
+    (1 otf:beng=blws,abvs,psts,vatu))
+   ("."
+    [ otf:beng=+ ] ))
+  *)
+ )
+
+;; Step 6 : Word initial substitute.  As the syllable boundaries have
+;; been eliminated in the previous step, this rule is applied to a run
+;; of Bengali glyphs, i.e. word by word.  We finally apply the init
+;; feature to the word initial gylphs to get the final result.
+(generator
+ (0
+  ("(.)(.*)"
+   (1 otf:beng=init)
+   (2 = *))))
+
+;; Local Variables:
+;; mode: emacs-lisp
+;; End:
diff --git a/DEV-CDAC.flt b/DEV-CDAC.flt
deleted file mode 100644 (file)
index 848a880..0000000
+++ /dev/null
@@ -1,437 +0,0 @@
-;; DEV-CDAC.flt -- Font Layout Table for Devanagari (C-DAC font)
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> DEV-CDAC.flt
-;;;
-;;; For the font DVYG0ntt.ttf (developed by C-DAC, encoding is ISFOC)
-;;; to draw Devanagari script.  The font is available at:
-;;; <ul>
-;;; <li>       infopage: http://www.iiit.net/ltrc/iscii/FAQ.htm#SEC2.1
-;;; <li> download: http://www.iiit.net/ltrc/iscii/iscii_plugin_linux.tar.gz
-;;; </ul>
-
-(category
- ;; A: ANUSVARA or CANDRABINDU
- ;; C: CONSONANT (except for R)
- ;; R: LETTER RA
- ;; V: VOWEL INDEPENDENT
- ;; N: NUKTA
- ;; H: HALANT
- ;; M: MATRA (VOWEL DEPENDENT, except for I)
- ;; I: VOWEL SIGN I
- ;; S: STRESS or TONE
- ;; E: ELSE
- (0x0900               ?E)
- (0x0901 0x0902                ?A)             ; CANDRABINDU and ANUSVARA
- (0x0903               ?E)             ; SIGN VISARGA
- (0x0905 0x0914                ?V)             ; A .. AU
- (0x0915 0x0939        ?C)             ; KA .. HA
- (0x0930               ?R)             ; RA
- (0x093C               ?N)             ; NUKTA
- (0x093D               ?E)             ; AVAGRAHA
- (0x093E 0x094C                ?M)             ; VOWEL SIGN AA .. AU
- (0x093F               ?I)             ; VOWEL SIGN I
- (0x094D               ?H)             ; SIGN VIRAMA (HARANT)
- (0x0950               ?E)             ; OM
- (0x0951 0x954         ?S)             ; UDATTA .. ACUTE
- (0x0958 0x095E                ?C)             ; LETTER QA .. YYA
- (0x0960 0x0961                ?V)             ; LETTER VOCALIC RR and LL
- (0x0962 0x0963                ?M)             ; VOWEL SIGN VOCALIC L and LL
- (0x0964 0x0970                ?E)             ; DANDA .. ABBREVIATION SIGN
- )
-
-(generator
- (0
-  (cond
-   ("VA?S?"
-    < | vowel * | >)
-   ("([RC]H)*[RC](H|[IM]?A?S?)?"
-    < |
-    (cond
-     ("RH.*" ;; with preceding RA HARANT
-      (cond
-       ("(RH)([^I]*)(I)(A?S?)"         ; with I
-       (3 vowel-sign-I)
-       (2 consonant *)
-       (1 preceding-r)
-       (4 post-modifier))
-       ("(RH)([^M]*)(M)(A?S?)"         ; with M
-       (2 consonant *)
-       (3 matra)
-       (1 preceding-r)
-       (4 post-modifier))
-       ("(RH)(.*)(H)$"                 ; with last HARANT
-       (2 consonant *)
-       (1 preceding-r)
-       (3 harant))
-       ("(RH)([^AS]*)(.*)"             ; otherwise
-       (2 consonant *)
-       (1 preceding-r)
-       (3 post-modifier))))
-     ;; without preceding RA HARANT
-     ("([^I]*)(I)(A?S?)"               ; with I
-      (2 vowel-sign-I)
-      (1 consonant *)
-      (3 post-modifier))
-     ("([^M]*)(M)(A?S?)"               ; with M
-      (1 consonant *)
-      (2 matra)
-      (3 post-modifier))
-     ("(.*)(H)$"                       ; with last HARANT
-      (1 consonant *)
-      (2 harant))
-     ("([^AS]*)(.*)"                   ; otherwise
-      (1 consonant *)
-      (3 post-modifier))
-     (".*"
-      consonant *))
-    | > )
-   ("."
-    independent))
-  *)
-
- (vowel
-  (cond
-   ((0x0905)                           0x2B)
-   ((0x0906)                           0x2B 0xC9)
-   ((0x0907)                           0x3C)
-   ((0x0908 0x0901)                    0x3C 0xC7 0xC6)
-   ((0x0908)                           0x3C 0xC7)
-   ((0x0909)                           0x3D)
-   ((0x090A)                           0x3E 0xF0)
-   ((0x090B)                           0x40 0xF1)
-   ((0x090D 0x0901)                    0x42 0xC4)
-   ((0x090D 0x0902)                    0x42 0xC4)
-   ((0x090D)                           0x42 0xEC)
-   ((0x090E 0x0901)                    0x42 0xE0 0xC6)
-   ((0x090E)                           0x42 0xE0)
-   ((0x090F)                           0x42)
-   ((0x0910 0x0901)                    0x42 0xE4 0xC6)
-   ((0x0910)                           0x42 0xE4)
-   ((0x0911 0x0901)                    0x2B 0xC9 0xC4)
-   ((0x0911 0x0902)                    0x2B 0xC9 0xC4)
-   ((0x0911)                           0x2B 0xC9 0xEC)
-   ((0x0912 0x0901)                    0x2B 0xC9 0xE0 0xC6)
-   ((0x0912)                           0x2B 0xC9 0xE0)
-   ((0x0913 0x0901)                    0x2B 0xC9 0xE4 0xC6)
-   ((0x0913)                           0x2B 0xC9 0xE4)
-   ((0x0914 0x0901)                    0x2B 0xC9 0xE8 0xC6)
-   ((0x0914)                           0x2B 0xC9 0xE8)
-   ((0x0960)                           0x41 0xF1)))
-
- (vowel-sign-I
-  ((0x093F)                            0xCA))
-
- (preceding-r
-  ((0x0930 0x094D)                     0xC7))
-
- (post-modifier
-  (cond
-   ((0x0901)                           0xC4)
-   ((0x0902)                           0xC6)
-   ((0x0951)                           0x27)
-   ((0x0952)                           bc.tc 0x2D)))
-
- (harant
-  ((0x094D)                            0xC2))
-
- (consonant
-  (cond
-   ((0x0915 0x094D 0x0924)             0x48 0xF2)
-   ((0x0915 0x094D 0x0930)             0x47 0xF2)
-   ((0x0915 0x094D 0x0937 0x094D)      0x49)
-   ((0x0915 0x094D 0x0937)             0x49 0xC9)
-   ((0x0915 0x094D)                    0x43)
-   ((0x0915)                           0x45 0xF2)
-   ((0x0916 0x094D 0x0930 0x094D)      0x4C)
-   ((0x0916 0x094D 0x0930)             0x4C 0xC9)
-   ((0x0916 0x094D)                    0x4A)
-   ((0x0916)                           0x4A 0xC9)
-   ((0x0917 0x094D 0x0930 0x094D)      0x4F)
-   ((0x0917 0x094D 0x0930)             0x4F 0xC9)
-   ((0x0917 0x094D)                    0x4D)
-   ((0x0917)                           0x4D 0xC9)
-   ((0x0918 0x094D 0x0930 0x094D)      0x51)
-   ((0x0918 0x094D 0x0930)             0x51 0xC9)
-   ((0x0918 0x094D)                    0x50)
-   ((0x0918)                           0x50 0xC9)
-   ((0x0919)                           0x52 0xF3)
-   ((0x091A 0x094D 0x0930 0x094D)      0x54)
-   ((0x091A 0x094D 0x0930)             0x54 0xC9)
-   ((0x091A 0x094D)                    0x53)
-   ((0x091A)                           0x53 0xC9)
-   ((0x091B)                           0x55 0xF4)
-   ((0x091C 0x094D 0x091E 0x094D)      0x59)
-   ((0x091C 0x094D 0x091E)             0x59 0xC9)
-   ((0x091C 0x094D 0x0930 0x094D)      0x58)
-   ((0x091C 0x094D 0x0930)             0x58 0xC9)
-   ((0x091C 0x094D)                    0x56)
-   ((0x091C)                           0x56 0xC9)
-   ((0x091D 0x094D 0x0930 0x094D)      0x5B)
-   ((0x091D 0x094D 0x0930)             0x5B 0xC9)
-   ((0x091D 0x094D)                    0x5A)
-   ((0x091D)                           0x5A 0xC9)
-   ((0x091E 0x094D)                    0x5C)
-   ((0x091E)                           0x5C 0xC9)
-   ((0x091F 0x094D 0x091F)             0x5E 0xF5)
-   ((0x091F 0x094D 0x0920)             0x5F 0xF5)
-   ((0x091F)                           0x5D 0xF5)
-   ((0x0920 0x094D 0x0920)             0x61 0xF6)
-   ((0x0920)                           0x60 0xF6)
-   ((0x0921 0x094D 0x0921)             0x64 0xF7)
-   ((0x0921 0x094D 0x0922)             0x65 0xF7)
-   ((0x0921)                           0x62 0xF7)
-   ((0x0922)                           0x66 0xF8)
-   ((0x0923 0x094D)                    0x68)
-   ((0x0923)                           0x68 0xC9)
-   ((0x0924 0x094D 0x0924 0x094D)      0x6B)
-   ((0x0924 0x094D 0x0924)             0x6B 0xC9)
-   ((0x0924 0x094D 0x0930 0x094D)      0x6A)
-   ((0x0924 0x094D 0x0930)             0x6A 0xC9)
-   ((0x0924 0x094D)                    0x69)
-   ((0x0924)                           0x69 0xC9)
-   ((0x0925 0x094D 0x0930 0x094D)      0x6D)
-   ((0x0925 0x094D 0x0930)             0x6D 0xC9)
-   ((0x0925 0x094D)                    0x6C)
-   ((0x0925)                           0x6C 0xC9)
-   ((0x0926 0x0943)                    0x6F 0xF9)
-   ((0x0926 0x094D 0x0926)             0x71 0xF9)
-   ((0x0926 0x094D 0x0927)             0x72 0xF9)
-   ((0x0926 0x094D 0x092E)             0x73)
-   ((0x0926 0x094D 0x092F)             0x74)
-   ((0x0926 0x094D 0x0930)             0x70 0xF9)
-   ((0x0926 0x094D 0x0935)             0x75 0xF9)
-   ((0x0926)                           0x6E 0xF9)
-   ((0x0927 0x094D 0x0930 0x094D)      0x77)
-   ((0x0927 0x094D 0x0930)             0x77 0xC9)
-   ((0x0927 0x094D)                    0x76)
-   ((0x0927)                           0x76 0xC9)
-   ((0x0928 0x094D 0x0928 0x094D)      0x7A)
-   ((0x0928 0x094D 0x0928)             0x7A 0xC9)
-   ((0x0928 0x094D 0x0930 0x094D)      0x79 0xC9)
-   ((0x0928 0x094D 0x0930)             0x79 0xC9)
-   ((0x0928 0x094D)                    0x78)
-   ((0x0928)                           0x78 0xC9)
-   ((0x0929)                           0x78 0xC3 0xC9)
-   ((0x092A 0x094D 0x0930 0x094D)      0x7C)
-   ((0x092A 0x094D 0x0930)             0x7C 0xC9)
-   ((0x092A 0x094D)                    0x7B)
-   ((0x092A)                           0x7B 0xC9)
-   ((0x092B 0x094D 0x0930)             0xA3 0xFB)
-   ((0x092B 0x094D)                    0x7D)
-   ((0x092B)                           0xA1 0xFB)
-   ((0x092C 0x094D 0x0930 0x094D)      0xA5)
-   ((0x092C 0x094D 0x0930)             0xA5 0xC9)
-   ((0x092C 0x094D)                    0xA4)
-   ((0x092C)                           0xA4 0xC9)
-   ((0x092D 0x094D 0x0930 0x094D)      0xA7)
-   ((0x092D 0x094D 0x0930)             0xA7 0xC9)
-   ((0x092D 0x094D)                    0xA6)
-   ((0x092D)                           0xA6 0xC9)
-   ((0x092E 0x094D 0x0930 0x094D)      0xA9)
-   ((0x092E 0x094D 0x0930)             0xA9 0xC9)
-   ((0x092E 0x094D)                    0xA8)
-   ((0x092E)                           0xA8 0xC9)
-   ((0x092F 0x094D 0x0930 0x094D)      0xAB)
-   ((0x092F 0x094D 0x0930)             0xAB 0xC9)
-   ((0x092F 0x094D)                    0xAA)
-   ((0x092F)                           0xAA 0xC9)
-   ((0x0930 0x0941)                    0xAF 0xFB)
-   ((0x0930 0x0942)                    0xB0 0xFC)
-   ((0x0930)                           0xAE 0xF7)
-   ((0x0931 0x094D)                    0xAD)
-   ((0x0931)                           0xAE 0xC3 0xF7)
-   ((0x0932 0x094D)                    0xB1)
-   ((0x0932)                           0xB1 0xC9)
-   ((0x0933 0x094D)                    0xB2)
-   ((0x0933)                           0xB3)
-   ((0x0934 0x094D)                    0xB2 0xC3)
-   ((0x0934)                           0xB3 0xC3)
-   ((0x0935 0x094D 0x0930 0x094D)      0xB5)
-   ((0x0935 0x094D 0x0930)             0xB5 0xC9)
-   ((0x0935 0x094D)                    0xB4)
-   ((0x0935)                           0xB4 0xC9)
-   ((0x0936 0x094D 0x0930 0x094D)      0xB8)
-   ((0x0936 0x094D 0x0930)             0xB8 0xC9)
-   ((0x0936 0x094D 0x0935 0x094D)      0xB7)
-   ((0x0936 0x094D 0x0935)             0xB7 0xC9)
-   ((0x0936 0x094D)                    0xB6)
-   ((0x0936)                           0xB6 0xC9)
-   ((0x0937 0x094D)                    0xB9)
-   ((0x0937)                           0xB9 0xC9)
-   ((0x0938 0x094D 0x0930 0x094D)      0xBB)
-   ((0x0938 0x094D 0x0930)             0xBB 0xC9)
-   ((0x0938 0x094D)                    0xBA)
-   ((0x0938)                           0xBA 0xC9)
-   ((0x0939 0x0943)                    0xBE)
-   ((0x0939 0x094D 0x092E)             0xC0)
-   ((0x0939 0x094D 0x092F)             0xC1)
-   ((0x0939 0x094D 0x0930)             0xBF)
-   ((0x0939 0x094D)                    0xBC)
-   ((0x0939)                           0xBD)
-   ((0x094D 0x092F)                    0xAC)
-   ((0x094D 0x0930)                    0xC5)
-   ((0x0958 0x094D)                    0x44)
-   ((0x0958)                           0x46 0xF2 0xF3)
-   ((0x0959 0x094D)                    0x4B)
-   ((0x0959)                           0x4B 0xC9)
-   ((0x095A 0x094D)                    0x4E)
-   ((0x095A)                           0x4E 0xC9)
-   ((0x095B 0x094D)                    0x57)
-   ((0x095B)                           0x57 0xC9)
-   ((0x095C)                           0x63 0xF7)
-   ((0x095D)                           0x67 0xF8)
-   ((0x095E 0x094D)                    0x7E)
-   ((0x095E)                           0xA2 0xFB)
-   ((0x095F)                           0xAA 0xC3 0xC9)
-   ((0x094D)                           0xC2)))
-
- (matra
-  (cond
-   ((0x093E)                           0xC9)
-   ((0x093F 0x0901)                    0xCA 0xC6)
-   ((0x093F)                           0xCA)
-   ((0x0940 0x0901)                    0xD2 0xC6)
-   ((0x0940)                           0xD2)
-   ((0x0941)                           0xD6)
-   ((0x0942)                           0xDA)
-   ((0x0943)                           0xDE)
-   ((0x0944)                           0xDF)
-   ((0x0945)                           0xEC)
-   ((0x0946 0x0901)                    0xE0 0xC6)
-   ((0x0946)                           0xE0)
-   ((0x0947 0x0901)                    0xE4 0xC6)
-   ((0x0947)                           0xE4)
-   ((0x0948 0x0901)                    0xE8 0xC6)
-   ((0x0948)                           0xE8)
-   ((0x0949 0x0901)                    0xC9 0xC4)
-   ((0x0949 0x0902)                    0xC9 0xC4)
-   ((0x0949)                           0xC9 0xEC)
-   ((0x094A 0x0901)                    0xC9 0xE0 0xC6)
-   ((0x094A)                           0xC9 0xE0)
-   ((0x094B 0x0901)                    0xC9 0xE4 0xC6)
-   ((0x094B)                           0xC9 0xE4)
-   ((0x094C 0x0901)                    0xC9 0xE8 0xC6)
-   ((0x094C)                           0xC9 0xE8)))
-
- (independent
-  (cond
-   ((0x0900)                           0x23 0xC7) ; fake!!
-   ((0x0903)                           0x26)
-   ((0x093C)                           0xC3)
-   ((0x093D)                           0x25)
-   ((0x0950)                           0x24) ;new
-   ((0x0951)                           0x27) ;new
-   ((0x0964)                           0x2A)
-   ((0x0965)                           0x2A 0x2A)
-   ((0x0966)                           0x30)
-   ((0x0967)                           0x31)
-   ((0x0968)                           0x32)
-   ((0x0969)                           0x33)
-   ((0x096A)                           0x34)
-   ((0x096B)                           0x35)
-   ((0x096C)                           0x36)
-   ((0x096D)                           0x37)
-   ((0x096E)                           0x38)
-   ((0x096F)                           0x39)
-   ((0x094D)                           0x23 Bc>10Bl 0xC2)
-   ((0x093F)                           0xCA Bc>10Bl 0x23)
-   ((0x0940)                           0x23 0xD2)
-   )))
-
-(category
- ;; C: CONSONANTS
- ;; I: VOWEL SIGN I
- ;; R: RIGHT MODIFIER
- ;; S: SPACING
- ;; E: ELSE
- ;;
- (0x00 0xFF    ?E)
- (0x3C 0xC1    ?C)
- (0xC9         ?R)
- (0xCA 0xD1    ?I)
- (0xD2 0xD5    ?R)
- (0xF0 0xFE    ?S))
-
-(generator
- (0
-  (cond
-   (" ([^ ]*) "
-    (1
-     (cond
-      ("(I[^C]*)(CC[^R]*)(R.*)"
-       (1 rule-i-wide = *)
-       (2 rule-else = *))
-      ("(I[^C]*)(CC[^S]*)(S)(.*)"
-       (1 rule-i-wide = *)
-       (2 = *)
-       (4 rule-else = *)
-       (3 = *))
-      ("([^R]*)(R).*"
-       (0 rule-else = *))
-      ("([^S]*)(S)(.*)"
-       (1 rule-else = *)
-       (3 rule-else = *)
-       (2 = *))
-      (".*" = *))))
-   ("[^ ]*"
-    = *))
-  *)
-
- (rule-i-wide
-  (cond
-   ((0xCA 0xC6)        0xCF)
-   ((0xCA 0xC7 0xC6)   0xD1)
-   ((0xCA 0xC7)        0xD0)
-   ((0xCA)     0xCE)))
-
- (rule-else
-  (cond
-   ((0xC3 0xD6)        0xD7)
-   ((0xC3 0xDA)        0xDB)
-   ((0xC5 0xD6)        0xD8)
-   ((0xC5 0xDA)        0xDC)
-   ((0xC7 0xC4)        0xC8)
-   ((0xC7 0xC6)        0xC8)
-   ((0xCA 0xC6)        0xCB)
-   ((0xCA 0xC7 0xC6)   0xCD)
-   ((0xCA 0xC7)        0xCC)
-   ((0xD2 0xC6)        0xD3)
-   ((0xD2 0xC7 0xC6)   0xD5)
-   ((0xD2 0xC7)        0xD4)
-   ((0xE0 0xC6)        0xE1)
-   ((0xE0 0xC7 0xC6)   0xE3)
-   ((0xE0 0xC7)        0xE2)
-   ((0xE4 0xC6)        0xE5)
-   ((0xE4 0xC7 0xC6)   0xE7)
-   ((0xE4 0xC7)        0xE6)
-   ((0xE8 0xC6)        0xE9)
-   ((0xE8 0xC7 0xC6)   0xEB)
-   ((0xE8 0xC7)        0xEA)
-   ((0xEC 0xC6)        0xED)
-   ((0xEC 0xC7 0xC6)   0xEF)
-   ((0xEC 0xC7)        0xEE))))
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/DEV-OTF.flt b/DEV-OTF.flt
deleted file mode 100644 (file)
index cf426ba..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-;; DEV-OTF.flt -- Font Layout Table for Devanagari OpenType font
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> DEV-OTF.flt
-;;;
-;;; For Devanagari OpenType fonts to draw the Devanagari script.
-
-(category
- ;; C: consonant (except for R)
- ;; R: consonant RA
- ;; n: NUKTA
- ;; H: HALANT
- ;; m: MATRA (pre)
- ;; u: MATRA (above)
- ;; b: MATRA (below)
- ;; p: MATRA (post)
- ;; A: vowel modifier (above)
- ;; a: vowel modifier (post)
- ;; S: stress sign (above)
- ;; s: stress sign (below)
- ;; V: independent vowel
- ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
- ;; J: ZWJ (ZERO WIDTH JOINER)
- ;; E: ELSE
- ;;
- (#x0900 #x097F        ?E)                     ; ELSE
- (#x0901       ?A)                     ; SIGN CANDRABINDU (above)
- (#x0902       ?A)                     ; SIGN ANUSVARA (above)
- (#x0903       ?a)                     ; SIGN VISARGA (post)
- (#x0905 #x0914        ?V)                     ; LETTER A .. LETTER AU
- (#x0915 #x0939 ?C)                    ; LETTER KA .. LETTER HA
- (#x0930       ?R)                     ; LETTER RA
- (#x093C       ?n)                     ; SIGN NUKTA
- (#x093D       ?E)                     ; SIGN AVAGRAHA
- (#x093E #x094C        ?p)                     ; VOWEL SIGN (post)
- (#x093F       ?m)                     ; VOWEL SIGN I (pre)
- (#x0941 #x0944        ?b)                     ; VOWEL SIGN (below)
- (#x0945 #x0948        ?u)                     ; VOWEL SIGN (above)
- (#x094D       ?H)                     ; SIGN VIRAMA (HALANT)
- (#x0950       ?E)                     ; OM
- (#x0951 #x0954        ?S)                 ; STRESS SIGN or TONE MARK (above)
- (#x0952       ?s)                 ; STRESS SIGN or TONE MARK (below)
- (#x0958 #x095E        ?C)                     ; LETTER QA .. LETTER YYA
- (#x0960       ?V)                     ; LETTER VOCALIC RR
- (#x0961       ?V)                     ; LETTER VOCALIC LL
- (#x0962 #x0963        ?b)                     ; VOWEL SIGN (below)
- (#x0964 #x0970        ?E)                     ; DANDA .. ABBREVIATION SIGN
- (#x200C       ?N)                     ; ZWNJ
- (#x200D       ?J)                     ; ZWJ
- (#x097D       ?x)             ; internally used tag to indicate Reph
- (#x097E       ?y)             ; internally used tag to indicate Mpost
- (#x097F       ?z)             ; internally used tag to indicate Cbase
- )
-
-;; The first stage is to extract a syllable and re-order characters in
-;; it.
-(generator
- (0
-  (cond
-   ;; If [CR]H is followed by ZWNJ/ZWJ, move ZWNJ/ZWJ to the head so
-   ;; that the later stages find it quickly.
-   ("([CR]n?H)([NJ])"
-    < | (2 =) (1 = *) | > )
-
-   ;; A syllable starting with RH (Reph) and ending with a vowel
-   ;; and/or a vowel modifier.
-   ("(RH)(([CR]n?H)*[CR]n?)([mubp][Aa]?[Ss]?|[Aa][Ss]?|[Ss])"
-    < | (1 #x097D = =) (2 move-base-Halant) (4 reorder-post-base) | >)
-
-   ;; A syllable starting with RH (Reph) and ending without a vowel
-   ;; nor a vowel modifier.
-   ("(RH)(([CR]n?H)*[CR]n?)(H)?"
-    < | (1 #x097D = =) (2 move-base-Halant) (4 =) | >)
-
-   ;; A syllable starting with the other consonant and ending with a
-   ;; vowel and/or a vowel modifier.
-   ("(([CR]n?H)*[CR]n?)([mubp][Aa]?[Ss]?|[Aa][Ss]?|[Ss])"
-    < | (1 move-base-Halant) (3 reorder-post-base) | >)
-
-   ;; A syllable starting with the other consonant and ending without
-   ;; a vowel nor a vowel modifier.
-   ("(([CR]n?H)*[CR]n?)(H)?"
-    < | (1 move-base-Halant) (3 =) | >)
-
-   ;; A syllable starting with an independent vowel.
-   ("V[Aa]?[Ss]?"
-    < | = * | > )
-
-   ("." =))
-  *)
-
- ;; Move Halant on a base consonant to the tail.
- (move-base-Halant
-  (cond
-   ("(([CR]n?H)*[CR]n?)(H)(R)"
-    (1 = *)
-    (4 =)
-    (3 =))
-   (".*"
-    = *)))
-
- ;; Re-order post modifiers.
- (reorder-post-base
-  ;; 12   3   4   5    67   8     9   10
-  ("((m)|(u)|(b)|(p))?((A)|(a))?((S)|(s))?$"
-   (2 =) (4 =) (10 =) (3 =) (5 =)
-   #x097E
-   (7 =) (9 =) (8))))
-
-;; The second stage is to reorder Reph and Mpre.
-(generator
- (0
-  (cond
-   (" [NJ]([^ ]*) "
-    = *)
-   (" (x(..))([CRnH]*) "
-    | (3 = *) (2 otf:deva=rphf) |)
-   (" (x(..))([CRnH]*)(m?)([^y]*)y([^ ]*) "
-    | (4 =) (3 = *) (5 = *) (2 otf:deva=rphf) (6 = *) |)
-   (" ([CRnH][CRnH]*) "
-    = *)
-   (" ([CRnH][CRnH]*)(m?)([^y]*)y([^ ]*) "
-    | (2 =) (1 = *) (3 = *) (4 = *) |)
-   ("." =))
-  *))
-
-;; The third stage is to drive OTF tables.  For the moment, we use
-;; the default LangSys, and try all GSUB/GPOS features except for the
-;; sequence followed by ZWNJ in which case try "nukt" and "haln"
-;; features only.
-(generator
- (0
-  (cond
-   (" N([^ ]*) "
-    (1 otf:deva=nukt,haln))
-
-   (" J([^ ]*) "
-    (1 otf:deva))
-
-   (" ([^ ]*)(CH) "
-    (1 otf:deva=~rphf,*) (2 otf:deva=haln))
-
-   (" ([^ ]*) "
-    (1 otf:deva=~rphf,*))
-
-   ("."
-    \[ otf:deva=+ \] ))
-  *))
-
-;; Local Variables:
-;; mode: emacs-lisp
-;; End:
diff --git a/DEVA-CDAC.flt b/DEVA-CDAC.flt
new file mode 100644 (file)
index 0000000..848a880
--- /dev/null
@@ -0,0 +1,437 @@
+;; DEV-CDAC.flt -- Font Layout Table for Devanagari (C-DAC font)
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> DEV-CDAC.flt
+;;;
+;;; For the font DVYG0ntt.ttf (developed by C-DAC, encoding is ISFOC)
+;;; to draw Devanagari script.  The font is available at:
+;;; <ul>
+;;; <li>       infopage: http://www.iiit.net/ltrc/iscii/FAQ.htm#SEC2.1
+;;; <li> download: http://www.iiit.net/ltrc/iscii/iscii_plugin_linux.tar.gz
+;;; </ul>
+
+(category
+ ;; A: ANUSVARA or CANDRABINDU
+ ;; C: CONSONANT (except for R)
+ ;; R: LETTER RA
+ ;; V: VOWEL INDEPENDENT
+ ;; N: NUKTA
+ ;; H: HALANT
+ ;; M: MATRA (VOWEL DEPENDENT, except for I)
+ ;; I: VOWEL SIGN I
+ ;; S: STRESS or TONE
+ ;; E: ELSE
+ (0x0900               ?E)
+ (0x0901 0x0902                ?A)             ; CANDRABINDU and ANUSVARA
+ (0x0903               ?E)             ; SIGN VISARGA
+ (0x0905 0x0914                ?V)             ; A .. AU
+ (0x0915 0x0939        ?C)             ; KA .. HA
+ (0x0930               ?R)             ; RA
+ (0x093C               ?N)             ; NUKTA
+ (0x093D               ?E)             ; AVAGRAHA
+ (0x093E 0x094C                ?M)             ; VOWEL SIGN AA .. AU
+ (0x093F               ?I)             ; VOWEL SIGN I
+ (0x094D               ?H)             ; SIGN VIRAMA (HARANT)
+ (0x0950               ?E)             ; OM
+ (0x0951 0x954         ?S)             ; UDATTA .. ACUTE
+ (0x0958 0x095E                ?C)             ; LETTER QA .. YYA
+ (0x0960 0x0961                ?V)             ; LETTER VOCALIC RR and LL
+ (0x0962 0x0963                ?M)             ; VOWEL SIGN VOCALIC L and LL
+ (0x0964 0x0970                ?E)             ; DANDA .. ABBREVIATION SIGN
+ )
+
+(generator
+ (0
+  (cond
+   ("VA?S?"
+    < | vowel * | >)
+   ("([RC]H)*[RC](H|[IM]?A?S?)?"
+    < |
+    (cond
+     ("RH.*" ;; with preceding RA HARANT
+      (cond
+       ("(RH)([^I]*)(I)(A?S?)"         ; with I
+       (3 vowel-sign-I)
+       (2 consonant *)
+       (1 preceding-r)
+       (4 post-modifier))
+       ("(RH)([^M]*)(M)(A?S?)"         ; with M
+       (2 consonant *)
+       (3 matra)
+       (1 preceding-r)
+       (4 post-modifier))
+       ("(RH)(.*)(H)$"                 ; with last HARANT
+       (2 consonant *)
+       (1 preceding-r)
+       (3 harant))
+       ("(RH)([^AS]*)(.*)"             ; otherwise
+       (2 consonant *)
+       (1 preceding-r)
+       (3 post-modifier))))
+     ;; without preceding RA HARANT
+     ("([^I]*)(I)(A?S?)"               ; with I
+      (2 vowel-sign-I)
+      (1 consonant *)
+      (3 post-modifier))
+     ("([^M]*)(M)(A?S?)"               ; with M
+      (1 consonant *)
+      (2 matra)
+      (3 post-modifier))
+     ("(.*)(H)$"                       ; with last HARANT
+      (1 consonant *)
+      (2 harant))
+     ("([^AS]*)(.*)"                   ; otherwise
+      (1 consonant *)
+      (3 post-modifier))
+     (".*"
+      consonant *))
+    | > )
+   ("."
+    independent))
+  *)
+
+ (vowel
+  (cond
+   ((0x0905)                           0x2B)
+   ((0x0906)                           0x2B 0xC9)
+   ((0x0907)                           0x3C)
+   ((0x0908 0x0901)                    0x3C 0xC7 0xC6)
+   ((0x0908)                           0x3C 0xC7)
+   ((0x0909)                           0x3D)
+   ((0x090A)                           0x3E 0xF0)
+   ((0x090B)                           0x40 0xF1)
+   ((0x090D 0x0901)                    0x42 0xC4)
+   ((0x090D 0x0902)                    0x42 0xC4)
+   ((0x090D)                           0x42 0xEC)
+   ((0x090E 0x0901)                    0x42 0xE0 0xC6)
+   ((0x090E)                           0x42 0xE0)
+   ((0x090F)                           0x42)
+   ((0x0910 0x0901)                    0x42 0xE4 0xC6)
+   ((0x0910)                           0x42 0xE4)
+   ((0x0911 0x0901)                    0x2B 0xC9 0xC4)
+   ((0x0911 0x0902)                    0x2B 0xC9 0xC4)
+   ((0x0911)                           0x2B 0xC9 0xEC)
+   ((0x0912 0x0901)                    0x2B 0xC9 0xE0 0xC6)
+   ((0x0912)                           0x2B 0xC9 0xE0)
+   ((0x0913 0x0901)                    0x2B 0xC9 0xE4 0xC6)
+   ((0x0913)                           0x2B 0xC9 0xE4)
+   ((0x0914 0x0901)                    0x2B 0xC9 0xE8 0xC6)
+   ((0x0914)                           0x2B 0xC9 0xE8)
+   ((0x0960)                           0x41 0xF1)))
+
+ (vowel-sign-I
+  ((0x093F)                            0xCA))
+
+ (preceding-r
+  ((0x0930 0x094D)                     0xC7))
+
+ (post-modifier
+  (cond
+   ((0x0901)                           0xC4)
+   ((0x0902)                           0xC6)
+   ((0x0951)                           0x27)
+   ((0x0952)                           bc.tc 0x2D)))
+
+ (harant
+  ((0x094D)                            0xC2))
+
+ (consonant
+  (cond
+   ((0x0915 0x094D 0x0924)             0x48 0xF2)
+   ((0x0915 0x094D 0x0930)             0x47 0xF2)
+   ((0x0915 0x094D 0x0937 0x094D)      0x49)
+   ((0x0915 0x094D 0x0937)             0x49 0xC9)
+   ((0x0915 0x094D)                    0x43)
+   ((0x0915)                           0x45 0xF2)
+   ((0x0916 0x094D 0x0930 0x094D)      0x4C)
+   ((0x0916 0x094D 0x0930)             0x4C 0xC9)
+   ((0x0916 0x094D)                    0x4A)
+   ((0x0916)                           0x4A 0xC9)
+   ((0x0917 0x094D 0x0930 0x094D)      0x4F)
+   ((0x0917 0x094D 0x0930)             0x4F 0xC9)
+   ((0x0917 0x094D)                    0x4D)
+   ((0x0917)                           0x4D 0xC9)
+   ((0x0918 0x094D 0x0930 0x094D)      0x51)
+   ((0x0918 0x094D 0x0930)             0x51 0xC9)
+   ((0x0918 0x094D)                    0x50)
+   ((0x0918)                           0x50 0xC9)
+   ((0x0919)                           0x52 0xF3)
+   ((0x091A 0x094D 0x0930 0x094D)      0x54)
+   ((0x091A 0x094D 0x0930)             0x54 0xC9)
+   ((0x091A 0x094D)                    0x53)
+   ((0x091A)                           0x53 0xC9)
+   ((0x091B)                           0x55 0xF4)
+   ((0x091C 0x094D 0x091E 0x094D)      0x59)
+   ((0x091C 0x094D 0x091E)             0x59 0xC9)
+   ((0x091C 0x094D 0x0930 0x094D)      0x58)
+   ((0x091C 0x094D 0x0930)             0x58 0xC9)
+   ((0x091C 0x094D)                    0x56)
+   ((0x091C)                           0x56 0xC9)
+   ((0x091D 0x094D 0x0930 0x094D)      0x5B)
+   ((0x091D 0x094D 0x0930)             0x5B 0xC9)
+   ((0x091D 0x094D)                    0x5A)
+   ((0x091D)                           0x5A 0xC9)
+   ((0x091E 0x094D)                    0x5C)
+   ((0x091E)                           0x5C 0xC9)
+   ((0x091F 0x094D 0x091F)             0x5E 0xF5)
+   ((0x091F 0x094D 0x0920)             0x5F 0xF5)
+   ((0x091F)                           0x5D 0xF5)
+   ((0x0920 0x094D 0x0920)             0x61 0xF6)
+   ((0x0920)                           0x60 0xF6)
+   ((0x0921 0x094D 0x0921)             0x64 0xF7)
+   ((0x0921 0x094D 0x0922)             0x65 0xF7)
+   ((0x0921)                           0x62 0xF7)
+   ((0x0922)                           0x66 0xF8)
+   ((0x0923 0x094D)                    0x68)
+   ((0x0923)                           0x68 0xC9)
+   ((0x0924 0x094D 0x0924 0x094D)      0x6B)
+   ((0x0924 0x094D 0x0924)             0x6B 0xC9)
+   ((0x0924 0x094D 0x0930 0x094D)      0x6A)
+   ((0x0924 0x094D 0x0930)             0x6A 0xC9)
+   ((0x0924 0x094D)                    0x69)
+   ((0x0924)                           0x69 0xC9)
+   ((0x0925 0x094D 0x0930 0x094D)      0x6D)
+   ((0x0925 0x094D 0x0930)             0x6D 0xC9)
+   ((0x0925 0x094D)                    0x6C)
+   ((0x0925)                           0x6C 0xC9)
+   ((0x0926 0x0943)                    0x6F 0xF9)
+   ((0x0926 0x094D 0x0926)             0x71 0xF9)
+   ((0x0926 0x094D 0x0927)             0x72 0xF9)
+   ((0x0926 0x094D 0x092E)             0x73)
+   ((0x0926 0x094D 0x092F)             0x74)
+   ((0x0926 0x094D 0x0930)             0x70 0xF9)
+   ((0x0926 0x094D 0x0935)             0x75 0xF9)
+   ((0x0926)                           0x6E 0xF9)
+   ((0x0927 0x094D 0x0930 0x094D)      0x77)
+   ((0x0927 0x094D 0x0930)             0x77 0xC9)
+   ((0x0927 0x094D)                    0x76)
+   ((0x0927)                           0x76 0xC9)
+   ((0x0928 0x094D 0x0928 0x094D)      0x7A)
+   ((0x0928 0x094D 0x0928)             0x7A 0xC9)
+   ((0x0928 0x094D 0x0930 0x094D)      0x79 0xC9)
+   ((0x0928 0x094D 0x0930)             0x79 0xC9)
+   ((0x0928 0x094D)                    0x78)
+   ((0x0928)                           0x78 0xC9)
+   ((0x0929)                           0x78 0xC3 0xC9)
+   ((0x092A 0x094D 0x0930 0x094D)      0x7C)
+   ((0x092A 0x094D 0x0930)             0x7C 0xC9)
+   ((0x092A 0x094D)                    0x7B)
+   ((0x092A)                           0x7B 0xC9)
+   ((0x092B 0x094D 0x0930)             0xA3 0xFB)
+   ((0x092B 0x094D)                    0x7D)
+   ((0x092B)                           0xA1 0xFB)
+   ((0x092C 0x094D 0x0930 0x094D)      0xA5)
+   ((0x092C 0x094D 0x0930)             0xA5 0xC9)
+   ((0x092C 0x094D)                    0xA4)
+   ((0x092C)                           0xA4 0xC9)
+   ((0x092D 0x094D 0x0930 0x094D)      0xA7)
+   ((0x092D 0x094D 0x0930)             0xA7 0xC9)
+   ((0x092D 0x094D)                    0xA6)
+   ((0x092D)                           0xA6 0xC9)
+   ((0x092E 0x094D 0x0930 0x094D)      0xA9)
+   ((0x092E 0x094D 0x0930)             0xA9 0xC9)
+   ((0x092E 0x094D)                    0xA8)
+   ((0x092E)                           0xA8 0xC9)
+   ((0x092F 0x094D 0x0930 0x094D)      0xAB)
+   ((0x092F 0x094D 0x0930)             0xAB 0xC9)
+   ((0x092F 0x094D)                    0xAA)
+   ((0x092F)                           0xAA 0xC9)
+   ((0x0930 0x0941)                    0xAF 0xFB)
+   ((0x0930 0x0942)                    0xB0 0xFC)
+   ((0x0930)                           0xAE 0xF7)
+   ((0x0931 0x094D)                    0xAD)
+   ((0x0931)                           0xAE 0xC3 0xF7)
+   ((0x0932 0x094D)                    0xB1)
+   ((0x0932)                           0xB1 0xC9)
+   ((0x0933 0x094D)                    0xB2)
+   ((0x0933)                           0xB3)
+   ((0x0934 0x094D)                    0xB2 0xC3)
+   ((0x0934)                           0xB3 0xC3)
+   ((0x0935 0x094D 0x0930 0x094D)      0xB5)
+   ((0x0935 0x094D 0x0930)             0xB5 0xC9)
+   ((0x0935 0x094D)                    0xB4)
+   ((0x0935)                           0xB4 0xC9)
+   ((0x0936 0x094D 0x0930 0x094D)      0xB8)
+   ((0x0936 0x094D 0x0930)             0xB8 0xC9)
+   ((0x0936 0x094D 0x0935 0x094D)      0xB7)
+   ((0x0936 0x094D 0x0935)             0xB7 0xC9)
+   ((0x0936 0x094D)                    0xB6)
+   ((0x0936)                           0xB6 0xC9)
+   ((0x0937 0x094D)                    0xB9)
+   ((0x0937)                           0xB9 0xC9)
+   ((0x0938 0x094D 0x0930 0x094D)      0xBB)
+   ((0x0938 0x094D 0x0930)             0xBB 0xC9)
+   ((0x0938 0x094D)                    0xBA)
+   ((0x0938)                           0xBA 0xC9)
+   ((0x0939 0x0943)                    0xBE)
+   ((0x0939 0x094D 0x092E)             0xC0)
+   ((0x0939 0x094D 0x092F)             0xC1)
+   ((0x0939 0x094D 0x0930)             0xBF)
+   ((0x0939 0x094D)                    0xBC)
+   ((0x0939)                           0xBD)
+   ((0x094D 0x092F)                    0xAC)
+   ((0x094D 0x0930)                    0xC5)
+   ((0x0958 0x094D)                    0x44)
+   ((0x0958)                           0x46 0xF2 0xF3)
+   ((0x0959 0x094D)                    0x4B)
+   ((0x0959)                           0x4B 0xC9)
+   ((0x095A 0x094D)                    0x4E)
+   ((0x095A)                           0x4E 0xC9)
+   ((0x095B 0x094D)                    0x57)
+   ((0x095B)                           0x57 0xC9)
+   ((0x095C)                           0x63 0xF7)
+   ((0x095D)                           0x67 0xF8)
+   ((0x095E 0x094D)                    0x7E)
+   ((0x095E)                           0xA2 0xFB)
+   ((0x095F)                           0xAA 0xC3 0xC9)
+   ((0x094D)                           0xC2)))
+
+ (matra
+  (cond
+   ((0x093E)                           0xC9)
+   ((0x093F 0x0901)                    0xCA 0xC6)
+   ((0x093F)                           0xCA)
+   ((0x0940 0x0901)                    0xD2 0xC6)
+   ((0x0940)                           0xD2)
+   ((0x0941)                           0xD6)
+   ((0x0942)                           0xDA)
+   ((0x0943)                           0xDE)
+   ((0x0944)                           0xDF)
+   ((0x0945)                           0xEC)
+   ((0x0946 0x0901)                    0xE0 0xC6)
+   ((0x0946)                           0xE0)
+   ((0x0947 0x0901)                    0xE4 0xC6)
+   ((0x0947)                           0xE4)
+   ((0x0948 0x0901)                    0xE8 0xC6)
+   ((0x0948)                           0xE8)
+   ((0x0949 0x0901)                    0xC9 0xC4)
+   ((0x0949 0x0902)                    0xC9 0xC4)
+   ((0x0949)                           0xC9 0xEC)
+   ((0x094A 0x0901)                    0xC9 0xE0 0xC6)
+   ((0x094A)                           0xC9 0xE0)
+   ((0x094B 0x0901)                    0xC9 0xE4 0xC6)
+   ((0x094B)                           0xC9 0xE4)
+   ((0x094C 0x0901)                    0xC9 0xE8 0xC6)
+   ((0x094C)                           0xC9 0xE8)))
+
+ (independent
+  (cond
+   ((0x0900)                           0x23 0xC7) ; fake!!
+   ((0x0903)                           0x26)
+   ((0x093C)                           0xC3)
+   ((0x093D)                           0x25)
+   ((0x0950)                           0x24) ;new
+   ((0x0951)                           0x27) ;new
+   ((0x0964)                           0x2A)
+   ((0x0965)                           0x2A 0x2A)
+   ((0x0966)                           0x30)
+   ((0x0967)                           0x31)
+   ((0x0968)                           0x32)
+   ((0x0969)                           0x33)
+   ((0x096A)                           0x34)
+   ((0x096B)                           0x35)
+   ((0x096C)                           0x36)
+   ((0x096D)                           0x37)
+   ((0x096E)                           0x38)
+   ((0x096F)                           0x39)
+   ((0x094D)                           0x23 Bc>10Bl 0xC2)
+   ((0x093F)                           0xCA Bc>10Bl 0x23)
+   ((0x0940)                           0x23 0xD2)
+   )))
+
+(category
+ ;; C: CONSONANTS
+ ;; I: VOWEL SIGN I
+ ;; R: RIGHT MODIFIER
+ ;; S: SPACING
+ ;; E: ELSE
+ ;;
+ (0x00 0xFF    ?E)
+ (0x3C 0xC1    ?C)
+ (0xC9         ?R)
+ (0xCA 0xD1    ?I)
+ (0xD2 0xD5    ?R)
+ (0xF0 0xFE    ?S))
+
+(generator
+ (0
+  (cond
+   (" ([^ ]*) "
+    (1
+     (cond
+      ("(I[^C]*)(CC[^R]*)(R.*)"
+       (1 rule-i-wide = *)
+       (2 rule-else = *))
+      ("(I[^C]*)(CC[^S]*)(S)(.*)"
+       (1 rule-i-wide = *)
+       (2 = *)
+       (4 rule-else = *)
+       (3 = *))
+      ("([^R]*)(R).*"
+       (0 rule-else = *))
+      ("([^S]*)(S)(.*)"
+       (1 rule-else = *)
+       (3 rule-else = *)
+       (2 = *))
+      (".*" = *))))
+   ("[^ ]*"
+    = *))
+  *)
+
+ (rule-i-wide
+  (cond
+   ((0xCA 0xC6)        0xCF)
+   ((0xCA 0xC7 0xC6)   0xD1)
+   ((0xCA 0xC7)        0xD0)
+   ((0xCA)     0xCE)))
+
+ (rule-else
+  (cond
+   ((0xC3 0xD6)        0xD7)
+   ((0xC3 0xDA)        0xDB)
+   ((0xC5 0xD6)        0xD8)
+   ((0xC5 0xDA)        0xDC)
+   ((0xC7 0xC4)        0xC8)
+   ((0xC7 0xC6)        0xC8)
+   ((0xCA 0xC6)        0xCB)
+   ((0xCA 0xC7 0xC6)   0xCD)
+   ((0xCA 0xC7)        0xCC)
+   ((0xD2 0xC6)        0xD3)
+   ((0xD2 0xC7 0xC6)   0xD5)
+   ((0xD2 0xC7)        0xD4)
+   ((0xE0 0xC6)        0xE1)
+   ((0xE0 0xC7 0xC6)   0xE3)
+   ((0xE0 0xC7)        0xE2)
+   ((0xE4 0xC6)        0xE5)
+   ((0xE4 0xC7 0xC6)   0xE7)
+   ((0xE4 0xC7)        0xE6)
+   ((0xE8 0xC6)        0xE9)
+   ((0xE8 0xC7 0xC6)   0xEB)
+   ((0xE8 0xC7)        0xEA)
+   ((0xEC 0xC6)        0xED)
+   ((0xEC 0xC7 0xC6)   0xEF)
+   ((0xEC 0xC7)        0xEE))))
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/DEVA-OTF.flt b/DEVA-OTF.flt
new file mode 100644 (file)
index 0000000..cf426ba
--- /dev/null
@@ -0,0 +1,172 @@
+;; DEV-OTF.flt -- Font Layout Table for Devanagari OpenType font
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> DEV-OTF.flt
+;;;
+;;; For Devanagari OpenType fonts to draw the Devanagari script.
+
+(category
+ ;; C: consonant (except for R)
+ ;; R: consonant RA
+ ;; n: NUKTA
+ ;; H: HALANT
+ ;; m: MATRA (pre)
+ ;; u: MATRA (above)
+ ;; b: MATRA (below)
+ ;; p: MATRA (post)
+ ;; A: vowel modifier (above)
+ ;; a: vowel modifier (post)
+ ;; S: stress sign (above)
+ ;; s: stress sign (below)
+ ;; V: independent vowel
+ ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
+ ;; J: ZWJ (ZERO WIDTH JOINER)
+ ;; E: ELSE
+ ;;
+ (#x0900 #x097F        ?E)                     ; ELSE
+ (#x0901       ?A)                     ; SIGN CANDRABINDU (above)
+ (#x0902       ?A)                     ; SIGN ANUSVARA (above)
+ (#x0903       ?a)                     ; SIGN VISARGA (post)
+ (#x0905 #x0914        ?V)                     ; LETTER A .. LETTER AU
+ (#x0915 #x0939 ?C)                    ; LETTER KA .. LETTER HA
+ (#x0930       ?R)                     ; LETTER RA
+ (#x093C       ?n)                     ; SIGN NUKTA
+ (#x093D       ?E)                     ; SIGN AVAGRAHA
+ (#x093E #x094C        ?p)                     ; VOWEL SIGN (post)
+ (#x093F       ?m)                     ; VOWEL SIGN I (pre)
+ (#x0941 #x0944        ?b)                     ; VOWEL SIGN (below)
+ (#x0945 #x0948        ?u)                     ; VOWEL SIGN (above)
+ (#x094D       ?H)                     ; SIGN VIRAMA (HALANT)
+ (#x0950       ?E)                     ; OM
+ (#x0951 #x0954        ?S)                 ; STRESS SIGN or TONE MARK (above)
+ (#x0952       ?s)                 ; STRESS SIGN or TONE MARK (below)
+ (#x0958 #x095E        ?C)                     ; LETTER QA .. LETTER YYA
+ (#x0960       ?V)                     ; LETTER VOCALIC RR
+ (#x0961       ?V)                     ; LETTER VOCALIC LL
+ (#x0962 #x0963        ?b)                     ; VOWEL SIGN (below)
+ (#x0964 #x0970        ?E)                     ; DANDA .. ABBREVIATION SIGN
+ (#x200C       ?N)                     ; ZWNJ
+ (#x200D       ?J)                     ; ZWJ
+ (#x097D       ?x)             ; internally used tag to indicate Reph
+ (#x097E       ?y)             ; internally used tag to indicate Mpost
+ (#x097F       ?z)             ; internally used tag to indicate Cbase
+ )
+
+;; The first stage is to extract a syllable and re-order characters in
+;; it.
+(generator
+ (0
+  (cond
+   ;; If [CR]H is followed by ZWNJ/ZWJ, move ZWNJ/ZWJ to the head so
+   ;; that the later stages find it quickly.
+   ("([CR]n?H)([NJ])"
+    < | (2 =) (1 = *) | > )
+
+   ;; A syllable starting with RH (Reph) and ending with a vowel
+   ;; and/or a vowel modifier.
+   ("(RH)(([CR]n?H)*[CR]n?)([mubp][Aa]?[Ss]?|[Aa][Ss]?|[Ss])"
+    < | (1 #x097D = =) (2 move-base-Halant) (4 reorder-post-base) | >)
+
+   ;; A syllable starting with RH (Reph) and ending without a vowel
+   ;; nor a vowel modifier.
+   ("(RH)(([CR]n?H)*[CR]n?)(H)?"
+    < | (1 #x097D = =) (2 move-base-Halant) (4 =) | >)
+
+   ;; A syllable starting with the other consonant and ending with a
+   ;; vowel and/or a vowel modifier.
+   ("(([CR]n?H)*[CR]n?)([mubp][Aa]?[Ss]?|[Aa][Ss]?|[Ss])"
+    < | (1 move-base-Halant) (3 reorder-post-base) | >)
+
+   ;; A syllable starting with the other consonant and ending without
+   ;; a vowel nor a vowel modifier.
+   ("(([CR]n?H)*[CR]n?)(H)?"
+    < | (1 move-base-Halant) (3 =) | >)
+
+   ;; A syllable starting with an independent vowel.
+   ("V[Aa]?[Ss]?"
+    < | = * | > )
+
+   ("." =))
+  *)
+
+ ;; Move Halant on a base consonant to the tail.
+ (move-base-Halant
+  (cond
+   ("(([CR]n?H)*[CR]n?)(H)(R)"
+    (1 = *)
+    (4 =)
+    (3 =))
+   (".*"
+    = *)))
+
+ ;; Re-order post modifiers.
+ (reorder-post-base
+  ;; 12   3   4   5    67   8     9   10
+  ("((m)|(u)|(b)|(p))?((A)|(a))?((S)|(s))?$"
+   (2 =) (4 =) (10 =) (3 =) (5 =)
+   #x097E
+   (7 =) (9 =) (8))))
+
+;; The second stage is to reorder Reph and Mpre.
+(generator
+ (0
+  (cond
+   (" [NJ]([^ ]*) "
+    = *)
+   (" (x(..))([CRnH]*) "
+    | (3 = *) (2 otf:deva=rphf) |)
+   (" (x(..))([CRnH]*)(m?)([^y]*)y([^ ]*) "
+    | (4 =) (3 = *) (5 = *) (2 otf:deva=rphf) (6 = *) |)
+   (" ([CRnH][CRnH]*) "
+    = *)
+   (" ([CRnH][CRnH]*)(m?)([^y]*)y([^ ]*) "
+    | (2 =) (1 = *) (3 = *) (4 = *) |)
+   ("." =))
+  *))
+
+;; The third stage is to drive OTF tables.  For the moment, we use
+;; the default LangSys, and try all GSUB/GPOS features except for the
+;; sequence followed by ZWNJ in which case try "nukt" and "haln"
+;; features only.
+(generator
+ (0
+  (cond
+   (" N([^ ]*) "
+    (1 otf:deva=nukt,haln))
+
+   (" J([^ ]*) "
+    (1 otf:deva))
+
+   (" ([^ ]*)(CH) "
+    (1 otf:deva=~rphf,*) (2 otf:deva=haln))
+
+   (" ([^ ]*) "
+    (1 otf:deva=~rphf,*))
+
+   ("."
+    \[ otf:deva=+ \] ))
+  *))
+
+;; Local Variables:
+;; mode: emacs-lisp
+;; End:
diff --git a/GUJ-OTF.flt b/GUJ-OTF.flt
deleted file mode 100644 (file)
index ea82498..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-;; GUJ-OTF.flt -- Font Layout Table for Gujarati OpenType fonts
-;; Copyright (C) 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> GUJ-OTF.flt
-;;;
-;;; For Gujarati OpenType fonts to draw the Gujarati script.
-;;; Tested with padmaa-Medium-1.5.ttf <http://www.indictrans.org/>
-
-(category
- ;; C: general consonant
- ;; R: RA
- ;; V: independent vowel
- ;; H: HALANT
- ;; m: MATRA (pre)
- ;; u: MATRA (above)
- ;; b: MATRA (below)
- ;; p: MATRA (post)
- ;; A: vowel modifier (above)
- ;; a: vowel modifier (post)
- ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
- ;; J: ZWJ (ZERO WIDTH JOINER)
- ;; E: ELSE
- ;;
- (0x200C       ?N)                     ; ZWNJ
- (0x200D       ?J)                     ; ZWJ
- (0x0964       ?E)                     ; DANDA
- (0x0965       ?E)                     ; DOUBLE DANDA
- (0x0A80 0x0AFF        ?E)                     ; ELSE
- (0x0A81       ?A)                     ; SIGN CANDRABINDU
- (0x0A82       ?A)                     ; SIGN ANUSVARA
- (0x0A83       ?a)                     ; SIGN VISARGA
- (0x0A85 0x0A94        ?V)                     ; LETTER AA .. LETTER AU
- (0x0A95 0x0AB9 ?C)                    ; LETTER KA .. LETTER HA
- (0x0AB0       ?R)                     ; LETTER RA
- (0x0ABC       ?n)                     ; SIGN NUKTA
- (0x0ABE       ?p)                     ; VOWEL SIGN AA (post)
- (0x0ABF       ?m)                     ; VOWEL SIGN I (pre)
- (0x0AC0       ?p)                     ; VOWEL SIGN II (post)
- (0x0AC1 0x0AC4        ?b)                     ; VOWEL SIGN U, UU, R, RR (below)
- (0x0AC5 0x0AC8        ?u)                     ; VOWEL SIGN CANDRA E, E, AI (above)
- (0x0AC9 0x0ACC        ?p)                     ; VOWEL SIGN CANDRA O, O, AU (post)
- (0x0ACD       ?H)                     ; SIGN VIRAMA (HALANT)
- (0x0AE0 0x0AE1        ?V)                     ; LETTER VOCALIC RR, LL
- (0x0AE2 0x0AE3        ?b)                     ; VOWEL SIGN VOCALIC RR, LL (below)
- (0x0AFF       ?X)                     ; internal use
- )
-
-;; Step 1 : Syllable identification, Reph and base consonant movements.
-(generator
- (0
-  (cond
-   ;; A syllable ending with a vowel sign and/or a vowel modifier.
-   ("(([CR]n?H)*[CR]n?)([mubp][Aa]?|[Aa])"
-    < | (1 move-reph-vattu) (3 = *) | >)
-
-   ;; Forced Halant or half form.
-   ("(([CR]n?H)*[CR]n?)(H[NJ])"
-    < | (1 move-reph-vattu) (3 = =) | >)
-
-   ;; A syllable without a vowel sign nor a vowel modifier.
-   ("([CR]n?H)*[CR]n?H?"
-    < | move-reph-vattu | >)
-
-   ;; A syllable starting with an independent vowel.
-   ("V[Aa]?"
-    < |  = * | >)
-
-   ("." =))
-  *)
-
- ;; Move the leading RH and the Halant on the base consonant to
- ;; appropriate positions.
- ;; 0x0AFF indicates the destination of below-, above-, post Matras.
- (move-reph-vattu
-  (cond
-   ;; Ending with Halnt.  Immitate a forced Halant form.
-   ("(.*)(H)$"
-    (1 move-reph-vattu) (2 =) 0x200C)
-
-   ;; Both Reph and Vattu.
-   ;;1   23                4  5
-   ("(RH)(([CR]n?H)*[CR]n?)(H)(R)$"
-    (2 = *) (5 =) (4 =) 0x0AFF (1 = =))
-
-   ;; A special case of above.
-   ("(RH)(R)$"
-    (2 =) 0x0AFF (1 = =))
-
-   ;; Reph but no Vattu.
-   ("(RH)(([CR]n?H)*Cn?)$"
-    (2 = *) 0x0AFF (1 = =))
-
-   ;; No Reph but Vattu.
-   ("(Cn?(H[CR]n?)*)(H)(R)$"
-    (1 = *) (4 =) (3 =) 0x0AFF)
-
-   ;; Neither Reph nor Vattu.
-   (".*"
-    = * 0x0AFF))))
-
-;; Step 2 : Matra movements and OTF forms.
-(generator
- (0
-  (cond
-   ;; 1    2        3    4   5       6
-   (" (RH)?([^X ]*)X(RH)?(m)?([bup])?([Aa])? "
-    |
-    (4 =)
-    (1 otf:gujr=~rphf,~blwf,*)
-    (2 otf:gujr=~rphf,*)
-    (5 =)
-    (3 otf:gujr=rphf)
-    (6 =)
-    |)
-
-   (" (RH)?([^X ]*)X(RH)?(HJ) "
-    |
-    (1 = =)
-    (2 otf:gujr=~rphf)
-    (3 otf:gujr=rphf)
-    (4 = =)
-    |)
-
-   (" (RH)?([^X ]*)X(RH)?(H)N "
-    |
-    (1 otf:gujr=~rphf,~blwf,*)
-    (2 otf:gujr=~rphf,*)
-    (3 otf:gujr=rphf)
-    (4 =)
-    |)
-
-   ("." =))
-  *))
-
-;; Step 3 : OTF substitutions and positionings.
-(generator
- (0
-  (cond
-   (" (.*)J "
-    (1 otf:gujr=~rphf,~blwf,*))
-   (" ([^ ]*) "
-    (1 otf:gujr=~rphf,~blwf,~half,~haln,*))
-   ("."
-    [ otf:gujr=+ ]))
-  *))
-
-;; Local Variables:
-;; mode: emacs-lisp
-;; End:
diff --git a/GUJR-OTF.flt b/GUJR-OTF.flt
new file mode 100644 (file)
index 0000000..ea82498
--- /dev/null
@@ -0,0 +1,169 @@
+;; GUJ-OTF.flt -- Font Layout Table for Gujarati OpenType fonts
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> GUJ-OTF.flt
+;;;
+;;; For Gujarati OpenType fonts to draw the Gujarati script.
+;;; Tested with padmaa-Medium-1.5.ttf <http://www.indictrans.org/>
+
+(category
+ ;; C: general consonant
+ ;; R: RA
+ ;; V: independent vowel
+ ;; H: HALANT
+ ;; m: MATRA (pre)
+ ;; u: MATRA (above)
+ ;; b: MATRA (below)
+ ;; p: MATRA (post)
+ ;; A: vowel modifier (above)
+ ;; a: vowel modifier (post)
+ ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
+ ;; J: ZWJ (ZERO WIDTH JOINER)
+ ;; E: ELSE
+ ;;
+ (0x200C       ?N)                     ; ZWNJ
+ (0x200D       ?J)                     ; ZWJ
+ (0x0964       ?E)                     ; DANDA
+ (0x0965       ?E)                     ; DOUBLE DANDA
+ (0x0A80 0x0AFF        ?E)                     ; ELSE
+ (0x0A81       ?A)                     ; SIGN CANDRABINDU
+ (0x0A82       ?A)                     ; SIGN ANUSVARA
+ (0x0A83       ?a)                     ; SIGN VISARGA
+ (0x0A85 0x0A94        ?V)                     ; LETTER AA .. LETTER AU
+ (0x0A95 0x0AB9 ?C)                    ; LETTER KA .. LETTER HA
+ (0x0AB0       ?R)                     ; LETTER RA
+ (0x0ABC       ?n)                     ; SIGN NUKTA
+ (0x0ABE       ?p)                     ; VOWEL SIGN AA (post)
+ (0x0ABF       ?m)                     ; VOWEL SIGN I (pre)
+ (0x0AC0       ?p)                     ; VOWEL SIGN II (post)
+ (0x0AC1 0x0AC4        ?b)                     ; VOWEL SIGN U, UU, R, RR (below)
+ (0x0AC5 0x0AC8        ?u)                     ; VOWEL SIGN CANDRA E, E, AI (above)
+ (0x0AC9 0x0ACC        ?p)                     ; VOWEL SIGN CANDRA O, O, AU (post)
+ (0x0ACD       ?H)                     ; SIGN VIRAMA (HALANT)
+ (0x0AE0 0x0AE1        ?V)                     ; LETTER VOCALIC RR, LL
+ (0x0AE2 0x0AE3        ?b)                     ; VOWEL SIGN VOCALIC RR, LL (below)
+ (0x0AFF       ?X)                     ; internal use
+ )
+
+;; Step 1 : Syllable identification, Reph and base consonant movements.
+(generator
+ (0
+  (cond
+   ;; A syllable ending with a vowel sign and/or a vowel modifier.
+   ("(([CR]n?H)*[CR]n?)([mubp][Aa]?|[Aa])"
+    < | (1 move-reph-vattu) (3 = *) | >)
+
+   ;; Forced Halant or half form.
+   ("(([CR]n?H)*[CR]n?)(H[NJ])"
+    < | (1 move-reph-vattu) (3 = =) | >)
+
+   ;; A syllable without a vowel sign nor a vowel modifier.
+   ("([CR]n?H)*[CR]n?H?"
+    < | move-reph-vattu | >)
+
+   ;; A syllable starting with an independent vowel.
+   ("V[Aa]?"
+    < |  = * | >)
+
+   ("." =))
+  *)
+
+ ;; Move the leading RH and the Halant on the base consonant to
+ ;; appropriate positions.
+ ;; 0x0AFF indicates the destination of below-, above-, post Matras.
+ (move-reph-vattu
+  (cond
+   ;; Ending with Halnt.  Immitate a forced Halant form.
+   ("(.*)(H)$"
+    (1 move-reph-vattu) (2 =) 0x200C)
+
+   ;; Both Reph and Vattu.
+   ;;1   23                4  5
+   ("(RH)(([CR]n?H)*[CR]n?)(H)(R)$"
+    (2 = *) (5 =) (4 =) 0x0AFF (1 = =))
+
+   ;; A special case of above.
+   ("(RH)(R)$"
+    (2 =) 0x0AFF (1 = =))
+
+   ;; Reph but no Vattu.
+   ("(RH)(([CR]n?H)*Cn?)$"
+    (2 = *) 0x0AFF (1 = =))
+
+   ;; No Reph but Vattu.
+   ("(Cn?(H[CR]n?)*)(H)(R)$"
+    (1 = *) (4 =) (3 =) 0x0AFF)
+
+   ;; Neither Reph nor Vattu.
+   (".*"
+    = * 0x0AFF))))
+
+;; Step 2 : Matra movements and OTF forms.
+(generator
+ (0
+  (cond
+   ;; 1    2        3    4   5       6
+   (" (RH)?([^X ]*)X(RH)?(m)?([bup])?([Aa])? "
+    |
+    (4 =)
+    (1 otf:gujr=~rphf,~blwf,*)
+    (2 otf:gujr=~rphf,*)
+    (5 =)
+    (3 otf:gujr=rphf)
+    (6 =)
+    |)
+
+   (" (RH)?([^X ]*)X(RH)?(HJ) "
+    |
+    (1 = =)
+    (2 otf:gujr=~rphf)
+    (3 otf:gujr=rphf)
+    (4 = =)
+    |)
+
+   (" (RH)?([^X ]*)X(RH)?(H)N "
+    |
+    (1 otf:gujr=~rphf,~blwf,*)
+    (2 otf:gujr=~rphf,*)
+    (3 otf:gujr=rphf)
+    (4 =)
+    |)
+
+   ("." =))
+  *))
+
+;; Step 3 : OTF substitutions and positionings.
+(generator
+ (0
+  (cond
+   (" (.*)J "
+    (1 otf:gujr=~rphf,~blwf,*))
+   (" ([^ ]*) "
+    (1 otf:gujr=~rphf,~blwf,~half,~haln,*))
+   ("."
+    [ otf:gujr=+ ]))
+  *))
+
+;; Local Variables:
+;; mode: emacs-lisp
+;; End:
diff --git a/GUR-OTF.flt b/GUR-OTF.flt
deleted file mode 100644 (file)
index e55eef5..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-;; GUR-OTF.flt -- Font Layout Table for Gurmukhi OpenType fonts
-;; Copyright (C) 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> GUR-OTF.flt
-;;;
-;;; For Gurmukhi OpenType fonts to draw the Punjabi script.
-;;; Designed for saab.otf (version 0.91).
-;;; <http://guca.sourceforge.net/typography/fonts/saab/index.shtml>
-
-(category
- ;; C: general consonant
- ;; Y: post-base consonat (YA)
- ;; R: below-base consonat (RA, VA, HA)
- ;; n: NUKTA
- ;; H: HALANT
- ;; m: MATRA (pre)
- ;; u: MATRA (above)
- ;; b: MATRA (below)
- ;; p: MATRA (post)
- ;; A: vowel modifier (above)
- ;; a: vowel modifier (post)
- ;; V: independent vowel
- ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
- ;; J: ZWJ (ZERO WIDTH JOINER)
- ;; E: ELSE
- ;;
- (0x200C       ?N)                     ; ZWNJ
- (0x200D       ?J)                     ; ZWJ
- (0x0964       ?E)                     ; DANDA
- (0x0965       ?E)                     ; DOUBLE DANDA
- (0x0A00 0x0A7F        ?E)                     ; ELSE
- (0x0A01       ?A)                     ; SIGN ADAK BINDI (above)
- (0x0A02       ?A)                     ; SIGN BINDI (above)
- (0x0A03       ?a)                     ; SIGN VISARGA (post)
- (0x0A05 0x0A14        ?V)                     ; LETTER A .. LETTER AU
- (0x0A15 0x0A38 ?C)                    ; LETTER KA .. LETTER SA
- (0x0A2F       ?Y)                     ; LETTER YA
- (0x0A30       ?R)                     ; LETTER RA
- (0x0A35       ?R)                     ; LETTER VA
- (0x0A39       ?R)                     ; LETTER HA
- (0x0A3C       ?n)                     ; SIGN NUKTA
- (0x0A3E       ?p)                     ; VOWEL SIGN AA (post)
- (0x0A3F       ?m)                     ; VOWEL SIGN I (pre)
- (0x0A40       ?p)                     ; VOWEL SIGN II (post)
- (0x0A41       ?b)                     ; VOWEL SIGN U (below)
- (0x0A42       ?b)                     ; VOWEL SIGN UU (below)
- (0x0A47       ?u)                     ; VOWEL SIGN EE (above)
- (0x0A48       ?u)                     ; VOWEL SIGN AI (above)
- (0x0A4B       ?u)                     ; VOWEL SIGN OO (above)
- (0x0A4C       ?u)                     ; VOWEL SIGN AU (above)
- (0x0A4D       ?H)                     ; SIGN VIRAMA (HALANT)
- (0x0A59 0x0A5E        ?C)                     ; LETTER KHHA .. LETTER FA
- (0x0A70       ?A)                     ; TIPPI (above)
- (0x0A7F       ?X)                     ; internal use
- )
-
-;; Step 1 : Syllable identification and Halant movement.
-(generator
- (0
-  (cond
-   ;; A syllable ending with a vowel sign and/or a vowel modifier.
-   ("(([CRY]n?H)*[CRY]n?)([mubp][Aa]?|[Aa])"
-    < | (1 move-base-Halant) (3 =) | >)
-
-   ;; A syllable without a vowel sign nor a vowel modifier.
-   ("(([CRY]n?H)*[CRY]n?)(H)?"
-    < | move-base-Halant | >)
-
-   ;; A syllable starting with an independent vowel.
-   ("V[Aa]?"
-    < | = * | > )
-
-   ("." =))
-  *)
-
- ;; Move Halant on the base consonant to the tail.
- ;; 0x0A7F indicates the position for above- or below Matra.
- (move-base-Halant
-  (cond
-   ("(([CRY]n?H)*[CRY]n?)(H)(Y)$"
-    (1 = *)
-    0x0A7F
-    (4 =)
-    (3 =))
-   ("(([CRY]n?H)*[CRY]n?)(H)(R)$"
-    (1 = *)
-    (4 =)
-    (3 =)
-    0x0A7F)
-   ("([CRY]n?H)*[CRY]n?H$"
-    = * 0x200C)
-   (".*"
-    = * 0x0A7F))))
-
-;; Step 2 : Move Matra.
-(generator
- (0
-  (cond
-   ;; 1          2    3   4      5   6
-   (" ([CRYnH]*)X(YH)?(m)?([ub])?(p)?([Aa])? "
-    | (3 =) (1 = *) (4 =) (2 = =) (5 =) (6 =) |)
-   ("." =))
-  *))
-
-;; Step 3 : Drive OTF tables.
-(generator
- (0
-  (cond
-   (" ([^ ]*H)N "
-    (1 otf:guru=nukt))
-   (" ([^ ]*) "
-    (1 otf:guru=nukt,vatu,pstf,abvs,blws))
-   ((0x0A71)
-    otf:guru)
-   ("."
-    [ otf:guru=+ ] ))
-  *))
-
-;; Local Variables:
-;; mode: emacs-lisp
-;; End:
diff --git a/GURU-OTF.flt b/GURU-OTF.flt
new file mode 100644 (file)
index 0000000..e55eef5
--- /dev/null
@@ -0,0 +1,141 @@
+;; GUR-OTF.flt -- Font Layout Table for Gurmukhi OpenType fonts
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> GUR-OTF.flt
+;;;
+;;; For Gurmukhi OpenType fonts to draw the Punjabi script.
+;;; Designed for saab.otf (version 0.91).
+;;; <http://guca.sourceforge.net/typography/fonts/saab/index.shtml>
+
+(category
+ ;; C: general consonant
+ ;; Y: post-base consonat (YA)
+ ;; R: below-base consonat (RA, VA, HA)
+ ;; n: NUKTA
+ ;; H: HALANT
+ ;; m: MATRA (pre)
+ ;; u: MATRA (above)
+ ;; b: MATRA (below)
+ ;; p: MATRA (post)
+ ;; A: vowel modifier (above)
+ ;; a: vowel modifier (post)
+ ;; V: independent vowel
+ ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
+ ;; J: ZWJ (ZERO WIDTH JOINER)
+ ;; E: ELSE
+ ;;
+ (0x200C       ?N)                     ; ZWNJ
+ (0x200D       ?J)                     ; ZWJ
+ (0x0964       ?E)                     ; DANDA
+ (0x0965       ?E)                     ; DOUBLE DANDA
+ (0x0A00 0x0A7F        ?E)                     ; ELSE
+ (0x0A01       ?A)                     ; SIGN ADAK BINDI (above)
+ (0x0A02       ?A)                     ; SIGN BINDI (above)
+ (0x0A03       ?a)                     ; SIGN VISARGA (post)
+ (0x0A05 0x0A14        ?V)                     ; LETTER A .. LETTER AU
+ (0x0A15 0x0A38 ?C)                    ; LETTER KA .. LETTER SA
+ (0x0A2F       ?Y)                     ; LETTER YA
+ (0x0A30       ?R)                     ; LETTER RA
+ (0x0A35       ?R)                     ; LETTER VA
+ (0x0A39       ?R)                     ; LETTER HA
+ (0x0A3C       ?n)                     ; SIGN NUKTA
+ (0x0A3E       ?p)                     ; VOWEL SIGN AA (post)
+ (0x0A3F       ?m)                     ; VOWEL SIGN I (pre)
+ (0x0A40       ?p)                     ; VOWEL SIGN II (post)
+ (0x0A41       ?b)                     ; VOWEL SIGN U (below)
+ (0x0A42       ?b)                     ; VOWEL SIGN UU (below)
+ (0x0A47       ?u)                     ; VOWEL SIGN EE (above)
+ (0x0A48       ?u)                     ; VOWEL SIGN AI (above)
+ (0x0A4B       ?u)                     ; VOWEL SIGN OO (above)
+ (0x0A4C       ?u)                     ; VOWEL SIGN AU (above)
+ (0x0A4D       ?H)                     ; SIGN VIRAMA (HALANT)
+ (0x0A59 0x0A5E        ?C)                     ; LETTER KHHA .. LETTER FA
+ (0x0A70       ?A)                     ; TIPPI (above)
+ (0x0A7F       ?X)                     ; internal use
+ )
+
+;; Step 1 : Syllable identification and Halant movement.
+(generator
+ (0
+  (cond
+   ;; A syllable ending with a vowel sign and/or a vowel modifier.
+   ("(([CRY]n?H)*[CRY]n?)([mubp][Aa]?|[Aa])"
+    < | (1 move-base-Halant) (3 =) | >)
+
+   ;; A syllable without a vowel sign nor a vowel modifier.
+   ("(([CRY]n?H)*[CRY]n?)(H)?"
+    < | move-base-Halant | >)
+
+   ;; A syllable starting with an independent vowel.
+   ("V[Aa]?"
+    < | = * | > )
+
+   ("." =))
+  *)
+
+ ;; Move Halant on the base consonant to the tail.
+ ;; 0x0A7F indicates the position for above- or below Matra.
+ (move-base-Halant
+  (cond
+   ("(([CRY]n?H)*[CRY]n?)(H)(Y)$"
+    (1 = *)
+    0x0A7F
+    (4 =)
+    (3 =))
+   ("(([CRY]n?H)*[CRY]n?)(H)(R)$"
+    (1 = *)
+    (4 =)
+    (3 =)
+    0x0A7F)
+   ("([CRY]n?H)*[CRY]n?H$"
+    = * 0x200C)
+   (".*"
+    = * 0x0A7F))))
+
+;; Step 2 : Move Matra.
+(generator
+ (0
+  (cond
+   ;; 1          2    3   4      5   6
+   (" ([CRYnH]*)X(YH)?(m)?([ub])?(p)?([Aa])? "
+    | (3 =) (1 = *) (4 =) (2 = =) (5 =) (6 =) |)
+   ("." =))
+  *))
+
+;; Step 3 : Drive OTF tables.
+(generator
+ (0
+  (cond
+   (" ([^ ]*H)N "
+    (1 otf:guru=nukt))
+   (" ([^ ]*) "
+    (1 otf:guru=nukt,vatu,pstf,abvs,blws))
+   ((0x0A71)
+    otf:guru)
+   ("."
+    [ otf:guru=+ ] ))
+  *))
+
+;; Local Variables:
+;; mode: emacs-lisp
+;; End:
diff --git a/HEBR-FF.flt b/HEBR-FF.flt
new file mode 100644 (file)
index 0000000..da988c1
--- /dev/null
@@ -0,0 +1,98 @@
+;; HEBREW-FF.flt -- Font Layout Table for Hebrew fonts (Unicode encoding)
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> HEBREW-FF.flt
+;;;
+;;; For Hebrew fonts of Unicode encoding to draw the Hebrew script.
+;;; This is for such fonts that do not require an explicit combining
+;;; code because accents and points have negative lbearing.
+
+(category
+ (0x0590 0x05ff        ?h)                     ; hebrew
+ )
+
+(generator
+ (0
+  (cond
+   ((0x05d9 0x05b4) 0xfb1d)
+   ((0x05e9 0x05c1) 0xfb2a)
+   ((0x05e9 0x05c2) 0xfb2b)
+   ((0x05e9 0x05bc 0x05c1) 0xfb2c)
+   ((0x05e9 0x05bc 0x05c2) 0xfb2d)
+   ((0x05d0 0x05b7) 0xfb2e)
+   ((0x05d0 0x05b8) 0xfb2f)
+   ((0x05d0 0x05bc) 0xfb30)
+   ((0x05d1 0x05bc) 0xfb31)
+   ((0x05d2 0x05bc) 0xfb32)
+   ((0x05d3 0x05bc) 0xfb33)
+   ((0x05d4 0x05bc) 0xfb34)
+   ((0x05d5 0x05bc) 0xfb35)
+   ((0x05d6 0x05bc) 0xfb36)
+   ((0x05d8 0x05bc) 0xfb38)
+   ((0x05d9 0x05bc) 0xfb39)
+   ((0x05da 0x05bc) 0xfb3a)
+   ((0x05db 0x05bc) 0xfb3b)
+   ((0x05dc 0x05bc) 0xfb3c)
+   ((0x05de 0x05bc) 0xfb3e)
+   ((0x05e0 0x05bc) 0xfb40)
+   ((0x05e1 0x05bc) 0xfb41)
+   ((0x05e3 0x05bc) 0xfb43)
+   ((0x05e4 0x05bc) 0xfb44)
+   ((0x05e6 0x05bc) 0xfb46)
+   ((0x05e7 0x05bc) 0xfb47)
+   ((0x05e8 0x05bc) 0xfb48)
+   ((0x05e9 0x05bc) 0xfb49)
+   ((0x05ea 0x05bc) 0xfb4a)
+   ((0x05d5 0x05b9) 0xfb4b)
+   ((0x05d1 0x05bf) 0xfb4c)
+   ((0x05db 0x05bf) 0xfb4d)
+   ((0x05e4 0x05bf) 0xfb4e)
+   ;; The font FreeSerif.ttf does not have this glyph?!?
+   ;; ((0x05b0)        0x05b4 Bc-13Bc 0x05b4)
+   ("." =))
+  *))
+
+(category
+ (0x0590 0x05af        ?p)                     ; accents
+ (0x05d0 0x05ff        ?h)                     ; letters
+ (0xfb1d 0xfb4e        ?h)                     ; presentation forms
+ (0x05b0 0x05c4        ?p)                     ; points
+ (0x05be       ?h)                     ; punctuation
+ (0x05c0       ?h)                     ; punctuation
+ (0x05c3       ?h)                     ; punctuation
+ )
+
+(generator
+ (0
+  (cond
+   ("(h)(p+)"
+    <
+    = *
+    >)
+   ("." = *))
+  *)
+ )
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/HEBR.flt b/HEBR.flt
new file mode 100644 (file)
index 0000000..d1458a2
--- /dev/null
+++ b/HEBR.flt
@@ -0,0 +1,97 @@
+;; HEBREW.flt -- Font Layout Table for Hebrew font (Unicode encoding)
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> HEBREW.flt
+;;;
+;;; For Hebrew fonts of Unicode encoding to draw Hebrew script.  This
+;;; is for such a font that requires explicit combining code to draw
+;;; accents and points.
+
+(category
+ (0x0590 0x05ff        ?h)                     ; hebrew
+ )
+
+(generator
+ (0
+  (cond
+   ((0x05d9 0x05b4) 0xfb1d)
+   ((0x05e9 0x05c1) 0xfb2a)
+   ((0x05e9 0x05c2) 0xfb2b)
+   ((0x05e9 0x05bc 0x05c1) 0xfb2c)
+   ((0x05e9 0x05bc 0x05c2) 0xfb2d)
+   ((0x05d0 0x05b7) 0xfb2e)
+   ((0x05d0 0x05b8) 0xfb2f)
+   ((0x05d0 0x05bc) 0xfb30)
+   ((0x05d1 0x05bc) 0xfb31)
+   ((0x05d2 0x05bc) 0xfb32)
+   ((0x05d3 0x05bc) 0xfb33)
+   ((0x05d4 0x05bc) 0xfb34)
+   ((0x05d5 0x05bc) 0xfb35)
+   ((0x05d6 0x05bc) 0xfb36)
+   ((0x05d8 0x05bc) 0xfb38)
+   ((0x05d9 0x05bc) 0xfb39)
+   ((0x05da 0x05bc) 0xfb3a)
+   ((0x05db 0x05bc) 0xfb3b)
+   ((0x05dc 0x05bc) 0xfb3c)
+   ((0x05de 0x05bc) 0xfb3e)
+   ((0x05e0 0x05bc) 0xfb40)
+   ((0x05e1 0x05bc) 0xfb41)
+   ((0x05e3 0x05bc) 0xfb43)
+   ((0x05e4 0x05bc) 0xfb44)
+   ((0x05e6 0x05bc) 0xfb46)
+   ((0x05e7 0x05bc) 0xfb47)
+   ((0x05e8 0x05bc) 0xfb48)
+   ((0x05e9 0x05bc) 0xfb49)
+   ((0x05ea 0x05bc) 0xfb4a)
+   ((0x05d5 0x05b9) 0xfb4b)
+   ((0x05d1 0x05bf) 0xfb4c)
+   ((0x05db 0x05bf) 0xfb4d)
+   ((0x05e4 0x05bf) 0xfb4e)
+   ("." =))
+  *))
+
+(category
+ (0x0590 0x05af        ?p)                     ; accents
+ (0x05d0 0x05ff        ?h)                     ; letters
+ (0xfb1d 0xfb4e        ?h)                     ; presentation forms
+ (0x05b0 0x05c4        ?p)                     ; points
+ (0x05be       ?h)                     ; punctuation
+ (0x05c0       ?h)                     ; punctuation
+ (0x05c3       ?h)                     ; punctuation
+ )
+
+(generator
+ (0
+  (cond
+   ("(h)(p+)"
+    <
+    (1 =)
+    (2 ("." Bc.Bc =) *)
+    >)
+   ("." = *))
+  *)
+ )
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/HEBREW-FF.flt b/HEBREW-FF.flt
deleted file mode 100644 (file)
index da988c1..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-;; HEBREW-FF.flt -- Font Layout Table for Hebrew fonts (Unicode encoding)
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> HEBREW-FF.flt
-;;;
-;;; For Hebrew fonts of Unicode encoding to draw the Hebrew script.
-;;; This is for such fonts that do not require an explicit combining
-;;; code because accents and points have negative lbearing.
-
-(category
- (0x0590 0x05ff        ?h)                     ; hebrew
- )
-
-(generator
- (0
-  (cond
-   ((0x05d9 0x05b4) 0xfb1d)
-   ((0x05e9 0x05c1) 0xfb2a)
-   ((0x05e9 0x05c2) 0xfb2b)
-   ((0x05e9 0x05bc 0x05c1) 0xfb2c)
-   ((0x05e9 0x05bc 0x05c2) 0xfb2d)
-   ((0x05d0 0x05b7) 0xfb2e)
-   ((0x05d0 0x05b8) 0xfb2f)
-   ((0x05d0 0x05bc) 0xfb30)
-   ((0x05d1 0x05bc) 0xfb31)
-   ((0x05d2 0x05bc) 0xfb32)
-   ((0x05d3 0x05bc) 0xfb33)
-   ((0x05d4 0x05bc) 0xfb34)
-   ((0x05d5 0x05bc) 0xfb35)
-   ((0x05d6 0x05bc) 0xfb36)
-   ((0x05d8 0x05bc) 0xfb38)
-   ((0x05d9 0x05bc) 0xfb39)
-   ((0x05da 0x05bc) 0xfb3a)
-   ((0x05db 0x05bc) 0xfb3b)
-   ((0x05dc 0x05bc) 0xfb3c)
-   ((0x05de 0x05bc) 0xfb3e)
-   ((0x05e0 0x05bc) 0xfb40)
-   ((0x05e1 0x05bc) 0xfb41)
-   ((0x05e3 0x05bc) 0xfb43)
-   ((0x05e4 0x05bc) 0xfb44)
-   ((0x05e6 0x05bc) 0xfb46)
-   ((0x05e7 0x05bc) 0xfb47)
-   ((0x05e8 0x05bc) 0xfb48)
-   ((0x05e9 0x05bc) 0xfb49)
-   ((0x05ea 0x05bc) 0xfb4a)
-   ((0x05d5 0x05b9) 0xfb4b)
-   ((0x05d1 0x05bf) 0xfb4c)
-   ((0x05db 0x05bf) 0xfb4d)
-   ((0x05e4 0x05bf) 0xfb4e)
-   ;; The font FreeSerif.ttf does not have this glyph?!?
-   ;; ((0x05b0)        0x05b4 Bc-13Bc 0x05b4)
-   ("." =))
-  *))
-
-(category
- (0x0590 0x05af        ?p)                     ; accents
- (0x05d0 0x05ff        ?h)                     ; letters
- (0xfb1d 0xfb4e        ?h)                     ; presentation forms
- (0x05b0 0x05c4        ?p)                     ; points
- (0x05be       ?h)                     ; punctuation
- (0x05c0       ?h)                     ; punctuation
- (0x05c3       ?h)                     ; punctuation
- )
-
-(generator
- (0
-  (cond
-   ("(h)(p+)"
-    <
-    = *
-    >)
-   ("." = *))
-  *)
- )
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/HEBREW.flt b/HEBREW.flt
deleted file mode 100644 (file)
index d1458a2..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-;; HEBREW.flt -- Font Layout Table for Hebrew font (Unicode encoding)
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> HEBREW.flt
-;;;
-;;; For Hebrew fonts of Unicode encoding to draw Hebrew script.  This
-;;; is for such a font that requires explicit combining code to draw
-;;; accents and points.
-
-(category
- (0x0590 0x05ff        ?h)                     ; hebrew
- )
-
-(generator
- (0
-  (cond
-   ((0x05d9 0x05b4) 0xfb1d)
-   ((0x05e9 0x05c1) 0xfb2a)
-   ((0x05e9 0x05c2) 0xfb2b)
-   ((0x05e9 0x05bc 0x05c1) 0xfb2c)
-   ((0x05e9 0x05bc 0x05c2) 0xfb2d)
-   ((0x05d0 0x05b7) 0xfb2e)
-   ((0x05d0 0x05b8) 0xfb2f)
-   ((0x05d0 0x05bc) 0xfb30)
-   ((0x05d1 0x05bc) 0xfb31)
-   ((0x05d2 0x05bc) 0xfb32)
-   ((0x05d3 0x05bc) 0xfb33)
-   ((0x05d4 0x05bc) 0xfb34)
-   ((0x05d5 0x05bc) 0xfb35)
-   ((0x05d6 0x05bc) 0xfb36)
-   ((0x05d8 0x05bc) 0xfb38)
-   ((0x05d9 0x05bc) 0xfb39)
-   ((0x05da 0x05bc) 0xfb3a)
-   ((0x05db 0x05bc) 0xfb3b)
-   ((0x05dc 0x05bc) 0xfb3c)
-   ((0x05de 0x05bc) 0xfb3e)
-   ((0x05e0 0x05bc) 0xfb40)
-   ((0x05e1 0x05bc) 0xfb41)
-   ((0x05e3 0x05bc) 0xfb43)
-   ((0x05e4 0x05bc) 0xfb44)
-   ((0x05e6 0x05bc) 0xfb46)
-   ((0x05e7 0x05bc) 0xfb47)
-   ((0x05e8 0x05bc) 0xfb48)
-   ((0x05e9 0x05bc) 0xfb49)
-   ((0x05ea 0x05bc) 0xfb4a)
-   ((0x05d5 0x05b9) 0xfb4b)
-   ((0x05d1 0x05bf) 0xfb4c)
-   ((0x05db 0x05bf) 0xfb4d)
-   ((0x05e4 0x05bf) 0xfb4e)
-   ("." =))
-  *))
-
-(category
- (0x0590 0x05af        ?p)                     ; accents
- (0x05d0 0x05ff        ?h)                     ; letters
- (0xfb1d 0xfb4e        ?h)                     ; presentation forms
- (0x05b0 0x05c4        ?p)                     ; points
- (0x05be       ?h)                     ; punctuation
- (0x05c0       ?h)                     ; punctuation
- (0x05c3       ?h)                     ; punctuation
- )
-
-(generator
- (0
-  (cond
-   ("(h)(p+)"
-    <
-    (1 =)
-    (2 ("." Bc.Bc =) *)
-    >)
-   ("." = *))
-  *)
- )
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/KAN-OTF.flt b/KAN-OTF.flt
deleted file mode 100644 (file)
index 073c3a9..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-;; KAN-OTF.flt -- Font Layout Table for Kannada OpenType fonts
-;; Copyright (C) 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> KAN-OTF.flt
-;;;
-;;; For Kannada OpenType fonts to draw Kannada.
-;;; Designed for Sampige.ttf <http://kannada.sourceforge.net/>
-
-(category
- ;; C: general consonant
- ;; R: no below-base consonat (RRA, NNNA, LLLA)
- ;; r: RA
- ;; H: HALANT
- ;; u: MATRA (above)
- ;; p: MATRA (post)
- ;; t: MATRA (two-part)
- ;; T: MATRA (three-part)
- ;; a: vowel modifier (post)
- ;; V: independent vowel
- ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
- ;; J: ZWJ (ZERO WIDTH JOINER)
- ;; E: ELSE
- ;;
- (0x200C       ?N)                     ; ZWNJ
- (0x200D       ?J)                     ; ZWJ
- (0x0964       ?E)                     ; DANDA
- (0x0965       ?E)                     ; DOUBLE DANDA
- (0x0C80 0x0CFF        ?E)                     ; ELSE
- (0x0C82       ?a)                     ; SIGN ANUSVARA
- (0x0C83       ?a)                     ; SIGN VISARGA
- (0x0C85 0x0C94        ?V)                     ; LETTER A .. LETTER AU
- (0x0C95 0x0CB9 ?C)                    ; LETTER KA .. LETTER HA
- (0x0CB0       ?r)                     ; LETTER RA
- (0x0CBC       ?n)                     ; SIGN NUKTA
- (0x0CBD       ?E)                     ; SIGN AVAGRAHA
- (0x0CBE       ?p)                     ; VOWEL SIGN AA (post)
- (0x0CBF       ?u)                     ; VOWEL SIGN I (above)
- (0x0CC0       ?t)                     ; VOWEL SIGN II (two-part)
- (0x0CC1 0x0CC4        ?p)                     ; VOWEL SIGN U, UU, R, RR (post)
- (0x0CC6       ?u)                     ; VOWEL SIGN E (above)
- (0x0CC7 0x0CCA        ?t)                     ; VOWEL SIGN EE, AI, O (two-part)
- (0x0CCB       ?T)                     ; VOWEL SIGN OO (three-part)
- (0x0CCC       ?u)                     ; VOWEL SIGN AU (above)
- (0x0CCD       ?H)                     ; SIGN VIRAMA (HALANT)
- (0x0CD5       ?l)                     ; LENGTH MARK (length post)
- (0x0CD6       ?l)                     ; AI LENGTH MARK (length post)
- (0x0CDE       ?C)                     ; LETTER FA (LLLA)
- (0x0CE0 0x0CE1        ?V)                     ; LETTER VOCALIC RR, LL
- (0x0CFD       ?Z)                     ; internal use
- (0x0CFE       ?Y)                     ; internal use
- (0x0CFF       ?X)                     ; internal use
- )
-
-;; Step 1 : Syllable identification and Halant movement.
-(generator
- (0
-  (cond
-   ;; A syllable containing a three-part vowel sign.
-   ("([CRr](H[Cr])*)(T)(a)?"
-    < | (1 move-base-Halant) (3 0x0CC6 0x0CC2 0x0CD5) (4 =) | >)
-
-   ;; A syllable containing a two-part vowel sign.
-   ("([CRr](H[Cr])*)(t)(a)?"
-    < | (1 move-base-Halant) (3 two-part) (4 =) | >)
-
-   ;; A syllable ending with vowel signs and/or a vowel modifier.
-   ("([CRr](H[Cr])*)([upl]+a?|a)"
-    < | (1 move-base-Halant) (3 = *) | >)
-
-   ;; Forced Halant form.
-   ("((RH)?([Cr]H)*)([Cr]H)N"
-    < | (1 move-base-Halant) | >
-    < | (4 move-base-Halant) | >)
-
-   ;; Forced Half form.
-   ("((RH)?([Cr]H)*)([Cr]H)J"
-    < | (1 move-base-Halant) >
-    < | (4 otf:knda=blwf) | >)
-
-   ;; A syllable without a vowel sign nor a vowel modifier.
-   ("[CRr](H[Cr])*H?"
-    < | move-base-Halant | >)
-
-   ;; A syllable starting with an independent vowel.
-   ("Va?"
-    < | = * | > )
-
-   ("." =))
-  *)
-
- ;; Move Halant on the base consonant to the tail if the syllable ends
- ;; with a consonant.
- ;; A leading 0x0CFF means Halant movement.
- ;; A leading 0x0CFE means a syllable ending with a Halant.
- ;; A leading 0x0CFD means Halant & Reph movements.
- (move-base-Halant
-  (cond
-   (".*H$"
-    0x0CFE = *)
-   ("(rH)(.)$"
-    0x0CFD (2 =) (1 = =))
-   ("(rH)(.)(H)(.*)"
-    0x0CFD (2 =) (4 = *) (3 =) (1 = =))
-   ("(.)(H)(.*)"
-    0x0CFF (1 =) (3 = *) (2 =))
-   (".*"
-    = *)))
-
- ;; Divide a two-part Matra into elements.
- (two-part
-  (cond
-   ((0x0CC0)   0x0CBF 0x0CD5)
-   ((0x0CC7)   0x0CC6 0x0CD5)
-   ((0x0CC8)   0x0CC6 0x0CD6)
-   ((0x0CCA)   0x0CC6 0x0CC2)))
- )
-
-;; Step 2 : Move Matra if applicable.
-;; The base consonant in a Halant-ending syllable is changed into Halant form.
-(generator
- (0
-  (cond
-   ;;  1  2       3   4   5   6   7
-   (" Z(.)([CrH]*)(rH)(u)?(p)?(l*)(a)? "
-    | (1 =) (4 =) (5 =) (2 = *) (6 = *) (3 otf:knda=rphf) (7 =) |)
-   ;;  1  2       3   4   5   6
-   (" X(.)([CrH]*)(u)?(p)?(l*)(a)? "
-    | (1 =) (3 =) (4 =) (2 = *) (5 = *) (6 =) |)
-   (" Y(..)([^ ]*) "
-    ;; Sampige.ttf lacks the haln feature, so "otf:knda=haln" does not work.
-    | (1 otf:knda=~rphf,~blwf,*) (2 = *) |)
-   ("." =))
-  *))
-
-;; Step 3 : Drive OTF tables.
-(generator
- (0
-  (cond
-   (" ([^ ]*) "
-    (1 otf:knda=~rphf,*))
-   ("."
-    [ otf:knda=+ ]))
-  *))
-
-;; Local Variables:
-;; mode: emacs-lisp
-;; End:
diff --git a/KHMER-ANLONG.flt b/KHMER-ANLONG.flt
deleted file mode 100644 (file)
index cf3d816..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
-;; KHMER-ANLONG.flt -- Font Layout Table for Khmer (Anlong font)
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> KHMER-ANLONG.flt
-;;;
-;;; For the font ANLONG.TTF to draw Khmer script.  The font is
-;;; available at:
-;;; <ul>
-;;; <li> infopage: http://www.cambodia.org/fonts/index.html#dl
-;;; <li> download: http://www.cambodia.org/fonts/khmerfnt.zip
-;;; </ul>
-
-(category
- ;; C: CONSONANT (except R and KHMER LETTER LA)
- ;; R: KHMER LETTER RO
- ;; c: KHMER SIGN COENG (function as virama)
- ;; V: INDEPENDENT VOWEL (except Q)
- ;; Q: CONJUNCT VOWEL QU, RY, QE
- ;; v: DEPENDENT VOWEL
- ;; s: SHIFT
- ;; S: COMBINING SIGN
- ;; E: ELSE
- (0x1780 0x17A0        ?C)
- (0x1789       ?N)                     ; exception of C (NYO)
- (0x179A       ?R)                     ; exception of C (RO)
- (0x17A1       ?E)                     ; ELSE
- (0x17A2       ?C)
- (0x17A3 0x17A4        ?E)                     ; ELSE
- (0x17A5 0x17B3        ?V)
- (0x17A7       ?Q)
- (0x17AB       ?Q)
- (0x17AF       ?Q)
- (0x17B2       ?C)
- (0x17B4 0x17FF        ?E)
- (0x17B6 0x17C5        ?v)
- (0x17C6       ?S)
- (0x17C9 0x17CA        ?s)
- (0x17CB 0x17D3        ?S)
- (0x17D2       ?c))
-
-(generator
- (0
-  (cond
-   ("([CNR]c[CNRQ])c(R)(s?v?S?)"
-    | (1 with-conjunct) (2 Bl.Br 0xEE) 0x00 (3 vowel-and-sign *) |)
-   ("([CNR]c[CNRQ])(s?v?S?)"
-    | (1 with-conjunct) 0x00 (2 vowel-and-sign *) |)
-   ("([CNR])(s?v?S?)"
-    | (1 independent) (2 vowel-and-sign *) |)
-   ("."
-    independent))
-  *)
-
- (with-conjunct
-  (cond
-   ("(N)c(CRQ)"
-    (1 0x8B)
-    (2 conjunct))
-   ("(N)c(N)"
-    (1 0x8B)
-    (2 Br.Bl 0xDD))
-   ((0x17B3 0x17D2 0x1799)
-    0xB8)
-   ("(.)c(.)"
-    (1 independent)
-    (2 conjunct))))
-
- (independent
-  (cond
-   ((range 0x1780 0x1788)      0x82)
-   ((0x1789)                   0x8C)
-   ((range 0x178A 0x1794)      0x91)
-   ((0x1795)                   0x9F)
-   ((range 0x1796 0x179C)      0xA1)
-   ((0x179D)                   < 0x84 cr-<cc 0xFA >)
-   ((0x179E)                   < 0x9B cr-<cc 0xFA >)
-   ((range 0x179F 0x17A2)      0xA8)
-   ((0x17A3)                   0xAB)
-   ((0x17A4)                   < 0xAB Br>Bl 0xBA >)
-   ((range 0x17A5 0x17A7)      0xAC)
-   ((0x17A8)                   < 0xAE Br.Bl 0xF4 >)
-   ((0x17A9)                   0xB9)
-   ((range 0x17AA 0x17B1)      0xAF)
-   ((0x17B2)                   0xB7)   ; same as 0xB6
-   ((0x17B3)                   < 0xAE tr<20bl 0xF8 >)
-   ((0x17B4)                   < 0xBA tr+bl 0xF5 >)
-   ((0x17B5)                   0xBA)
-   ((0x17B6)                   0xBA)
-   ((0x17B7)                   0xBB)
-   ((0x17B8)                   0xBD)
-   ((0x17B9)                   0xBF)
-   ((0x17BA)                   0xC1)
-   ((0x17BB)                   0xC3)
-   ((0x17BC)                   0xC5)
-   ((0x17BD)                   0xC7)
-   ((0x17BE)                   < 0xCD 0x20 0xBD >)
-   ((0x17BF)                   < 0xCD 0x20 Br<Bl 0xC9 >)
-   ((0x17C0)                   < 0xCD 0x20 Br<Bl 0xCB >)
-   ((range 0x17C1 0x17C3)      0xCD)
-   ((0x17C4)                   < 0xCD 0x20 Br<Bl 0xBA >)
-   ((0x17C5)                   < 0xCD 0x20 Br<Bl 0xD0 >)
-   ((0x17C6)                   0xD1)
-   ((0x17C7)                   0xD3)
-   ((0x17C8)                   0x3A)
-   ((0x17C9)                   0xF6)
-   ((range 0x17CA 0x17CB)      0xF4)
-   ((0x17CC)                   0xF8)
-   ((0x17CD)                   0xF7)
-   ((0x17CE)                   < 0x20 tc+80bc 0x2B >)
-   ((range 0x17CF 0x17D0)      0xF9)
-   ((0x17D1)                   < 0x20 tc+80bc 0x5F >)
-   ((0x17D2)                   < 0x20 bc-tc 0x5E >)
-   ((0x17D3)                   0xD1)
-   ((range 0x17D4 0x17D5)      0xFC)
-   ((0x17D6)                   0xFB)
-   ((0x17D7)                   0xFE)
-   ((0x17D8)                   < 0xFC 0xA6 0xFC >)
-   ((0x17D9)                   < 0x30 cr<10cl 0xD2 >)
-   ((0x17DA)                   0x8D)
-   ((0x17DB)                   < 0xFF br->10tl 0xC3 >)
-   ((0x17DC)                   0x53)
-   ((range 0x17E0 0x17E9)      0x30)))
-
- (conjunct
-  (cond
-   ((0x1780)   br-tl 0xD4)
-   ((0x1781)   br-tl 0xD5)
-   ((0x1782)   br-tl 0xD6)
-   ((0x1783)   Br.Bl 0xD7)
-   ((0x1784)   br-tl 0xD8)
-   ((0x1785)   br-tl 0xD9)
-   ((0x1786)   br-tl 0xDA)
-   ((0x1787)   br-tl 0xDB)
-   ((0x1788)   Br.Bl 0xDC)
-   ((0x1789)   br-tl 0xDE)
-   ((0x178A)   br-tl 0xE3)
-   ((0x178B)   br-tl 0xDF)
-   ((0x178C)   br-tl 0xE0)
-   ((0x178D)   Br.Bl 0xE1)
-   ((0x178E)   br-tl 0xE2)
-   ((0x178F)   br-tl 0xE3)
-   ((0x1790)   br-tl 0xE4)
-   ((0x1791)   br-tl 0xE5)
-   ((0x1792)   br-tl 0xE6)
-   ((0x1793)   br-tl 0xE7)
-   ((0x1794)   Br.Bl 0xE8)
-   ((0x1795)   br-tl 0xE9)
-   ((0x1796)   br-tl 0xEA)
-   ((0x1797)   br-tl 0xEB)
-   ((0x1798)   br-tl 0xEC)
-   ((0x1799)   Br.Bl 0xED)
-   ((0x179A)   Bl+Bc 0xEE)
-   ((0x179B)   br-tl 0xEF)
-   ((0x179C)   br-tl 0xF0)
-   ((0x179D)   br-tl 0xD6 br.bl 0xFA)
-   ((0x179E)   Br.Bl 0xE8 br.bl 0xFA)
-   ((0x179F)   Br.Bl 0xF1)
-   ((0x17A0)   br-tl 0xF2)
-   ((0x17A2)   br-tl 0xF3)
-   ((0x17A7)   br-tl 0xD5 br.bl 0xC4)  ; ugly compromise
-   ((0x17AB)   br-tl 0xA1)             ; ugly compromise
-   ((0x17AF)   br-tl 0xB4)))           ; ugly compromise
-
- (vowel-and-sign
-  (cond
-   ((0x17B6)   Br-Bl 0xBA)
-   ((0x17B7)   tr+bl 0xBB)
-   ((0x17B8)   tr+bl 0xBD)
-   ((0x17B9)   tr+bl 0xBF)
-   ((0x17BA)   tr+bl 0xC1)
-   ((0x17BB)   br+tr 0xC3)
-   ((0x17BC)   br-tl 0xC5)
-   ((0x17BD)   br-tl 0xC7)
-   ((0x17BE)   tr+bl 0xBD Bl.Br 0xCD)
-   ((0x17BF)   Br.Bl 0xC9 Bl.Br 0xCD)
-   ((0x17C0)   Br.Bl 0xCB Bl.Br 0xCD)
-   ((0x17C1)   Bl.Br 0xCD)
-   ((0x17C2)   Bl.Br 0xCE)
-   ((0x17C3)   Bl.Br 0xCF)
-   ((0x17C4)   Bl.Br 0xCD Br.Bl 0xBA)
-   ((0x17C5)   Bl.Br 0xCD Br.Bl 0xD0)
-   ((0x17C6)   tr+bl 0xD1)
-   ((0x17C7)   Br.Bl 0xD3)
-   ((0x17C8)   Br.Bl 0x3A)
-   ((0x17C9)   tr+bl 0xF6)
-   ((0x17CA)   tr+bl 0xF4)
-   ((0x17CB)   tr+bl 0xF5)
-   ((0x17CC)   tr+bl 0xF8)
-   ((0x17CD)   tr+bl 0xF7)
-   ((0x17CE)   tr+>br 0x2B)
-   ((0x17CF)   tr+bl 0xF9)
-   ((0x17D0)   tr+bl 0xFA))))
-
-(category
- ;;    WIDTH   HEIGHT  DEPTH
- ;; N: normal  normal  normal
- ;; T: normal  high    normal
- ;; W: wide    normal  normal
- ;; n: normal  normal  deep
- ;; w: wide    normal  deep
- ;; V: right part of KHMER VOWEL SIGN YA and IE
- ;; x: separator
- (0x00 0xFF    ?N)
- (0x00         ?x)
- (0x85         ?W)
- (0x89         ?T)
- (0x8A 0x8B    ?W)
- (0x8C         ?w)
- (0x91 0x92    ?T)
- (0x93 0x94    ?W)
- (0x97         ?T)
- (0x9F         ?T)
- (0xA4         ?W)
- (0xA6         ?W)
- (0xA8 0xA9    ?W)
- (0xAA         ?w)
- (0xAC         ?T)
- (0xAD         ?w)
- (0xAF         ?T)
- (0xB0 0xB3    ?n)
- (0xB5         ?n)
- (0xB6 0xB7    ?T)
- (0xB8         ?w)
- (0xC9         ?V)
- (0xCB         ?V)
- (0xD7         ?w)
- (0xDC 0xDE    ?w)
- (0xE1 0xE2    ?w)
- (0xE8         ?w)
- (0xED         ?w)
- (0xF1         ?w))
-
-(generator
- (0
-  (cond
-   (" ([^ x]*)x(V)([^ ]*) "
-    < (1 = *) (2 (cond ((0xC9) 0xCA) ((0xCB) 0xCC))) (3 = *) >)
-   (" ([^ x]*)x([^ ]*) "
-    < (1 = *) (2 = *) >)
-   (" (T[^V]*)(V)([^ ]*) "
-    < (1 = *) (2 (cond ((0xC9) Br.Bl 0xCA) ((0xCB) Br.Bl 0xCC))) (3 = *) >)
-   (" ([wn])(V)([^ ]*) "
-    < (1 = *) (2 (cond ((0xC9) 0xCA) ((0xCB) 0xCC))) (3 = *) >)
-   (" ([^ ]*) "
-    < (1 = *) >)
-   ("."
-    =))
-  *))
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/KHMER-MULE.flt b/KHMER-MULE.flt
deleted file mode 100644 (file)
index cc3cb3f..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-;; KHMER-MULE.flt -- Font Layout Table for Khmer (mule font)
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> KHMER-MULE.flt
-;;;
-;;; For Khmer fonts of mule encoding to draw Khmer script.  The font is
-;;; available at: <ftp://ftp.m17n.org/m17n-fonts/>
-
-(category
- (0x1780 0x17A2        ?C) ;; C: CONSONANT (except R and KHMER LETTER LA)
- (0x179A       ?R) ;; R: KHMER LETTER RO
- (0x17A1       ?E) ;; E: ELSE
- (0x17A3 0x17A4        ?E)
- (0x17A5 0x17B3        ?V) ;; V: INDEPENDENT VOWEL (except Q)
- (0x17A7       ?Q) ;; Q: CONJUNCT VOWEL QU, RY, QE
- (0x17AB       ?Q)
- (0x17AF       ?Q)
- (0x17B2       ?C)
- (0x17B4 0x17FF        ?E)
- (0x17B6 0x17C5        ?v) ;; v: DEPENDENT VOWEL
- (0x17C6       ?S) ;; S: COMBINING SIGN
- (0x17C9 0x17CA        ?s) ;; s: SHIFT
- (0x17CB 0x17D3        ?S)
- (0x17D2       ?c) ;; c: KHMER SIGN COENG (function as virama)
- )
-
-(generator
- (0
-  (cond
-   ("[CR](c[CRQ])?(cR)?s?v?S?"
-    (cond
-     (".(c[CRQ])(cR)?s?v?S?"
-      < |
-      ("(.)c(.)(c(.))?" (1 independent) (2 conjunct) (4 conjunct))
-      vowel-and-sign *
-      | > )
-     ("[CR][svS][svS]*" < | independent vowel-and-sign * | > )
-     ("." independent)))
-   ("." independent))
-  *)
-
- (independent
-  (cond
-   ((0x17D8)                   0xD4 0x9B 0xD4)
-   ((range 0x1780 0x17FF)      0x80)))
-
- (conjunct
-  (cond
-   ((0x1783)   Br.Bc 0x43)
-   ((0x1788)   Br.Bc 0x48)
-   ((0x178D)   Br.Bc 0x4D)
-   ((0x1794)   Br.Bc 0x54)
-   ((0x1799)   Br.Bc 0x59)
-   ((0x179A)   Bl<Bc 0x5A)
-   ((range 0x179E 0x179F)      Br.Bc 0x5E)
-   ((range 0x1780 0x17AF)      bc-tc 0x40)
-   ))
-
- (vowel-and-sign
-  (cond
-   ((0x17B6)   Br.Bl 0xB6)
-   ((0x17BB)   br+tr 0xBB)
-   ((0x17BC)   bc-tc 0xBC)
-   ((0x17BD)   bc-tc 0xBD)
-   ((0x17BE)   tc.bc 0xB8 Bl.Br 0xC1)
-   ((0x17BF)   Bl.Br 0xC1 Br.Bc 0x04)
-   ((0x17C0)   Bl.Br 0xC1 Br.Bc 0x05)
-   ((0x17C1)   Bl.Br 0xC1)
-   ((0x17C2)   Bl.Br 0xC2)
-   ((0x17C3)   Bl.Br 0xC3)
-   ((0x17C4)   Bl.Br 0xC1 Br.Bl 0xB6)
-   ((0x17C5)   Bl.Br 0xC1 Br.Bl 0x2D)
-   ((0x17C9)   tr+br 0xC9)
-   ((0x17CB)   tr+br 0xCB)
-   ((0x17CE)   tr+br 0xCE)
-   ((range 0x17B7 0x17D0)      tc+bc 0xB7))))
-
-(category
- (0x00 0xFF    ?E)
- (0x04 0x05    ?V)
- (0x2D         ?V)
- (0xB6         ?V)
- (0xC6         ?C)
- (0xCB         ?R)
- (0xCC 0xCD    ?C)
- (0xCE         ?R)
- (0xCF 0xD0    ?C)
- (0xD2         ?E))
-
-(generator
- (0
-  (cond
-   ("VC" = tc>20bc =)
-   ("VR" = tr<20br =)
-   ("." =))
-  *))
-
-(category
- (0x00 0xFF    ?E) ;; E: else
- (0x40 0x6F    ?c) ;; c: conjunct CONSONANT
- (0x49         ?n) ;; n: conjunct KHMER LETTER NYO
- (0x59         ?y) ;; y: conjunct KHMER LETTER YO
- (0x80 0xA2    ?C) ;; C: first CONSONANT
- (0x89         ?N) ;; N: first KHMER LETTER NYO
- (0xB2         ?Q) ;; Q: KHMER INDEPENDENT VOWEL QOO TYPE TWO
- (0xC9 0xD1    ?S))
-
-(generator
- (0
-  (cond
-   (" [^ ][^ ][^ ]* "
-    < =
-    (cond
-     ("N[cny]" 0x27 ((0x49) bc-tc 0x28) =)
-     ("Qy"     0x2B))
-    = * > )
-   ("[^ ]*" = * ))
-  *))
-
-(category
- (0x00 0x7F    ?n) ;; n: width:normal height:normal depth:deep
- (0x04 0x05    ?V) ;; V: right part of KHMER VOWEL SIGN YA and IE
- (0x26         ?w) ;; w: width:wide height:normal depth:deep
- (0x27         ?W) ;; W: width:wide height:normal depth:normal
- (0x28         ?w)
- (0x2A         ?w)
- (0x2C         ?N) ;; N: width:normal height:normal depth:normal
- (0x43         ?w)
- (0x48 0x49    ?w)
- (0x4D 0x4E    ?w)
- (0x5A         ?r) ;; r: conjunct KHMER LETTER RO
- (0x60         ?w)
- (0x80 0xFF    ?N)
- (0x83         ?W)
- (0x84         ?T) ;; T: width:normal height:high depth:normal
- (0x87         ?T)
- (0x88 0x89    ?W)
- (0x8A 0x8B    ?T)
- (0x8D 0x8E    ?W)
- (0x90         ?T)
- (0x95         ?T)
- (0x99         ?W)
- (0x9B         ?W)
- (0x9F 0xA0    ?W)
- (0xA6         ?W))
-
-(generator
- (0
-  (cond
-   (" ([^ ]*) "
-    <
-    (1
-     (cond
-      ("(Wnr)([^V]*)(V)?(.*)" = *)
-      ("(Tnr)([^V]*)(V)?(.*)"
-       (1 = = ((0x5A) Bl<Bc 0x20) =) (2 = *) (3 high-deep-YA-IE =) (4 = *))
-      ("(..r)([^V]*)(V)?(.*)"
-       (1 = = ((0x5A) Bl<Bc 0x20) =) (2 = *) (3 deep-YA-IE =) (4 = *))
-      ("(T[nw][^V]*)(V)?(.*)"
-       (1 = *) (2 high-deep-YA-IE =) (3 = *))
-      ("(.[nw][^V]*)(V)?(.*)"
-       (1 = *) (2 deep-YA-IE =) (3 = *))
-      ("(T^V*)(V)?(.*)"
-       (1 = *) (2 high-YA-IE =) (3 = *))
-      (".*" = *)))
-    >)
-   ("[^ ]*" = *))
-  *)
-
- (deep-YA-IE
-  ((range 0x04 0x05)   Br.Bc 0x24))
-
- (high-deep-YA-IE
-  ((range 0x04 0x05)   Br.Bc 0x34))
-
- (high-YA-IE
-  ((range 0x04 0x05)   Br.bc 0x14)))
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/KHMR-ANLONG.flt b/KHMR-ANLONG.flt
new file mode 100644 (file)
index 0000000..cf3d816
--- /dev/null
@@ -0,0 +1,272 @@
+;; KHMER-ANLONG.flt -- Font Layout Table for Khmer (Anlong font)
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> KHMER-ANLONG.flt
+;;;
+;;; For the font ANLONG.TTF to draw Khmer script.  The font is
+;;; available at:
+;;; <ul>
+;;; <li> infopage: http://www.cambodia.org/fonts/index.html#dl
+;;; <li> download: http://www.cambodia.org/fonts/khmerfnt.zip
+;;; </ul>
+
+(category
+ ;; C: CONSONANT (except R and KHMER LETTER LA)
+ ;; R: KHMER LETTER RO
+ ;; c: KHMER SIGN COENG (function as virama)
+ ;; V: INDEPENDENT VOWEL (except Q)
+ ;; Q: CONJUNCT VOWEL QU, RY, QE
+ ;; v: DEPENDENT VOWEL
+ ;; s: SHIFT
+ ;; S: COMBINING SIGN
+ ;; E: ELSE
+ (0x1780 0x17A0        ?C)
+ (0x1789       ?N)                     ; exception of C (NYO)
+ (0x179A       ?R)                     ; exception of C (RO)
+ (0x17A1       ?E)                     ; ELSE
+ (0x17A2       ?C)
+ (0x17A3 0x17A4        ?E)                     ; ELSE
+ (0x17A5 0x17B3        ?V)
+ (0x17A7       ?Q)
+ (0x17AB       ?Q)
+ (0x17AF       ?Q)
+ (0x17B2       ?C)
+ (0x17B4 0x17FF        ?E)
+ (0x17B6 0x17C5        ?v)
+ (0x17C6       ?S)
+ (0x17C9 0x17CA        ?s)
+ (0x17CB 0x17D3        ?S)
+ (0x17D2       ?c))
+
+(generator
+ (0
+  (cond
+   ("([CNR]c[CNRQ])c(R)(s?v?S?)"
+    | (1 with-conjunct) (2 Bl.Br 0xEE) 0x00 (3 vowel-and-sign *) |)
+   ("([CNR]c[CNRQ])(s?v?S?)"
+    | (1 with-conjunct) 0x00 (2 vowel-and-sign *) |)
+   ("([CNR])(s?v?S?)"
+    | (1 independent) (2 vowel-and-sign *) |)
+   ("."
+    independent))
+  *)
+
+ (with-conjunct
+  (cond
+   ("(N)c(CRQ)"
+    (1 0x8B)
+    (2 conjunct))
+   ("(N)c(N)"
+    (1 0x8B)
+    (2 Br.Bl 0xDD))
+   ((0x17B3 0x17D2 0x1799)
+    0xB8)
+   ("(.)c(.)"
+    (1 independent)
+    (2 conjunct))))
+
+ (independent
+  (cond
+   ((range 0x1780 0x1788)      0x82)
+   ((0x1789)                   0x8C)
+   ((range 0x178A 0x1794)      0x91)
+   ((0x1795)                   0x9F)
+   ((range 0x1796 0x179C)      0xA1)
+   ((0x179D)                   < 0x84 cr-<cc 0xFA >)
+   ((0x179E)                   < 0x9B cr-<cc 0xFA >)
+   ((range 0x179F 0x17A2)      0xA8)
+   ((0x17A3)                   0xAB)
+   ((0x17A4)                   < 0xAB Br>Bl 0xBA >)
+   ((range 0x17A5 0x17A7)      0xAC)
+   ((0x17A8)                   < 0xAE Br.Bl 0xF4 >)
+   ((0x17A9)                   0xB9)
+   ((range 0x17AA 0x17B1)      0xAF)
+   ((0x17B2)                   0xB7)   ; same as 0xB6
+   ((0x17B3)                   < 0xAE tr<20bl 0xF8 >)
+   ((0x17B4)                   < 0xBA tr+bl 0xF5 >)
+   ((0x17B5)                   0xBA)
+   ((0x17B6)                   0xBA)
+   ((0x17B7)                   0xBB)
+   ((0x17B8)                   0xBD)
+   ((0x17B9)                   0xBF)
+   ((0x17BA)                   0xC1)
+   ((0x17BB)                   0xC3)
+   ((0x17BC)                   0xC5)
+   ((0x17BD)                   0xC7)
+   ((0x17BE)                   < 0xCD 0x20 0xBD >)
+   ((0x17BF)                   < 0xCD 0x20 Br<Bl 0xC9 >)
+   ((0x17C0)                   < 0xCD 0x20 Br<Bl 0xCB >)
+   ((range 0x17C1 0x17C3)      0xCD)
+   ((0x17C4)                   < 0xCD 0x20 Br<Bl 0xBA >)
+   ((0x17C5)                   < 0xCD 0x20 Br<Bl 0xD0 >)
+   ((0x17C6)                   0xD1)
+   ((0x17C7)                   0xD3)
+   ((0x17C8)                   0x3A)
+   ((0x17C9)                   0xF6)
+   ((range 0x17CA 0x17CB)      0xF4)
+   ((0x17CC)                   0xF8)
+   ((0x17CD)                   0xF7)
+   ((0x17CE)                   < 0x20 tc+80bc 0x2B >)
+   ((range 0x17CF 0x17D0)      0xF9)
+   ((0x17D1)                   < 0x20 tc+80bc 0x5F >)
+   ((0x17D2)                   < 0x20 bc-tc 0x5E >)
+   ((0x17D3)                   0xD1)
+   ((range 0x17D4 0x17D5)      0xFC)
+   ((0x17D6)                   0xFB)
+   ((0x17D7)                   0xFE)
+   ((0x17D8)                   < 0xFC 0xA6 0xFC >)
+   ((0x17D9)                   < 0x30 cr<10cl 0xD2 >)
+   ((0x17DA)                   0x8D)
+   ((0x17DB)                   < 0xFF br->10tl 0xC3 >)
+   ((0x17DC)                   0x53)
+   ((range 0x17E0 0x17E9)      0x30)))
+
+ (conjunct
+  (cond
+   ((0x1780)   br-tl 0xD4)
+   ((0x1781)   br-tl 0xD5)
+   ((0x1782)   br-tl 0xD6)
+   ((0x1783)   Br.Bl 0xD7)
+   ((0x1784)   br-tl 0xD8)
+   ((0x1785)   br-tl 0xD9)
+   ((0x1786)   br-tl 0xDA)
+   ((0x1787)   br-tl 0xDB)
+   ((0x1788)   Br.Bl 0xDC)
+   ((0x1789)   br-tl 0xDE)
+   ((0x178A)   br-tl 0xE3)
+   ((0x178B)   br-tl 0xDF)
+   ((0x178C)   br-tl 0xE0)
+   ((0x178D)   Br.Bl 0xE1)
+   ((0x178E)   br-tl 0xE2)
+   ((0x178F)   br-tl 0xE3)
+   ((0x1790)   br-tl 0xE4)
+   ((0x1791)   br-tl 0xE5)
+   ((0x1792)   br-tl 0xE6)
+   ((0x1793)   br-tl 0xE7)
+   ((0x1794)   Br.Bl 0xE8)
+   ((0x1795)   br-tl 0xE9)
+   ((0x1796)   br-tl 0xEA)
+   ((0x1797)   br-tl 0xEB)
+   ((0x1798)   br-tl 0xEC)
+   ((0x1799)   Br.Bl 0xED)
+   ((0x179A)   Bl+Bc 0xEE)
+   ((0x179B)   br-tl 0xEF)
+   ((0x179C)   br-tl 0xF0)
+   ((0x179D)   br-tl 0xD6 br.bl 0xFA)
+   ((0x179E)   Br.Bl 0xE8 br.bl 0xFA)
+   ((0x179F)   Br.Bl 0xF1)
+   ((0x17A0)   br-tl 0xF2)
+   ((0x17A2)   br-tl 0xF3)
+   ((0x17A7)   br-tl 0xD5 br.bl 0xC4)  ; ugly compromise
+   ((0x17AB)   br-tl 0xA1)             ; ugly compromise
+   ((0x17AF)   br-tl 0xB4)))           ; ugly compromise
+
+ (vowel-and-sign
+  (cond
+   ((0x17B6)   Br-Bl 0xBA)
+   ((0x17B7)   tr+bl 0xBB)
+   ((0x17B8)   tr+bl 0xBD)
+   ((0x17B9)   tr+bl 0xBF)
+   ((0x17BA)   tr+bl 0xC1)
+   ((0x17BB)   br+tr 0xC3)
+   ((0x17BC)   br-tl 0xC5)
+   ((0x17BD)   br-tl 0xC7)
+   ((0x17BE)   tr+bl 0xBD Bl.Br 0xCD)
+   ((0x17BF)   Br.Bl 0xC9 Bl.Br 0xCD)
+   ((0x17C0)   Br.Bl 0xCB Bl.Br 0xCD)
+   ((0x17C1)   Bl.Br 0xCD)
+   ((0x17C2)   Bl.Br 0xCE)
+   ((0x17C3)   Bl.Br 0xCF)
+   ((0x17C4)   Bl.Br 0xCD Br.Bl 0xBA)
+   ((0x17C5)   Bl.Br 0xCD Br.Bl 0xD0)
+   ((0x17C6)   tr+bl 0xD1)
+   ((0x17C7)   Br.Bl 0xD3)
+   ((0x17C8)   Br.Bl 0x3A)
+   ((0x17C9)   tr+bl 0xF6)
+   ((0x17CA)   tr+bl 0xF4)
+   ((0x17CB)   tr+bl 0xF5)
+   ((0x17CC)   tr+bl 0xF8)
+   ((0x17CD)   tr+bl 0xF7)
+   ((0x17CE)   tr+>br 0x2B)
+   ((0x17CF)   tr+bl 0xF9)
+   ((0x17D0)   tr+bl 0xFA))))
+
+(category
+ ;;    WIDTH   HEIGHT  DEPTH
+ ;; N: normal  normal  normal
+ ;; T: normal  high    normal
+ ;; W: wide    normal  normal
+ ;; n: normal  normal  deep
+ ;; w: wide    normal  deep
+ ;; V: right part of KHMER VOWEL SIGN YA and IE
+ ;; x: separator
+ (0x00 0xFF    ?N)
+ (0x00         ?x)
+ (0x85         ?W)
+ (0x89         ?T)
+ (0x8A 0x8B    ?W)
+ (0x8C         ?w)
+ (0x91 0x92    ?T)
+ (0x93 0x94    ?W)
+ (0x97         ?T)
+ (0x9F         ?T)
+ (0xA4         ?W)
+ (0xA6         ?W)
+ (0xA8 0xA9    ?W)
+ (0xAA         ?w)
+ (0xAC         ?T)
+ (0xAD         ?w)
+ (0xAF         ?T)
+ (0xB0 0xB3    ?n)
+ (0xB5         ?n)
+ (0xB6 0xB7    ?T)
+ (0xB8         ?w)
+ (0xC9         ?V)
+ (0xCB         ?V)
+ (0xD7         ?w)
+ (0xDC 0xDE    ?w)
+ (0xE1 0xE2    ?w)
+ (0xE8         ?w)
+ (0xED         ?w)
+ (0xF1         ?w))
+
+(generator
+ (0
+  (cond
+   (" ([^ x]*)x(V)([^ ]*) "
+    < (1 = *) (2 (cond ((0xC9) 0xCA) ((0xCB) 0xCC))) (3 = *) >)
+   (" ([^ x]*)x([^ ]*) "
+    < (1 = *) (2 = *) >)
+   (" (T[^V]*)(V)([^ ]*) "
+    < (1 = *) (2 (cond ((0xC9) Br.Bl 0xCA) ((0xCB) Br.Bl 0xCC))) (3 = *) >)
+   (" ([wn])(V)([^ ]*) "
+    < (1 = *) (2 (cond ((0xC9) 0xCA) ((0xCB) 0xCC))) (3 = *) >)
+   (" ([^ ]*) "
+    < (1 = *) >)
+   ("."
+    =))
+  *))
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/KHMR-MULE.flt b/KHMR-MULE.flt
new file mode 100644 (file)
index 0000000..cc3cb3f
--- /dev/null
@@ -0,0 +1,201 @@
+;; KHMER-MULE.flt -- Font Layout Table for Khmer (mule font)
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> KHMER-MULE.flt
+;;;
+;;; For Khmer fonts of mule encoding to draw Khmer script.  The font is
+;;; available at: <ftp://ftp.m17n.org/m17n-fonts/>
+
+(category
+ (0x1780 0x17A2        ?C) ;; C: CONSONANT (except R and KHMER LETTER LA)
+ (0x179A       ?R) ;; R: KHMER LETTER RO
+ (0x17A1       ?E) ;; E: ELSE
+ (0x17A3 0x17A4        ?E)
+ (0x17A5 0x17B3        ?V) ;; V: INDEPENDENT VOWEL (except Q)
+ (0x17A7       ?Q) ;; Q: CONJUNCT VOWEL QU, RY, QE
+ (0x17AB       ?Q)
+ (0x17AF       ?Q)
+ (0x17B2       ?C)
+ (0x17B4 0x17FF        ?E)
+ (0x17B6 0x17C5        ?v) ;; v: DEPENDENT VOWEL
+ (0x17C6       ?S) ;; S: COMBINING SIGN
+ (0x17C9 0x17CA        ?s) ;; s: SHIFT
+ (0x17CB 0x17D3        ?S)
+ (0x17D2       ?c) ;; c: KHMER SIGN COENG (function as virama)
+ )
+
+(generator
+ (0
+  (cond
+   ("[CR](c[CRQ])?(cR)?s?v?S?"
+    (cond
+     (".(c[CRQ])(cR)?s?v?S?"
+      < |
+      ("(.)c(.)(c(.))?" (1 independent) (2 conjunct) (4 conjunct))
+      vowel-and-sign *
+      | > )
+     ("[CR][svS][svS]*" < | independent vowel-and-sign * | > )
+     ("." independent)))
+   ("." independent))
+  *)
+
+ (independent
+  (cond
+   ((0x17D8)                   0xD4 0x9B 0xD4)
+   ((range 0x1780 0x17FF)      0x80)))
+
+ (conjunct
+  (cond
+   ((0x1783)   Br.Bc 0x43)
+   ((0x1788)   Br.Bc 0x48)
+   ((0x178D)   Br.Bc 0x4D)
+   ((0x1794)   Br.Bc 0x54)
+   ((0x1799)   Br.Bc 0x59)
+   ((0x179A)   Bl<Bc 0x5A)
+   ((range 0x179E 0x179F)      Br.Bc 0x5E)
+   ((range 0x1780 0x17AF)      bc-tc 0x40)
+   ))
+
+ (vowel-and-sign
+  (cond
+   ((0x17B6)   Br.Bl 0xB6)
+   ((0x17BB)   br+tr 0xBB)
+   ((0x17BC)   bc-tc 0xBC)
+   ((0x17BD)   bc-tc 0xBD)
+   ((0x17BE)   tc.bc 0xB8 Bl.Br 0xC1)
+   ((0x17BF)   Bl.Br 0xC1 Br.Bc 0x04)
+   ((0x17C0)   Bl.Br 0xC1 Br.Bc 0x05)
+   ((0x17C1)   Bl.Br 0xC1)
+   ((0x17C2)   Bl.Br 0xC2)
+   ((0x17C3)   Bl.Br 0xC3)
+   ((0x17C4)   Bl.Br 0xC1 Br.Bl 0xB6)
+   ((0x17C5)   Bl.Br 0xC1 Br.Bl 0x2D)
+   ((0x17C9)   tr+br 0xC9)
+   ((0x17CB)   tr+br 0xCB)
+   ((0x17CE)   tr+br 0xCE)
+   ((range 0x17B7 0x17D0)      tc+bc 0xB7))))
+
+(category
+ (0x00 0xFF    ?E)
+ (0x04 0x05    ?V)
+ (0x2D         ?V)
+ (0xB6         ?V)
+ (0xC6         ?C)
+ (0xCB         ?R)
+ (0xCC 0xCD    ?C)
+ (0xCE         ?R)
+ (0xCF 0xD0    ?C)
+ (0xD2         ?E))
+
+(generator
+ (0
+  (cond
+   ("VC" = tc>20bc =)
+   ("VR" = tr<20br =)
+   ("." =))
+  *))
+
+(category
+ (0x00 0xFF    ?E) ;; E: else
+ (0x40 0x6F    ?c) ;; c: conjunct CONSONANT
+ (0x49         ?n) ;; n: conjunct KHMER LETTER NYO
+ (0x59         ?y) ;; y: conjunct KHMER LETTER YO
+ (0x80 0xA2    ?C) ;; C: first CONSONANT
+ (0x89         ?N) ;; N: first KHMER LETTER NYO
+ (0xB2         ?Q) ;; Q: KHMER INDEPENDENT VOWEL QOO TYPE TWO
+ (0xC9 0xD1    ?S))
+
+(generator
+ (0
+  (cond
+   (" [^ ][^ ][^ ]* "
+    < =
+    (cond
+     ("N[cny]" 0x27 ((0x49) bc-tc 0x28) =)
+     ("Qy"     0x2B))
+    = * > )
+   ("[^ ]*" = * ))
+  *))
+
+(category
+ (0x00 0x7F    ?n) ;; n: width:normal height:normal depth:deep
+ (0x04 0x05    ?V) ;; V: right part of KHMER VOWEL SIGN YA and IE
+ (0x26         ?w) ;; w: width:wide height:normal depth:deep
+ (0x27         ?W) ;; W: width:wide height:normal depth:normal
+ (0x28         ?w)
+ (0x2A         ?w)
+ (0x2C         ?N) ;; N: width:normal height:normal depth:normal
+ (0x43         ?w)
+ (0x48 0x49    ?w)
+ (0x4D 0x4E    ?w)
+ (0x5A         ?r) ;; r: conjunct KHMER LETTER RO
+ (0x60         ?w)
+ (0x80 0xFF    ?N)
+ (0x83         ?W)
+ (0x84         ?T) ;; T: width:normal height:high depth:normal
+ (0x87         ?T)
+ (0x88 0x89    ?W)
+ (0x8A 0x8B    ?T)
+ (0x8D 0x8E    ?W)
+ (0x90         ?T)
+ (0x95         ?T)
+ (0x99         ?W)
+ (0x9B         ?W)
+ (0x9F 0xA0    ?W)
+ (0xA6         ?W))
+
+(generator
+ (0
+  (cond
+   (" ([^ ]*) "
+    <
+    (1
+     (cond
+      ("(Wnr)([^V]*)(V)?(.*)" = *)
+      ("(Tnr)([^V]*)(V)?(.*)"
+       (1 = = ((0x5A) Bl<Bc 0x20) =) (2 = *) (3 high-deep-YA-IE =) (4 = *))
+      ("(..r)([^V]*)(V)?(.*)"
+       (1 = = ((0x5A) Bl<Bc 0x20) =) (2 = *) (3 deep-YA-IE =) (4 = *))
+      ("(T[nw][^V]*)(V)?(.*)"
+       (1 = *) (2 high-deep-YA-IE =) (3 = *))
+      ("(.[nw][^V]*)(V)?(.*)"
+       (1 = *) (2 deep-YA-IE =) (3 = *))
+      ("(T^V*)(V)?(.*)"
+       (1 = *) (2 high-YA-IE =) (3 = *))
+      (".*" = *)))
+    >)
+   ("[^ ]*" = *))
+  *)
+
+ (deep-YA-IE
+  ((range 0x04 0x05)   Br.Bc 0x24))
+
+ (high-deep-YA-IE
+  ((range 0x04 0x05)   Br.Bc 0x34))
+
+ (high-YA-IE
+  ((range 0x04 0x05)   Br.bc 0x14)))
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/KNDA-OTF.flt b/KNDA-OTF.flt
new file mode 100644 (file)
index 0000000..073c3a9
--- /dev/null
@@ -0,0 +1,167 @@
+;; KAN-OTF.flt -- Font Layout Table for Kannada OpenType fonts
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> KAN-OTF.flt
+;;;
+;;; For Kannada OpenType fonts to draw Kannada.
+;;; Designed for Sampige.ttf <http://kannada.sourceforge.net/>
+
+(category
+ ;; C: general consonant
+ ;; R: no below-base consonat (RRA, NNNA, LLLA)
+ ;; r: RA
+ ;; H: HALANT
+ ;; u: MATRA (above)
+ ;; p: MATRA (post)
+ ;; t: MATRA (two-part)
+ ;; T: MATRA (three-part)
+ ;; a: vowel modifier (post)
+ ;; V: independent vowel
+ ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
+ ;; J: ZWJ (ZERO WIDTH JOINER)
+ ;; E: ELSE
+ ;;
+ (0x200C       ?N)                     ; ZWNJ
+ (0x200D       ?J)                     ; ZWJ
+ (0x0964       ?E)                     ; DANDA
+ (0x0965       ?E)                     ; DOUBLE DANDA
+ (0x0C80 0x0CFF        ?E)                     ; ELSE
+ (0x0C82       ?a)                     ; SIGN ANUSVARA
+ (0x0C83       ?a)                     ; SIGN VISARGA
+ (0x0C85 0x0C94        ?V)                     ; LETTER A .. LETTER AU
+ (0x0C95 0x0CB9 ?C)                    ; LETTER KA .. LETTER HA
+ (0x0CB0       ?r)                     ; LETTER RA
+ (0x0CBC       ?n)                     ; SIGN NUKTA
+ (0x0CBD       ?E)                     ; SIGN AVAGRAHA
+ (0x0CBE       ?p)                     ; VOWEL SIGN AA (post)
+ (0x0CBF       ?u)                     ; VOWEL SIGN I (above)
+ (0x0CC0       ?t)                     ; VOWEL SIGN II (two-part)
+ (0x0CC1 0x0CC4        ?p)                     ; VOWEL SIGN U, UU, R, RR (post)
+ (0x0CC6       ?u)                     ; VOWEL SIGN E (above)
+ (0x0CC7 0x0CCA        ?t)                     ; VOWEL SIGN EE, AI, O (two-part)
+ (0x0CCB       ?T)                     ; VOWEL SIGN OO (three-part)
+ (0x0CCC       ?u)                     ; VOWEL SIGN AU (above)
+ (0x0CCD       ?H)                     ; SIGN VIRAMA (HALANT)
+ (0x0CD5       ?l)                     ; LENGTH MARK (length post)
+ (0x0CD6       ?l)                     ; AI LENGTH MARK (length post)
+ (0x0CDE       ?C)                     ; LETTER FA (LLLA)
+ (0x0CE0 0x0CE1        ?V)                     ; LETTER VOCALIC RR, LL
+ (0x0CFD       ?Z)                     ; internal use
+ (0x0CFE       ?Y)                     ; internal use
+ (0x0CFF       ?X)                     ; internal use
+ )
+
+;; Step 1 : Syllable identification and Halant movement.
+(generator
+ (0
+  (cond
+   ;; A syllable containing a three-part vowel sign.
+   ("([CRr](H[Cr])*)(T)(a)?"
+    < | (1 move-base-Halant) (3 0x0CC6 0x0CC2 0x0CD5) (4 =) | >)
+
+   ;; A syllable containing a two-part vowel sign.
+   ("([CRr](H[Cr])*)(t)(a)?"
+    < | (1 move-base-Halant) (3 two-part) (4 =) | >)
+
+   ;; A syllable ending with vowel signs and/or a vowel modifier.
+   ("([CRr](H[Cr])*)([upl]+a?|a)"
+    < | (1 move-base-Halant) (3 = *) | >)
+
+   ;; Forced Halant form.
+   ("((RH)?([Cr]H)*)([Cr]H)N"
+    < | (1 move-base-Halant) | >
+    < | (4 move-base-Halant) | >)
+
+   ;; Forced Half form.
+   ("((RH)?([Cr]H)*)([Cr]H)J"
+    < | (1 move-base-Halant) >
+    < | (4 otf:knda=blwf) | >)
+
+   ;; A syllable without a vowel sign nor a vowel modifier.
+   ("[CRr](H[Cr])*H?"
+    < | move-base-Halant | >)
+
+   ;; A syllable starting with an independent vowel.
+   ("Va?"
+    < | = * | > )
+
+   ("." =))
+  *)
+
+ ;; Move Halant on the base consonant to the tail if the syllable ends
+ ;; with a consonant.
+ ;; A leading 0x0CFF means Halant movement.
+ ;; A leading 0x0CFE means a syllable ending with a Halant.
+ ;; A leading 0x0CFD means Halant & Reph movements.
+ (move-base-Halant
+  (cond
+   (".*H$"
+    0x0CFE = *)
+   ("(rH)(.)$"
+    0x0CFD (2 =) (1 = =))
+   ("(rH)(.)(H)(.*)"
+    0x0CFD (2 =) (4 = *) (3 =) (1 = =))
+   ("(.)(H)(.*)"
+    0x0CFF (1 =) (3 = *) (2 =))
+   (".*"
+    = *)))
+
+ ;; Divide a two-part Matra into elements.
+ (two-part
+  (cond
+   ((0x0CC0)   0x0CBF 0x0CD5)
+   ((0x0CC7)   0x0CC6 0x0CD5)
+   ((0x0CC8)   0x0CC6 0x0CD6)
+   ((0x0CCA)   0x0CC6 0x0CC2)))
+ )
+
+;; Step 2 : Move Matra if applicable.
+;; The base consonant in a Halant-ending syllable is changed into Halant form.
+(generator
+ (0
+  (cond
+   ;;  1  2       3   4   5   6   7
+   (" Z(.)([CrH]*)(rH)(u)?(p)?(l*)(a)? "
+    | (1 =) (4 =) (5 =) (2 = *) (6 = *) (3 otf:knda=rphf) (7 =) |)
+   ;;  1  2       3   4   5   6
+   (" X(.)([CrH]*)(u)?(p)?(l*)(a)? "
+    | (1 =) (3 =) (4 =) (2 = *) (5 = *) (6 =) |)
+   (" Y(..)([^ ]*) "
+    ;; Sampige.ttf lacks the haln feature, so "otf:knda=haln" does not work.
+    | (1 otf:knda=~rphf,~blwf,*) (2 = *) |)
+   ("." =))
+  *))
+
+;; Step 3 : Drive OTF tables.
+(generator
+ (0
+  (cond
+   (" ([^ ]*) "
+    (1 otf:knda=~rphf,*))
+   ("."
+    [ otf:knda=+ ]))
+  *))
+
+;; Local Variables:
+;; mode: emacs-lisp
+;; End:
diff --git a/LAO-ALICE.flt b/LAO-ALICE.flt
deleted file mode 100644 (file)
index fe5f6b0..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-;; LAO-ALICE.flt -- Font Layout Table for Lao (Alice font)
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> LAO-ALICE.flt
-;;;
-;;; For the font ALICE0.TTF to draw Lao script.  The font is
-;;; available at:
-;;; <ul>
-;;; <li> infopage: http://seasrc.th.net/font/font.htm
-;;; <li> download: http://seasrc.th.net/font/fontlao.dir/alice0.zip
-;;; </ul>
-
-(category
- ;; C: CONSONANT (except c and s)
- ;; c: TALL CONSONANT
- ;; s: LAO SEMIVOWEL SIGN LO
- ;; V: VOWEL UPPER
- ;; v: VOWEL LOWER
- ;; T: TONE
- ;; I: INDEPENDENT
- ;;
- (0x0E80 0x0EDF        ?I)
- (0x0E81 0x0E82        ?C)
- (0x0E84       ?C)
- (0x0E87 0x0E88        ?C)
- (0x0E8A       ?C)
- (0x0E8D       ?C)
- (0x0E94 0x0E97        ?C)
- (0x0E99 0x0E9E        ?C)
- (0x0E9B       ?c)
- (0x0E9D       ?c)
- (0x0E9F       ?c)
- (0x0EA1 0x0EA3        ?C)
- (0x0EA2       ?c)
- (0x0EA5       ?C)
- (0x0EA7       ?C)
- (0x0EAA 0x0EAB        ?C)
- (0x0EAD 0x0EAE        ?C)
- (0x0EB1       ?V)
- (0x0EB4 0x0EB7        ?V)
- (0x0EB8 0x0EB9        ?v)
- (0x0EBB       ?V)
- (0x0EBC       ?s)
- (0x0EC8 0x0ECC        ?T)
- (0x0ECD       ?V))
-
-(generator
- (0
-  (cond
-   ("cs?(VT?|v?T)"
-    <
-    ("(cs?)" independent semi-vowel)
-    ("VT?" composed-non-relative composed-non-relative *)
-    (".*" composed-non-relative *)
-    > )
-   ("Cs?[vV]?T?"
-    < independent semi-vowel composed-non-relative * > )
-   ("[^Cs]*"
-    independent *))
-  *)
-
- (independent
-  (cond
-   ((0x0E81)   0xA1)
-   ((0x0E82)   0xA2)
-   ((0x0E84)   0xA3)
-   ((0x0E87)   0xA4)
-   ((0x0E88)   0xA5)
-   ((0x0E8A)   0xA7)
-   ((0x0E8D)   0xA8)
-   ((0x0E94)   0xA9)
-   ((0x0E95)   0xAA)
-   ((0x0E96)   0xAB)
-   ((0x0E97)   0xEA)
-   ((0x0E99)   0xAD)
-   ((0x0E9A)   0xAE)
-   ((0x0E9B)   0xAF)
-   ((0x0E9C)   0xB0)
-   ((0x0E9D)   0xB1)
-   ((0x0E9E)   0xB2)
-   ((0x0E9F)   0xB3)
-   ((0x0EA1)   0xB4)
-   ((0x0EA2)   0xB5)
-   ((0x0EA3)   0xEB)
-   ((0x0EA5)   0xEC)
-   ((0x0EA7)   0xB8)
-   ((0x0EAA)   0xA6)
-   ((0x0EAB)   0xB9)
-   ((0x0EAD)   0xBA)
-   ((0x0EAE)   0xBB)
-   ;; ((0x0EAF)        ??)
-   ((0x0EB0)   0xBD)
-   ((0x0EB2)   0xBE)
-   ((0x0EB3)   0xBF)
-   ((0x0EBD)   0xBC)
-   ((0x0EC0)   0xC0)
-   ((0x0EC1)   0xC1)
-   ((0x0EC2)   0xC2)
-   ((0x0EC3)   0xC3)
-   ((0x0EC4)   0xC4)
-   ((0x0EC6)   0xC5)
-   ((0x0EC6)   0xC5)
-   ((0x0EDC)   0xCE)
-   ((0x0EDD)   0xCF)))
-
- (composed-relative
-  (cond
-   ((0x0EB1)   tc+bc 0xF1)
-   ((0x0EB4)   tc+bc 0xF2)
-   ((0x0EB5)   tc+bc 0xF3)
-   ((0x0EB6)   tc+bc 0xF4)
-   ((0x0EB7)   tc+bc 0xF5)
-   ((0x0EB8)   bc+tc 0xF7)
-   ((0x0EB9)   bc+tc 0xF8)
-   ((0x0EBB)   tc+bc 0xF6)
-   ((0x0EC8)   tc+bc 0xC8)
-   ((0x0EC9)   tc+bc 0xC9)
-   ((0x0ECA)   tc+bc 0xCA)
-   ((0x0ECB)   tc+bc 0xCB)
-   ((0x0ECC)   tc+bc 0xCC)
-   ((0x0ECD)   tc+bc 0xD6)))
-
- (semi-vowel
-  ((0x0EBC)    Br.Bl 0xF9))
-
- (composed-non-relative
-  (cond
-   ((0x0EB1)   0xF1)
-   ((0x0EB4)   0xF2)
-   ((0x0EB5)   0xF3)
-   ((0x0EB6)   0xF4)
-   ((0x0EB7)   0xF5)
-   ((0x0EB8)   0xF7)
-   ((0x0EB9)   0xF8)
-   ((0x0EBB)   0xF6)
-   ((0x0EC8)   0xC8)
-   ((0x0EC9)   0xC9)
-   ((0x0ECA)   0xCA)
-   ((0x0ECB)   0xCB)
-   ((0x0ECC)   0xCC)
-   ((0x0ECD)   0xD6))))
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/LAO-MULE.flt b/LAO-MULE.flt
deleted file mode 100644 (file)
index 6e93334..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-;; LAO-MULE.flt -- Font Layout Table for Lao (mule font)
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> LAO-MULE.flt
-;;;
-;;; For Lao fonts of mule encoding to draw Lao script.  The font is
-;;; available at:
-;;; <ul>
-;;; <li> infopage: http://www.gnu.org/directory/localization/intlfonts.html
-;;; <li> download: ftp://ftp.gnu.org/pub/gnu/intlfonts/intlfonts-1.2.1.tar.gz
-;;; </ul>
-
-(category
- ;; C: CONSONANT (except c and s)
- ;; c: TALL CONSONANT
- ;; s: LAO SEMIVOWEL SIGN LO
- ;; V: VOWEL UPPER
- ;; v: VOWEL LOWER
- ;; T: TONE
- ;; I: INDEPENDENT
- ;;
- (0x0E80 0x0EDF        ?I)
- (0x0E81 0x0E82        ?C)
- (0x0E84       ?C)
- (0x0E87 0x0E88        ?C)
- (0x0E8A       ?C)
- (0x0E8D       ?C)
- (0x0E94 0x0E97        ?C)
- (0x0E99 0x0E9E        ?C)
- (0x0E9B       ?c)
- (0x0E9D       ?c)
- (0x0E9F       ?c)
- (0x0EA1 0x0EA3        ?C)
- (0x0EA2       ?c)
- (0x0EA5       ?C)
- (0x0EA7       ?C)
- (0x0EAA 0x0EAB        ?C)
- (0x0EAD 0x0EAE        ?C)
- (0x0EB1       ?V)
- (0x0EB4 0x0EB7        ?V)
- (0x0EB8 0x0EB9        ?v)
- (0x0EBB       ?V)
- (0x0EBC       ?s)
- (0x0EC8 0x0ECC        ?T)
- (0x0ECD       ?V))
-
-(generator
- (0
-  (cond
-   ("cs?(VT?|v?T)"
-    <
-    ("(cs?)" independent semi-vowel)
-    ("VT?" composed-non-relative composed-relative *)
-    (".*" composed-non-relative *)
-    > )
-   ("Cs?[vV]?T?"
-    < independent semi-vowel composed-relative * > )
-   ("[^Cs]*"
-    independent *))
-  *)
-
- (independent
-  ((range 0x0E80 0x0EDF) 0xA0))
-
- (composed-relative
-  (cond
-   ((0x0EB1)   tc+bc 0xD1)
-   ((0x0EB4)   tc+bc 0xD4)
-   ((0x0EB5)   tc+bc 0xD5)
-   ((0x0EB6)   tc+bc 0xD6)
-   ((0x0EB7)   tc+bc 0xD7)
-   ((0x0EB8)   bc+tc 0xD8)
-   ((0x0EB9)   bc+tc 0xD9)
-   ((0x0EBB)   tc+bc 0xDB)
-   ((0x0EC7)   tc+bc 0xE7)
-   ((0x0EC8)   tc+bc 0xE8)
-   ((0x0EC9)   tc+bc 0xE9)
-   ((0x0ECA)   tc+bc 0xEA)
-   ((0x0ECB)   tc+bc 0xEB)
-   ((0x0ECC)   tc+bc 0xEC)
-   ((0x0ECD)   tc+bc 0xED)
-   ((0x0ECE)   tc+bc 0xEE)))
-
- (semi-vowel
-  ((0x0EBC)    Bc-Bc 0xDC))
-
- (composed-non-relative
-  (cond
-   ((0x0EB1)   Bc-Bc 0xD1)
-   ((0x0EB4)   Bc-Bc 0xD4)
-   ((0x0EB5)   Bc-Bc 0xD5)
-   ((0x0EB6)   Bc-Bc 0xD6)
-   ((0x0EB7)   Bc-Bc 0xD7)
-   ((0x0EB8)   Bc-Bc 0xD8)
-   ((0x0EB9)   Bc-Bc 0xD9)
-   ((0x0EBB)   Bc-Bc 0xDB)
-   ((0x0E47)   Bc-Bc 0xE7)
-   ((0x0E48)   Bc-Bc 0xE8)
-   ((0x0E49)   Bc-Bc 0xE9)
-   ((0x0E4A)   Bc-Bc 0xEA)
-   ((0x0E4B)   Bc-Bc 0xEB)
-   ((0x0E4C)   Bc-Bc 0xEC)
-   ((0x0E4D)   Bc-Bc 0xED)
-   ((0x0E4E)   Bc-Bc 0xEE))))
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/LAOO-ALICE.flt b/LAOO-ALICE.flt
new file mode 100644 (file)
index 0000000..fe5f6b0
--- /dev/null
@@ -0,0 +1,165 @@
+;; LAO-ALICE.flt -- Font Layout Table for Lao (Alice font)
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> LAO-ALICE.flt
+;;;
+;;; For the font ALICE0.TTF to draw Lao script.  The font is
+;;; available at:
+;;; <ul>
+;;; <li> infopage: http://seasrc.th.net/font/font.htm
+;;; <li> download: http://seasrc.th.net/font/fontlao.dir/alice0.zip
+;;; </ul>
+
+(category
+ ;; C: CONSONANT (except c and s)
+ ;; c: TALL CONSONANT
+ ;; s: LAO SEMIVOWEL SIGN LO
+ ;; V: VOWEL UPPER
+ ;; v: VOWEL LOWER
+ ;; T: TONE
+ ;; I: INDEPENDENT
+ ;;
+ (0x0E80 0x0EDF        ?I)
+ (0x0E81 0x0E82        ?C)
+ (0x0E84       ?C)
+ (0x0E87 0x0E88        ?C)
+ (0x0E8A       ?C)
+ (0x0E8D       ?C)
+ (0x0E94 0x0E97        ?C)
+ (0x0E99 0x0E9E        ?C)
+ (0x0E9B       ?c)
+ (0x0E9D       ?c)
+ (0x0E9F       ?c)
+ (0x0EA1 0x0EA3        ?C)
+ (0x0EA2       ?c)
+ (0x0EA5       ?C)
+ (0x0EA7       ?C)
+ (0x0EAA 0x0EAB        ?C)
+ (0x0EAD 0x0EAE        ?C)
+ (0x0EB1       ?V)
+ (0x0EB4 0x0EB7        ?V)
+ (0x0EB8 0x0EB9        ?v)
+ (0x0EBB       ?V)
+ (0x0EBC       ?s)
+ (0x0EC8 0x0ECC        ?T)
+ (0x0ECD       ?V))
+
+(generator
+ (0
+  (cond
+   ("cs?(VT?|v?T)"
+    <
+    ("(cs?)" independent semi-vowel)
+    ("VT?" composed-non-relative composed-non-relative *)
+    (".*" composed-non-relative *)
+    > )
+   ("Cs?[vV]?T?"
+    < independent semi-vowel composed-non-relative * > )
+   ("[^Cs]*"
+    independent *))
+  *)
+
+ (independent
+  (cond
+   ((0x0E81)   0xA1)
+   ((0x0E82)   0xA2)
+   ((0x0E84)   0xA3)
+   ((0x0E87)   0xA4)
+   ((0x0E88)   0xA5)
+   ((0x0E8A)   0xA7)
+   ((0x0E8D)   0xA8)
+   ((0x0E94)   0xA9)
+   ((0x0E95)   0xAA)
+   ((0x0E96)   0xAB)
+   ((0x0E97)   0xEA)
+   ((0x0E99)   0xAD)
+   ((0x0E9A)   0xAE)
+   ((0x0E9B)   0xAF)
+   ((0x0E9C)   0xB0)
+   ((0x0E9D)   0xB1)
+   ((0x0E9E)   0xB2)
+   ((0x0E9F)   0xB3)
+   ((0x0EA1)   0xB4)
+   ((0x0EA2)   0xB5)
+   ((0x0EA3)   0xEB)
+   ((0x0EA5)   0xEC)
+   ((0x0EA7)   0xB8)
+   ((0x0EAA)   0xA6)
+   ((0x0EAB)   0xB9)
+   ((0x0EAD)   0xBA)
+   ((0x0EAE)   0xBB)
+   ;; ((0x0EAF)        ??)
+   ((0x0EB0)   0xBD)
+   ((0x0EB2)   0xBE)
+   ((0x0EB3)   0xBF)
+   ((0x0EBD)   0xBC)
+   ((0x0EC0)   0xC0)
+   ((0x0EC1)   0xC1)
+   ((0x0EC2)   0xC2)
+   ((0x0EC3)   0xC3)
+   ((0x0EC4)   0xC4)
+   ((0x0EC6)   0xC5)
+   ((0x0EC6)   0xC5)
+   ((0x0EDC)   0xCE)
+   ((0x0EDD)   0xCF)))
+
+ (composed-relative
+  (cond
+   ((0x0EB1)   tc+bc 0xF1)
+   ((0x0EB4)   tc+bc 0xF2)
+   ((0x0EB5)   tc+bc 0xF3)
+   ((0x0EB6)   tc+bc 0xF4)
+   ((0x0EB7)   tc+bc 0xF5)
+   ((0x0EB8)   bc+tc 0xF7)
+   ((0x0EB9)   bc+tc 0xF8)
+   ((0x0EBB)   tc+bc 0xF6)
+   ((0x0EC8)   tc+bc 0xC8)
+   ((0x0EC9)   tc+bc 0xC9)
+   ((0x0ECA)   tc+bc 0xCA)
+   ((0x0ECB)   tc+bc 0xCB)
+   ((0x0ECC)   tc+bc 0xCC)
+   ((0x0ECD)   tc+bc 0xD6)))
+
+ (semi-vowel
+  ((0x0EBC)    Br.Bl 0xF9))
+
+ (composed-non-relative
+  (cond
+   ((0x0EB1)   0xF1)
+   ((0x0EB4)   0xF2)
+   ((0x0EB5)   0xF3)
+   ((0x0EB6)   0xF4)
+   ((0x0EB7)   0xF5)
+   ((0x0EB8)   0xF7)
+   ((0x0EB9)   0xF8)
+   ((0x0EBB)   0xF6)
+   ((0x0EC8)   0xC8)
+   ((0x0EC9)   0xC9)
+   ((0x0ECA)   0xCA)
+   ((0x0ECB)   0xCB)
+   ((0x0ECC)   0xCC)
+   ((0x0ECD)   0xD6))))
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/LAOO-MULE.flt b/LAOO-MULE.flt
new file mode 100644 (file)
index 0000000..6e93334
--- /dev/null
@@ -0,0 +1,128 @@
+;; LAO-MULE.flt -- Font Layout Table for Lao (mule font)
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> LAO-MULE.flt
+;;;
+;;; For Lao fonts of mule encoding to draw Lao script.  The font is
+;;; available at:
+;;; <ul>
+;;; <li> infopage: http://www.gnu.org/directory/localization/intlfonts.html
+;;; <li> download: ftp://ftp.gnu.org/pub/gnu/intlfonts/intlfonts-1.2.1.tar.gz
+;;; </ul>
+
+(category
+ ;; C: CONSONANT (except c and s)
+ ;; c: TALL CONSONANT
+ ;; s: LAO SEMIVOWEL SIGN LO
+ ;; V: VOWEL UPPER
+ ;; v: VOWEL LOWER
+ ;; T: TONE
+ ;; I: INDEPENDENT
+ ;;
+ (0x0E80 0x0EDF        ?I)
+ (0x0E81 0x0E82        ?C)
+ (0x0E84       ?C)
+ (0x0E87 0x0E88        ?C)
+ (0x0E8A       ?C)
+ (0x0E8D       ?C)
+ (0x0E94 0x0E97        ?C)
+ (0x0E99 0x0E9E        ?C)
+ (0x0E9B       ?c)
+ (0x0E9D       ?c)
+ (0x0E9F       ?c)
+ (0x0EA1 0x0EA3        ?C)
+ (0x0EA2       ?c)
+ (0x0EA5       ?C)
+ (0x0EA7       ?C)
+ (0x0EAA 0x0EAB        ?C)
+ (0x0EAD 0x0EAE        ?C)
+ (0x0EB1       ?V)
+ (0x0EB4 0x0EB7        ?V)
+ (0x0EB8 0x0EB9        ?v)
+ (0x0EBB       ?V)
+ (0x0EBC       ?s)
+ (0x0EC8 0x0ECC        ?T)
+ (0x0ECD       ?V))
+
+(generator
+ (0
+  (cond
+   ("cs?(VT?|v?T)"
+    <
+    ("(cs?)" independent semi-vowel)
+    ("VT?" composed-non-relative composed-relative *)
+    (".*" composed-non-relative *)
+    > )
+   ("Cs?[vV]?T?"
+    < independent semi-vowel composed-relative * > )
+   ("[^Cs]*"
+    independent *))
+  *)
+
+ (independent
+  ((range 0x0E80 0x0EDF) 0xA0))
+
+ (composed-relative
+  (cond
+   ((0x0EB1)   tc+bc 0xD1)
+   ((0x0EB4)   tc+bc 0xD4)
+   ((0x0EB5)   tc+bc 0xD5)
+   ((0x0EB6)   tc+bc 0xD6)
+   ((0x0EB7)   tc+bc 0xD7)
+   ((0x0EB8)   bc+tc 0xD8)
+   ((0x0EB9)   bc+tc 0xD9)
+   ((0x0EBB)   tc+bc 0xDB)
+   ((0x0EC7)   tc+bc 0xE7)
+   ((0x0EC8)   tc+bc 0xE8)
+   ((0x0EC9)   tc+bc 0xE9)
+   ((0x0ECA)   tc+bc 0xEA)
+   ((0x0ECB)   tc+bc 0xEB)
+   ((0x0ECC)   tc+bc 0xEC)
+   ((0x0ECD)   tc+bc 0xED)
+   ((0x0ECE)   tc+bc 0xEE)))
+
+ (semi-vowel
+  ((0x0EBC)    Bc-Bc 0xDC))
+
+ (composed-non-relative
+  (cond
+   ((0x0EB1)   Bc-Bc 0xD1)
+   ((0x0EB4)   Bc-Bc 0xD4)
+   ((0x0EB5)   Bc-Bc 0xD5)
+   ((0x0EB6)   Bc-Bc 0xD6)
+   ((0x0EB7)   Bc-Bc 0xD7)
+   ((0x0EB8)   Bc-Bc 0xD8)
+   ((0x0EB9)   Bc-Bc 0xD9)
+   ((0x0EBB)   Bc-Bc 0xDB)
+   ((0x0E47)   Bc-Bc 0xE7)
+   ((0x0E48)   Bc-Bc 0xE8)
+   ((0x0E49)   Bc-Bc 0xE9)
+   ((0x0E4A)   Bc-Bc 0xEA)
+   ((0x0E4B)   Bc-Bc 0xEB)
+   ((0x0E4C)   Bc-Bc 0xEC)
+   ((0x0E4D)   Bc-Bc 0xED)
+   ((0x0E4E)   Bc-Bc 0xEE))))
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/MLM-CDAC.flt b/MLM-CDAC.flt
deleted file mode 100644 (file)
index db6abe0..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-;; MLM-CDAC.flt -- Font Layout Table for Malayalam (C-DAC font)
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> MLM-CDAC.flt
-;;;
-;;; For the font MLKR0ntt.ttf (developped by C-DAC, encoding is ISFOC)
-;;; to draw Malayalam script.  The font is available at:
-;;; <ul>
-;;; <li>       infopage: http://www.iiit.net/ltrc/iscii/FAQ.htm#SEC2.1
-;;; <li> download: http://www.iiit.net/ltrc/iscii/iscii_plugin_linux.tar.gz
-;;; </ul>
-
-(category
- (0x0D00 0x0D7F        ?E)                     ; all malayalam characters
- (0x0D02       ?A)                     ; ANUSVARA
- (0x0D03       ?G)                     ; VISARGA
- (0x0D05 0x0D14        ?V)                     ; independent vowel
- (0x0D15 0x0D39 ?C)                    ; consonant
- (0x0D3E 0x0D4C ?M)                    ; dependent vowel (MATRA)
- (0x0D4D       ?H)                     ; HALANT
- )
-
-(generator
- (0
-  (cond
-   ("(VA?)|G|((CH)?(CH)?(CH)?CH)?C(H|M?[AH]?)?" | glyph * |)
-   ("." glyph ))
-  * )
-
- (glyph
-  (cond
-   ;; various sign
-   ((0x0D02)                   0x77)
-   ((0x0D03)                   0x78)
-   ;; Independent Vowels
-   ((0x0D05)                   0x41)
-   ((0x0D06)                   0x42)
-   ((0x0D07)                   0x43)
-   ((0x0D08)                   0x43 0x75)
-   ((0x0D09)                   0x44)
-   ((0x0D0A)                   0x44 0x75)
-   ((0x0D0B)                   0x45)
-   ((0x0D0C)                   0x23)
-   ((0x0D0E)                   0x46)
-   ((0x0D0F)                   0x47)
-   ((0x0D10)                   0x73 0x46)
-   ((0x0D12)                   0x48)
-   ((0x0D13)                   0x48 0x6D)
-   ((0x0D14)                   0x48 0x75)
-   ;; Consonants
-   ((0x0D15 0x0D4D 0x0D15 0x0D41)              0xE7)
-   ((0x0D15 0x0D4D 0x0D15)     0xA1)
-   ((0x0D15 0x0D4D 0x0D33)     0xA2)
-   ((0x0D15 0x0D4D 0x0D37)     0xA3)
-   ((0x0D15 0x0D4D 0x0D1F)     0xCE)
-   ((0x0D15 0x0D4D 0x0D24)     0xE0)
-   ((0x0D15 0x0D41)            0xE6)
-   ((0x0D15 0x0D41)            0xE6)
-   ((0x0D15)                   0x49)
-   ((0x0D16)                   0x4A)
-   ((0x0D17 0x0D4D 0x0D17)     0xA4)
-   ((0x0D17 0x0D4D 0x0D32)     0xA5)
-   ((0x0D17 0x0D4D 0x0D2E)     0xDC)
-   ((0x0D17 0x0D4D 0x0D28)     0xE1)
-   ((0x0D17)                   0x4B)
-   ((0x0D18)                   0x4C)
-   ((0x0D19 0x0D4D 0x0D15)     0xA6)
-   ((0x0D19 0x0D4D 0x0D19)     0xA7)
-   ((0x0D19 0x0D4D 0x0D15 0x0D41)              0xE8)
-   ((0x0D19)                   0x4D)
-   ((0x0D1A 0x0D4D 0x0D1A)     0xA8)
-   ((0x0D1A 0x0D4D 0x0D1B)     0xD1)
-   ((0x0D1A)                   0x4E)
-   ((0x0D1B)                   0x4F)
-   ((0x0D1C 0x0D4D 0x0D1C)     0xD6)
-   ((0x0D1C 0x0D4D 0x0D1E)     0xDA)
-   ((0x0D1C)                   0x50)
-   ((0x0D1D)                   0x51)
-   ((0x0D1E 0x0D4D 0x0D1A)     0xA9)
-   ((0x0D1E 0x0D4D 0x0D1E)     0xAA)
-   ((0x0D1E)                   0x52)
-   ((0x0D1F 0x0D4D 0x0D1F)     0xAB)
-   ((0x0D1F)                   0x53)
-   ((0x0D20)                   0x54)
-   ((0x0D21 0x0D4D 0x0D21)     0xCD)
-   ((0x0D21)                   0x55)
-   ((0x0D22)                   0x56)
-   ((0x0D23 0x0D41 0x0D4D)     0xAC)
-   ((0x0D23 0x0D41)            0xE9)
-   ((0x0D23 0x0D4D 0x0D1F)     0xAD)
-   ((0x0D23 0x0D4D 0x0D23)     0xAE)
-   ((0x0D23 0x0D4D 0x0D2E)     0xD7)
-   ((0x0D23 0x0D4D 0x0D21)     0xDE)
-   ((0x0D23)                   0x57)
-   ((0x0D24 0x0D4D 0x0D24)     0xAF)
-   ((0x0D24 0x0D4D 0x0D25)     0xB0)
-   ((0x0D24 0x0D4D 0x0D38)     0xD5)
-   ((0x0D24 0x0D4D 0x0D2D)     0xDB)
-   ((0x0D24 0x0D4D 0x0D2E)     0xDF)
-   ((0x0D24)                   0x58)
-   ((0x0D25)                   0x59)
-   ((0x0D26 0x0D4D 0x0D26)     0xB1)
-   ((0x0D26 0x0D4D 0x0D27)     0xB2)
-   ((0x0D26)                   0x5A)
-   ((0x0D27)                   0x5B)
-   ((0x0D28 0x0D41 0x0D4D)     0xB3)
-   ((0x0D28 0x0D41)            0xEB)
-   ((0x0D28 0x0D4D 0x0D24)     0xB4)
-   ((0x0D28 0x0D4D 0x0D26)     0xB5)
-   ((0x0D28 0x0D4D 0x0D28 0x0D41)              0xEC)
-   ((0x0D28 0x0D4D 0x0D28)     0xB6)
-   ((0x0D28 0x0D4D 0x0D2E)     0xB7)
-   ((0x0D28 0x0D4D 0x0D27)     0xD4)
-   ((0x0D28 0x0D4D 0x0D25)     0xD9)
-   ((0x0D28 0x0D4D 0x0D31)     0xE2)
-   ((0x0D28)                   0x5C)
-   ((0x0D2A 0x0D4D 0x0D2A)     0xB8)
-   ((0x0D2A 0x0D4D 0x0D32)     0xB9)
-   ((0x0D2A)                   0x5D)
-   ((0x0D2B)                   0x5E)
-   ((0x0D2C 0x0D4D 0x0D2C)     0xBA)
-   ((0x0D2C 0x0D4D 0x0D32)     0xBB)
-   ((0x0D2C 0x0D4D 0x0D27)     0xCF)
-   ((0x0D2C 0x0D4D 0x0D26)     0xD0)
-   ((0x0D2C)                   0x5F)
-   ((0x0D2D)                   0x60)
-   ((0x0D2E 0x0D4D 0x0D2A)     0xBC)
-   ((0x0D2E 0x0D4D 0x0D2E)     0xBD)
-   ((0x0D2E 0x0D4D 0x0D32)     0xBE)
-   ((0x0D2E)                   0x61)
-   ((0x0D2F)                   0x62)
-   ((0x0D2F 0x0D4D 0x0D2F)     0xBF)
-   ((0x0D2F 0x0D4D 0x0D15 0x0D4D 0x0D15)               0xED)
-   ((0x0D30 0x0D41 0x0D4D)     0xC0)
-   ((0x0D30 0x0D41)            0xEA)
-   ((0x0D30)                   0x63)
-   ((0x0D31 0x0D4D 0x0D31)     0xE4)
-   ((0x0D31 0x0D4D)            0xC0)
-   ((0x0D31 0x0D41 0x0D4D)     0xC0)
-   ((0x0D31)                   0x64)
-   ((0x0D32 0x0D41 0x0D4D)     0xC2)
-   ((0x0D32 0x0D4D 0x0D32)     0xC3)
-   ((0x0D32 0x0D4D 0x0D2A)     0xE5)
-   ((0x0D32)                   0x65)
-   ((0x0D33 0x0D41 0x0D4D)     0xC4)
-   ((0x0D33 0x0D4D 0x0D33)     0xC5)
-   ((0x0D33)                   0x66)
-   ((0x0D34)                   0x67)
-   ((0x0D35 0x0D4D 0x0D35)     0xC6)
-   ((0x0D35)                   0x68)
-   ((0x0D36 0x0D4D 0x0D32)     0xC7)
-   ((0x0D36 0x0D4D 0x0D36)     0xC8)
-   ((0x0D36 0x0D4D 0x0D1A)     0xDD)
-   ((0x0D36)                   0x69)
-   ((0x0D37 0x0D4D 0x0D1F)     0xE3)
-   ((0x0D37)                   0x6A)
-   ((0x0D38 0x0D4D 0x0D32)     0xC9)
-   ((0x0D38 0x0D4D 0x0D38)     0xCA)
-   ((0x0D38 0x0D4D 0x0D31 0x0D4D 0x0D31)               0xCC)
-   ((0x0D38 0x0D4D 0x0D25)     0xD8)
-   ((0x0D38)                   0x6B)
-   ((0x0D39 0x0D4D 0x0D32)     0xCB)
-   ((0x0D39 0x0D4D 0x0D2E)     0xD2)
-   ((0x0D39 0x0D4D 0x0D28)     0xD3)
-   ((0x0D39)                   0x6C)
-   ;; Dependent vowel signs
-   ((0x0D3E)                   0x6D)
-   ((0x0D3F)                   0x6E)
-   ((0x0D40)                   0x6F)
-   ((0x0D41)                   0x70)
-   ((0x0D42)                   0x71)
-   ((0x0D43)                   0x72)
-   ((0x0D46)                   0x73)
-   ((0x0D47)                   0x74)
-   ((0x0D48)                   0x73 0x73)
-   ((0x0D4A)                   0x73 0x6D)
-   ((0x0D4B)                   0x74 0x6D)
-   ((0x0D4C)                   0x75)
-   ;; Various signs
-   ((0x0D4D 0x0D2F 0x0D41)     0x7C)
-   ((0x0D4D 0x0D2F 0x0D42)     0x7D)
-   ((0x0D4D 0x0D2F)            0x79)
-   ((0x0D4D 0x0D30 0x0D4D)     0x72)
-   ((0x0D4D 0x0D30)            0x7B)
-   ((0x0D4D 0x0D31 0x0D4D)     0x72)
-   ((0x0D4D 0x0D31)            0x7B)
-   ((0x0D4D 0x0D35)            0x7A)
-   ((0x0D4D 0x0D4D)            0x76)
-   ((0x0D4D)                   0x76)
-   ((0x0D57)                   0x75))))
-
-(category
- (0x00 0xFF    ?M)
- (0x49 0x6C    ?C)
- (0x73         ?E)                     ; E
- (0x74         ?e)                     ; EE
- (0x79         ?Y)                     ; yakar
- (0x7A         ?V)                     ; vakar
- (0x7B         ?R)                     ; rrakar
- (0xA1 0xE5    ?C))
-
-(generator
- (0
-  (cond
-   (" (C[YV]?)(R) "
-    < (2 =) (1 = *) >)
-   (" (R?C[YV]?)(EE?) "
-    < (2 = *) (1 = *) >)
-   (" (R?C[YV]?)(e) "
-    < (2 = ) (1 = *) >)
-   (" ([^ ]*) "
-    < (1 = *) >)
-   ("." [ = ]))
-  *))
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/MLM-OTF.flt b/MLM-OTF.flt
deleted file mode 100644 (file)
index abf1326..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-;; MLM-OTF.flt -- Font Layout Table for Malayalam OpenType font
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> MLM-OTF.flt
-;;;
-;;; For Malayalam OpenType fonts to draw the reformed Malayalam script.
-
-;; The first stage is to extract a syllable and re-order characters.
-(category
- ;; C: consonant (except for BPR)
- ;; B: consonant that is the subject of "blws" feature
- ;; P: consonant that is the subject of "pstf" feature
- ;; R: consonant RA
- ;; H: HALANT (VIRAMA)
- ;; m: MATRA (Mpre)
- ;; p: MATRA (Mpost)
- ;; t: MATRA (two-part: Mpre+Mpost)
- ;; A: vowel modifier (post) (ANUSVARA and VISARGA)
- ;; V: independent vowel
- ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
- ;; J: ZWJ (ZERO WIDTH JOINER)
- ;; E: else (all other independnt characters)
- (0x0D00 0x0D7F        ?E)                     ; else
- (0x0D02 0x0D03        ?A)                     ; ANUSVARA & VISARGA
- (0x0D05 0x0D14        ?V)                     ; independent vowel
- (0x0D15 0x0D39 ?C)                    ; consonant
-
- ;; Accorind to www.microsoft.com/typography/otfntdev/indicot/appen.htm,
- ;; these must be classified into 'B' category, but at least, it
- ;; doesn't work with this font
- ;; http://www.supersoftweb.com/THOOLIUC.TTF
- ;;(0x0D1F     ?B)                     ; TTA
- ;;(0x0D23     ?B)                     ; NNA
- ;;(0x0D26     ?B)                     ; DA
- (0x0D2F       ?P)                     ; YA
- (0x0D30       ?R)                     ; RA
- (0x0D32       ?B)                     ; LA
- (0x0D35       ?P)                     ; VA
- (0x0D3E 0x0D43        ?p)                     ; dependent vowel (Mpost)
- (0x0D46 0x0D48        ?m)                     ; dependent vowel (Mpre)
- (0x0D4A 0x0D4C ?t)                    ; dependent vowel (two-part)
- (0x0D4D       ?H)                     ; VIRAMA (HALANT)
- (0x0D57       ?p)                     ; dependent vowel (Mpost)
- (0x0D60       ?V)                     ; VOCALIC RR
- (0x0D61       ?V)                     ; VOCALIC LL
- (0x200C       ?N)                     ; ZWNJ
- (0x200D       ?J)                     ; ZWJ
- (0x0D7D       ?x)                     ; marker inserted before base-C
- (0x0D7E       ?y)                     ; marker inserted after base-C
- (0x0D7F       ?z)                     ; marker inserted before last Ra
- )
-
-;; The 1st stage is to extract a syllable while moving a Halant
-;; following Cbase to the tail and partitioning two-part matras into
-;; parts.
-(generator
- (0
-  (cond
-   ;; If [CR]H is followed by ZWNJ/ZWJ, move ZWNJ/ZWJ) to the head so
-   ;; that the later stages find it quickly.
-   ("([CBPR]H)([NJ])"
-    < | (2 =) (1 = =) | >)
-
-   ;; A syllable starting with a consonant and ending with a vowel
-   ;; and/or a vowel modifier.
-   ("(([CBPR]H)*[CBPR])([pmt]A?|A)"
-    < | (1 move-halant) (3 partition = =) | >)
-
-   ;; A syllable starting with a consonant and ending without a vowel
-   ;; nor a vowel modifier.
-   ("(([CBPR]H)*[CBPR])(H)?"
-    < | (1 move-halant) (3 =) | >)
-
-   ;; A syllable starting with an independent vowel.
-   ("(VA?)"
-    < | (1 = *) | >)
-
-   ;; Other independent character.
-   ("." =))
-  *)
-
- ;; Move Halant to the tail if necessary.  Insert 0x0D7D before Cbase,
- ;; 0x0D7E after Cbase, 0x0D7F before the tailing RH (if any).  They
- ;; work as markers in the following stages.
- (move-halant
-  (cond
-   ;; In the first two cases, we don't have to move Halant.
-   ("[BPR]$"                           ; Single consonant.
-    0x0D7D 0x0D7E =)
-   ("(([CBPR]H)*)(C)$"                 ; Cbase is at tail.
-    (1 = *) 0x0D7D (3 =) 0x0D7E)
-   ;; In the following cases, we must move Halant to the tail.
-   ("(([CBPR]H)*)([C])H(([BR]H)*)(R)$" ; Cbase is at head or middle.
-    (1 = *) 0x0D7D (3 =) 0x0D7E (4 = *) 0x0D7F 0x0D30 0x0D4D)
-   ("(([CBPR]H)*)([C])H(([BR]H)*[BP])$" ; Cbase is at head or middle.
-    (1 = *) 0x0D7D (3 =) 0x0D7E (4 = *) 0x0D4D)
-   ("(RH)?(.)H(.*)$"                   ; No Cbase, move the first
-                                       ; Halant to the tail.
-    (1 = *) 0x0D7D (2 = ) 0x0D7E (3 = *) 0x0D4D)))
-
- ;; Partition two-part matras into parts.
- (partition
-  (cond
-   ((0x0D4A)   0x0D46 0x0D3E)
-   ((0x0D4B)   0x0D47 0x0D3E)
-   ;; Unicode suggests this partitioning:
-   ((0x0D4C)   0x0D46 0x0D57)
-   ;; but it is questionable.  Perhaps, this substitution is better.
-   ;; ((0x0D4C)        0x0D57)
-   )))
-
-;; The 2nd stage is to apply GSUB for prebase part.
-(generator
- (0
-  (cond
-   ;; Originally [CBPR]H is followed by ZWNJ.  Apply no feature (just
-   ;; cmap).
-   (" N([^ ]*) "
-    (1 otf:mlym=+))
-
-   ;; Originally [CBPR]H is followed by ZWJ.  Apply only GSUB haln
-   ;; feature.
-   (" J([^ ]*) "
-    (1 otf:mlym=haln+))
-
-   ;; Syllable starting with a consonant should match this pattern.
-   (" ([^ y]*)y([^ z]*)(z..)?([^ ]*) "
-    |
-    (1 otf:mlym=~blwf,~pstf,~blws,~psts,*+) ; Prebase part.
-    0x0D7E                                ; Preserve this marker.
-    (2 = *)                               ; Postbase part.
-    (3 = *)                               ; Optional tailing RH.
-    (4 = *)                               ; Optional Mpost.
-    |)
-
-   ;; A syllable starting with an independent vowel.
-   (" ([^ ]*) "
-    (1 otf:mlym+))
-
-   ;; Any other independent character.  Apply no feature (just cmap).
-   ("."
-    [ otf:mlym=+ ] ))
-  *))
-
-;; The 3rd stage is to move Mpre (if any) and tailing RH (if any)
-;; forward to just before the base consonant.
-(generator
- (0
-  (cond
-   (" ([^x]*)(.)xy([^ zm]*)(z(..))?(m)?([^ ]*) "
-    | (1 = *) (4 (5 otf:mlym=pstf+)) (6 =) 0x0D7D (2 =) (3 = *) (7 = *) |)
-   (" ([^x]*)x(.)y([^ zm]*)(z(..))?(m)?([^ ]*) "
-    | (1 = *) (4 (5 otf:mlym=pstf+)) (6 =) 0x0D7D (2 =) (3 = *) (7 = *) |)
-   (" xy([^ m]*)(m)?([^ ]*) "
-    | (2 =) 0x0D7D (1 = *) (3 = *) |)
-   ("[NJ]")
-   ("."
-    = ))
-  *))
-
-;; The 4th stage is to apply GSUB to postbase part.
-(generator
- (0
-  (cond
-   (" ([^x]*)x(.H) "
-    | (1 = *) (2 otf:mlum=haln) |)
-   (" ([^x]*)x([^ ]*) "
-    | (1 = *) (2 otf:mlym=~akhn,~haln,blwf,pstf,vatu,*+) |)
-   ("." =))
-  *))
-
-
-
-;; The 5th (last) stage is to apply GPOS features.
-(generator
- (0
-  (cond
-   (" ([^ ]*) " (1 otf:mlym=))
-   ("." =))
-  *))
-
-;; Local Variables:
-;; mode: emacs-lisp
-;; End:
diff --git a/MLYM-CDAC.flt b/MLYM-CDAC.flt
new file mode 100644 (file)
index 0000000..db6abe0
--- /dev/null
@@ -0,0 +1,238 @@
+;; MLM-CDAC.flt -- Font Layout Table for Malayalam (C-DAC font)
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> MLM-CDAC.flt
+;;;
+;;; For the font MLKR0ntt.ttf (developped by C-DAC, encoding is ISFOC)
+;;; to draw Malayalam script.  The font is available at:
+;;; <ul>
+;;; <li>       infopage: http://www.iiit.net/ltrc/iscii/FAQ.htm#SEC2.1
+;;; <li> download: http://www.iiit.net/ltrc/iscii/iscii_plugin_linux.tar.gz
+;;; </ul>
+
+(category
+ (0x0D00 0x0D7F        ?E)                     ; all malayalam characters
+ (0x0D02       ?A)                     ; ANUSVARA
+ (0x0D03       ?G)                     ; VISARGA
+ (0x0D05 0x0D14        ?V)                     ; independent vowel
+ (0x0D15 0x0D39 ?C)                    ; consonant
+ (0x0D3E 0x0D4C ?M)                    ; dependent vowel (MATRA)
+ (0x0D4D       ?H)                     ; HALANT
+ )
+
+(generator
+ (0
+  (cond
+   ("(VA?)|G|((CH)?(CH)?(CH)?CH)?C(H|M?[AH]?)?" | glyph * |)
+   ("." glyph ))
+  * )
+
+ (glyph
+  (cond
+   ;; various sign
+   ((0x0D02)                   0x77)
+   ((0x0D03)                   0x78)
+   ;; Independent Vowels
+   ((0x0D05)                   0x41)
+   ((0x0D06)                   0x42)
+   ((0x0D07)                   0x43)
+   ((0x0D08)                   0x43 0x75)
+   ((0x0D09)                   0x44)
+   ((0x0D0A)                   0x44 0x75)
+   ((0x0D0B)                   0x45)
+   ((0x0D0C)                   0x23)
+   ((0x0D0E)                   0x46)
+   ((0x0D0F)                   0x47)
+   ((0x0D10)                   0x73 0x46)
+   ((0x0D12)                   0x48)
+   ((0x0D13)                   0x48 0x6D)
+   ((0x0D14)                   0x48 0x75)
+   ;; Consonants
+   ((0x0D15 0x0D4D 0x0D15 0x0D41)              0xE7)
+   ((0x0D15 0x0D4D 0x0D15)     0xA1)
+   ((0x0D15 0x0D4D 0x0D33)     0xA2)
+   ((0x0D15 0x0D4D 0x0D37)     0xA3)
+   ((0x0D15 0x0D4D 0x0D1F)     0xCE)
+   ((0x0D15 0x0D4D 0x0D24)     0xE0)
+   ((0x0D15 0x0D41)            0xE6)
+   ((0x0D15 0x0D41)            0xE6)
+   ((0x0D15)                   0x49)
+   ((0x0D16)                   0x4A)
+   ((0x0D17 0x0D4D 0x0D17)     0xA4)
+   ((0x0D17 0x0D4D 0x0D32)     0xA5)
+   ((0x0D17 0x0D4D 0x0D2E)     0xDC)
+   ((0x0D17 0x0D4D 0x0D28)     0xE1)
+   ((0x0D17)                   0x4B)
+   ((0x0D18)                   0x4C)
+   ((0x0D19 0x0D4D 0x0D15)     0xA6)
+   ((0x0D19 0x0D4D 0x0D19)     0xA7)
+   ((0x0D19 0x0D4D 0x0D15 0x0D41)              0xE8)
+   ((0x0D19)                   0x4D)
+   ((0x0D1A 0x0D4D 0x0D1A)     0xA8)
+   ((0x0D1A 0x0D4D 0x0D1B)     0xD1)
+   ((0x0D1A)                   0x4E)
+   ((0x0D1B)                   0x4F)
+   ((0x0D1C 0x0D4D 0x0D1C)     0xD6)
+   ((0x0D1C 0x0D4D 0x0D1E)     0xDA)
+   ((0x0D1C)                   0x50)
+   ((0x0D1D)                   0x51)
+   ((0x0D1E 0x0D4D 0x0D1A)     0xA9)
+   ((0x0D1E 0x0D4D 0x0D1E)     0xAA)
+   ((0x0D1E)                   0x52)
+   ((0x0D1F 0x0D4D 0x0D1F)     0xAB)
+   ((0x0D1F)                   0x53)
+   ((0x0D20)                   0x54)
+   ((0x0D21 0x0D4D 0x0D21)     0xCD)
+   ((0x0D21)                   0x55)
+   ((0x0D22)                   0x56)
+   ((0x0D23 0x0D41 0x0D4D)     0xAC)
+   ((0x0D23 0x0D41)            0xE9)
+   ((0x0D23 0x0D4D 0x0D1F)     0xAD)
+   ((0x0D23 0x0D4D 0x0D23)     0xAE)
+   ((0x0D23 0x0D4D 0x0D2E)     0xD7)
+   ((0x0D23 0x0D4D 0x0D21)     0xDE)
+   ((0x0D23)                   0x57)
+   ((0x0D24 0x0D4D 0x0D24)     0xAF)
+   ((0x0D24 0x0D4D 0x0D25)     0xB0)
+   ((0x0D24 0x0D4D 0x0D38)     0xD5)
+   ((0x0D24 0x0D4D 0x0D2D)     0xDB)
+   ((0x0D24 0x0D4D 0x0D2E)     0xDF)
+   ((0x0D24)                   0x58)
+   ((0x0D25)                   0x59)
+   ((0x0D26 0x0D4D 0x0D26)     0xB1)
+   ((0x0D26 0x0D4D 0x0D27)     0xB2)
+   ((0x0D26)                   0x5A)
+   ((0x0D27)                   0x5B)
+   ((0x0D28 0x0D41 0x0D4D)     0xB3)
+   ((0x0D28 0x0D41)            0xEB)
+   ((0x0D28 0x0D4D 0x0D24)     0xB4)
+   ((0x0D28 0x0D4D 0x0D26)     0xB5)
+   ((0x0D28 0x0D4D 0x0D28 0x0D41)              0xEC)
+   ((0x0D28 0x0D4D 0x0D28)     0xB6)
+   ((0x0D28 0x0D4D 0x0D2E)     0xB7)
+   ((0x0D28 0x0D4D 0x0D27)     0xD4)
+   ((0x0D28 0x0D4D 0x0D25)     0xD9)
+   ((0x0D28 0x0D4D 0x0D31)     0xE2)
+   ((0x0D28)                   0x5C)
+   ((0x0D2A 0x0D4D 0x0D2A)     0xB8)
+   ((0x0D2A 0x0D4D 0x0D32)     0xB9)
+   ((0x0D2A)                   0x5D)
+   ((0x0D2B)                   0x5E)
+   ((0x0D2C 0x0D4D 0x0D2C)     0xBA)
+   ((0x0D2C 0x0D4D 0x0D32)     0xBB)
+   ((0x0D2C 0x0D4D 0x0D27)     0xCF)
+   ((0x0D2C 0x0D4D 0x0D26)     0xD0)
+   ((0x0D2C)                   0x5F)
+   ((0x0D2D)                   0x60)
+   ((0x0D2E 0x0D4D 0x0D2A)     0xBC)
+   ((0x0D2E 0x0D4D 0x0D2E)     0xBD)
+   ((0x0D2E 0x0D4D 0x0D32)     0xBE)
+   ((0x0D2E)                   0x61)
+   ((0x0D2F)                   0x62)
+   ((0x0D2F 0x0D4D 0x0D2F)     0xBF)
+   ((0x0D2F 0x0D4D 0x0D15 0x0D4D 0x0D15)               0xED)
+   ((0x0D30 0x0D41 0x0D4D)     0xC0)
+   ((0x0D30 0x0D41)            0xEA)
+   ((0x0D30)                   0x63)
+   ((0x0D31 0x0D4D 0x0D31)     0xE4)
+   ((0x0D31 0x0D4D)            0xC0)
+   ((0x0D31 0x0D41 0x0D4D)     0xC0)
+   ((0x0D31)                   0x64)
+   ((0x0D32 0x0D41 0x0D4D)     0xC2)
+   ((0x0D32 0x0D4D 0x0D32)     0xC3)
+   ((0x0D32 0x0D4D 0x0D2A)     0xE5)
+   ((0x0D32)                   0x65)
+   ((0x0D33 0x0D41 0x0D4D)     0xC4)
+   ((0x0D33 0x0D4D 0x0D33)     0xC5)
+   ((0x0D33)                   0x66)
+   ((0x0D34)                   0x67)
+   ((0x0D35 0x0D4D 0x0D35)     0xC6)
+   ((0x0D35)                   0x68)
+   ((0x0D36 0x0D4D 0x0D32)     0xC7)
+   ((0x0D36 0x0D4D 0x0D36)     0xC8)
+   ((0x0D36 0x0D4D 0x0D1A)     0xDD)
+   ((0x0D36)                   0x69)
+   ((0x0D37 0x0D4D 0x0D1F)     0xE3)
+   ((0x0D37)                   0x6A)
+   ((0x0D38 0x0D4D 0x0D32)     0xC9)
+   ((0x0D38 0x0D4D 0x0D38)     0xCA)
+   ((0x0D38 0x0D4D 0x0D31 0x0D4D 0x0D31)               0xCC)
+   ((0x0D38 0x0D4D 0x0D25)     0xD8)
+   ((0x0D38)                   0x6B)
+   ((0x0D39 0x0D4D 0x0D32)     0xCB)
+   ((0x0D39 0x0D4D 0x0D2E)     0xD2)
+   ((0x0D39 0x0D4D 0x0D28)     0xD3)
+   ((0x0D39)                   0x6C)
+   ;; Dependent vowel signs
+   ((0x0D3E)                   0x6D)
+   ((0x0D3F)                   0x6E)
+   ((0x0D40)                   0x6F)
+   ((0x0D41)                   0x70)
+   ((0x0D42)                   0x71)
+   ((0x0D43)                   0x72)
+   ((0x0D46)                   0x73)
+   ((0x0D47)                   0x74)
+   ((0x0D48)                   0x73 0x73)
+   ((0x0D4A)                   0x73 0x6D)
+   ((0x0D4B)                   0x74 0x6D)
+   ((0x0D4C)                   0x75)
+   ;; Various signs
+   ((0x0D4D 0x0D2F 0x0D41)     0x7C)
+   ((0x0D4D 0x0D2F 0x0D42)     0x7D)
+   ((0x0D4D 0x0D2F)            0x79)
+   ((0x0D4D 0x0D30 0x0D4D)     0x72)
+   ((0x0D4D 0x0D30)            0x7B)
+   ((0x0D4D 0x0D31 0x0D4D)     0x72)
+   ((0x0D4D 0x0D31)            0x7B)
+   ((0x0D4D 0x0D35)            0x7A)
+   ((0x0D4D 0x0D4D)            0x76)
+   ((0x0D4D)                   0x76)
+   ((0x0D57)                   0x75))))
+
+(category
+ (0x00 0xFF    ?M)
+ (0x49 0x6C    ?C)
+ (0x73         ?E)                     ; E
+ (0x74         ?e)                     ; EE
+ (0x79         ?Y)                     ; yakar
+ (0x7A         ?V)                     ; vakar
+ (0x7B         ?R)                     ; rrakar
+ (0xA1 0xE5    ?C))
+
+(generator
+ (0
+  (cond
+   (" (C[YV]?)(R) "
+    < (2 =) (1 = *) >)
+   (" (R?C[YV]?)(EE?) "
+    < (2 = *) (1 = *) >)
+   (" (R?C[YV]?)(e) "
+    < (2 = ) (1 = *) >)
+   (" ([^ ]*) "
+    < (1 = *) >)
+   ("." [ = ]))
+  *))
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/MLYM-OTF.flt b/MLYM-OTF.flt
new file mode 100644 (file)
index 0000000..abf1326
--- /dev/null
@@ -0,0 +1,204 @@
+;; MLM-OTF.flt -- Font Layout Table for Malayalam OpenType font
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> MLM-OTF.flt
+;;;
+;;; For Malayalam OpenType fonts to draw the reformed Malayalam script.
+
+;; The first stage is to extract a syllable and re-order characters.
+(category
+ ;; C: consonant (except for BPR)
+ ;; B: consonant that is the subject of "blws" feature
+ ;; P: consonant that is the subject of "pstf" feature
+ ;; R: consonant RA
+ ;; H: HALANT (VIRAMA)
+ ;; m: MATRA (Mpre)
+ ;; p: MATRA (Mpost)
+ ;; t: MATRA (two-part: Mpre+Mpost)
+ ;; A: vowel modifier (post) (ANUSVARA and VISARGA)
+ ;; V: independent vowel
+ ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
+ ;; J: ZWJ (ZERO WIDTH JOINER)
+ ;; E: else (all other independnt characters)
+ (0x0D00 0x0D7F        ?E)                     ; else
+ (0x0D02 0x0D03        ?A)                     ; ANUSVARA & VISARGA
+ (0x0D05 0x0D14        ?V)                     ; independent vowel
+ (0x0D15 0x0D39 ?C)                    ; consonant
+
+ ;; Accorind to www.microsoft.com/typography/otfntdev/indicot/appen.htm,
+ ;; these must be classified into 'B' category, but at least, it
+ ;; doesn't work with this font
+ ;; http://www.supersoftweb.com/THOOLIUC.TTF
+ ;;(0x0D1F     ?B)                     ; TTA
+ ;;(0x0D23     ?B)                     ; NNA
+ ;;(0x0D26     ?B)                     ; DA
+ (0x0D2F       ?P)                     ; YA
+ (0x0D30       ?R)                     ; RA
+ (0x0D32       ?B)                     ; LA
+ (0x0D35       ?P)                     ; VA
+ (0x0D3E 0x0D43        ?p)                     ; dependent vowel (Mpost)
+ (0x0D46 0x0D48        ?m)                     ; dependent vowel (Mpre)
+ (0x0D4A 0x0D4C ?t)                    ; dependent vowel (two-part)
+ (0x0D4D       ?H)                     ; VIRAMA (HALANT)
+ (0x0D57       ?p)                     ; dependent vowel (Mpost)
+ (0x0D60       ?V)                     ; VOCALIC RR
+ (0x0D61       ?V)                     ; VOCALIC LL
+ (0x200C       ?N)                     ; ZWNJ
+ (0x200D       ?J)                     ; ZWJ
+ (0x0D7D       ?x)                     ; marker inserted before base-C
+ (0x0D7E       ?y)                     ; marker inserted after base-C
+ (0x0D7F       ?z)                     ; marker inserted before last Ra
+ )
+
+;; The 1st stage is to extract a syllable while moving a Halant
+;; following Cbase to the tail and partitioning two-part matras into
+;; parts.
+(generator
+ (0
+  (cond
+   ;; If [CR]H is followed by ZWNJ/ZWJ, move ZWNJ/ZWJ) to the head so
+   ;; that the later stages find it quickly.
+   ("([CBPR]H)([NJ])"
+    < | (2 =) (1 = =) | >)
+
+   ;; A syllable starting with a consonant and ending with a vowel
+   ;; and/or a vowel modifier.
+   ("(([CBPR]H)*[CBPR])([pmt]A?|A)"
+    < | (1 move-halant) (3 partition = =) | >)
+
+   ;; A syllable starting with a consonant and ending without a vowel
+   ;; nor a vowel modifier.
+   ("(([CBPR]H)*[CBPR])(H)?"
+    < | (1 move-halant) (3 =) | >)
+
+   ;; A syllable starting with an independent vowel.
+   ("(VA?)"
+    < | (1 = *) | >)
+
+   ;; Other independent character.
+   ("." =))
+  *)
+
+ ;; Move Halant to the tail if necessary.  Insert 0x0D7D before Cbase,
+ ;; 0x0D7E after Cbase, 0x0D7F before the tailing RH (if any).  They
+ ;; work as markers in the following stages.
+ (move-halant
+  (cond
+   ;; In the first two cases, we don't have to move Halant.
+   ("[BPR]$"                           ; Single consonant.
+    0x0D7D 0x0D7E =)
+   ("(([CBPR]H)*)(C)$"                 ; Cbase is at tail.
+    (1 = *) 0x0D7D (3 =) 0x0D7E)
+   ;; In the following cases, we must move Halant to the tail.
+   ("(([CBPR]H)*)([C])H(([BR]H)*)(R)$" ; Cbase is at head or middle.
+    (1 = *) 0x0D7D (3 =) 0x0D7E (4 = *) 0x0D7F 0x0D30 0x0D4D)
+   ("(([CBPR]H)*)([C])H(([BR]H)*[BP])$" ; Cbase is at head or middle.
+    (1 = *) 0x0D7D (3 =) 0x0D7E (4 = *) 0x0D4D)
+   ("(RH)?(.)H(.*)$"                   ; No Cbase, move the first
+                                       ; Halant to the tail.
+    (1 = *) 0x0D7D (2 = ) 0x0D7E (3 = *) 0x0D4D)))
+
+ ;; Partition two-part matras into parts.
+ (partition
+  (cond
+   ((0x0D4A)   0x0D46 0x0D3E)
+   ((0x0D4B)   0x0D47 0x0D3E)
+   ;; Unicode suggests this partitioning:
+   ((0x0D4C)   0x0D46 0x0D57)
+   ;; but it is questionable.  Perhaps, this substitution is better.
+   ;; ((0x0D4C)        0x0D57)
+   )))
+
+;; The 2nd stage is to apply GSUB for prebase part.
+(generator
+ (0
+  (cond
+   ;; Originally [CBPR]H is followed by ZWNJ.  Apply no feature (just
+   ;; cmap).
+   (" N([^ ]*) "
+    (1 otf:mlym=+))
+
+   ;; Originally [CBPR]H is followed by ZWJ.  Apply only GSUB haln
+   ;; feature.
+   (" J([^ ]*) "
+    (1 otf:mlym=haln+))
+
+   ;; Syllable starting with a consonant should match this pattern.
+   (" ([^ y]*)y([^ z]*)(z..)?([^ ]*) "
+    |
+    (1 otf:mlym=~blwf,~pstf,~blws,~psts,*+) ; Prebase part.
+    0x0D7E                                ; Preserve this marker.
+    (2 = *)                               ; Postbase part.
+    (3 = *)                               ; Optional tailing RH.
+    (4 = *)                               ; Optional Mpost.
+    |)
+
+   ;; A syllable starting with an independent vowel.
+   (" ([^ ]*) "
+    (1 otf:mlym+))
+
+   ;; Any other independent character.  Apply no feature (just cmap).
+   ("."
+    [ otf:mlym=+ ] ))
+  *))
+
+;; The 3rd stage is to move Mpre (if any) and tailing RH (if any)
+;; forward to just before the base consonant.
+(generator
+ (0
+  (cond
+   (" ([^x]*)(.)xy([^ zm]*)(z(..))?(m)?([^ ]*) "
+    | (1 = *) (4 (5 otf:mlym=pstf+)) (6 =) 0x0D7D (2 =) (3 = *) (7 = *) |)
+   (" ([^x]*)x(.)y([^ zm]*)(z(..))?(m)?([^ ]*) "
+    | (1 = *) (4 (5 otf:mlym=pstf+)) (6 =) 0x0D7D (2 =) (3 = *) (7 = *) |)
+   (" xy([^ m]*)(m)?([^ ]*) "
+    | (2 =) 0x0D7D (1 = *) (3 = *) |)
+   ("[NJ]")
+   ("."
+    = ))
+  *))
+
+;; The 4th stage is to apply GSUB to postbase part.
+(generator
+ (0
+  (cond
+   (" ([^x]*)x(.H) "
+    | (1 = *) (2 otf:mlum=haln) |)
+   (" ([^x]*)x([^ ]*) "
+    | (1 = *) (2 otf:mlym=~akhn,~haln,blwf,pstf,vatu,*+) |)
+   ("." =))
+  *))
+
+
+
+;; The 5th (last) stage is to apply GPOS features.
+(generator
+ (0
+  (cond
+   (" ([^ ]*) " (1 otf:mlym=))
+   ("." =))
+  *))
+
+;; Local Variables:
+;; mode: emacs-lisp
+;; End:
diff --git a/MYMR-MYAZEDI.flt b/MYMR-MYAZEDI.flt
new file mode 100644 (file)
index 0000000..9526120
--- /dev/null
@@ -0,0 +1,274 @@
+;; MYANMAR-ZEDI.flt -- Font Layout Table for Myanmar (Zedi font)
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> MYANMAR-ZEDI.flt
+;;;
+;;; For the Myanmar Zedi family fonts to draw Myanmar script.
+;;; <ul>
+;;; <li> infopage: http://www.myazedi.com/downloads/MyaZedi_M17N.ttf
+;;; </ul>
+
+;; 1st stage
+;; Extract syllable while detecting Kinzi, substituting subscripts,
+;; and removing Halants.
+
+(category
+ (0x1000 0x107F ?O)                    ; other
+ (0x1000 0x1021 ?C)                    ; consonant except for c and K
+ (0x1000 0x1003 ?c)                    ; consonant that has subscript form
+ (0x1004       ?K)                     ; consonant NGA
+ (0x1005 0x1008 ?c)
+ (0x100B 0x100C ?c)
+ (0x100F 0x1019 ?c)
+ (0x1014       ?n)                     ; consonant NA
+ (0x101C       ?c)
+ (0x101A       ?M)                     ; cosonant that may be used as Medial
+ (0x101B       ?r)                     ; Medial Ra
+ (0x101D       ?M)
+ (0x101F       ?M)
+ (0x1021 0x102A ?I)                    ; independent vowel
+ (0x102C 0x1032        ?V)                     ; dependent Vowel
+ (0x1036       ?A)                     ; sign ANUSVARA
+ (0x1037 0x1038        ?S)                     ; other sign
+ (0x1039       ?H)                     ; HALANT (VIRAMA)
+ (0x200C       ?N)                     ; ZWNJ (Zero Width Non Joiner)
+ )
+
+(generator
+ (0
+  (cond
+   ;; Special case for Medial Ra: don't use Kinzi for this pattern.
+   ("(K)(Hr(HM)*)(V*A?H?)N?(S*)"
+    | < (1 =) (2 remove-halant *) (4 = *) (5 = *) > |)
+
+   ;; The following regular expression matches a syllable pattern
+   ;; described in Table 10-3 of the Unicode Standard 4.0 .
+   ;;<1-> <--------2--------><--4--><--6--->  <7->
+   ;;             <---3--->   <5->
+   ("(KH)?([CcnKMr](H[CcnK])?)((H[Mr])*)(V*A?H?)N?(S*)"
+    | < (1 0xE390) (2 consonant) (4 remove-halant *) (6 = *) (7 = *) > |)
+
+   ;; Fixme: I'm not sure about the syllable pattern for an
+   ;; independent vowel.
+   ("IV*[AS]*"
+    | < = * > |)
+
+   ;; Treat anything else as a single character.
+   ("."
+    [ = ]))
+  *)
+
+ (consonant
+  (cond
+   ((0x100B 0x1039 0x100C) 0xE10C)
+   ((0x100D 0x1039 0x100D) 0xE00D)
+   ((0x100E 0x1039 0x100D) 0xE10D)
+   ((0x100F 0x1039 0x100D) 0xE20D)
+   ((0x101E 0x1039 0x101E) 0xE01E)
+   ("(n)H([cn])" 0xE140 (2 subscript))
+   ("(.)H([cn])" (1 =) (2 subscript))
+   ("(.)H(.)" (1 =) (2 =))
+   ("." =)))
+
+ (subscript
+  (cond ((range 0x1000 0x101c) 0xE000)))
+
+ (remove-halant
+  (cond
+   ((0x1039))
+   ("." =))))
+
+;; 2nd stage
+;; Handle medials.
+
+(category
+ (0x1000 0x107F ?O)                    ; other
+ (0x1000 0x1021 ?W)                    ; wide consonant
+ (0x1001 0x1002 ?S)                    ; single-width consonant
+ (0x1004 0x1005 ?S)
+ (0x1007 0x1008        ?S)
+ (0x100B 0x100E        ?S)
+ (0x1012 0x1017 ?S)
+ (0x1019       ?S)
+ (0x101A       ?a)                     ; medial Ya
+ (0x101B       ?b)                     ; medial Ra
+ (0x101D       ?d)                     ; medial Wa
+ (0x101F       ?f)                     ; medial Ha
+ (0x1020       ?S)
+ (0x102D 0x102E ?V)                    ; dependent vowel (upper)
+ (0x1032       ?V)
+ (0x200C       ?N)                     ; ZWNJ
+ (0xE000 0xE3FF ?O)
+ (0xE000 0xE01E ?w)                    ; wide subscript
+ (0xE001 0xE002 ?s)                    ; single-width subscript
+ (0xE005       ?s)
+ (0xE007       ?s)
+ (0xE00B       ?s)
+ (0xE012 0xE017 ?s)
+ (0xE019       ?s)
+ (0xE10C 0xE10D ?s)
+ (0xE140       ?s)
+ (0xE20D       ?w)
+ (0xE390       ?K)                     ; Kinzi
+ )
+
+(generator
+ (0
+  (cond
+   (" (K)?([WSabdfws][WSKws]?[abdf][abdf]*[^ ]*) "
+    | (1 =) (2 medial = *) |)
+   (" ([^ ]*) "
+    = *)
+   ("."
+    =))
+  *)
+
+ (medial
+  (cond
+   ;; Medial Ya (U+101A)
+   ("(..?)adf" (1 = *) 0xE1A2)
+   ("(..?)ad"  (1 = *) 0xE1A4)
+   ("(..?)af"  (1 = *) 0xE1A3)
+   ("(..?)a"   (1 = *) 0xE1A1)
+
+   ;; Medial Ra (U+101B)
+   ("([Waf]|.[Ww])bdf" 0xE1BA (1 = *))
+   ("(..?)bdf"         0xE1B9 (1 = *))
+   ("([Waf]|.[Ww])bd"  0xE1B8 (1 = *))
+   ("(..?)bd"          0xE1B7 (1 = *))
+   ("([Waf]|.[Ww])b(f)?(V)"    0xE1B6 (1 = *) (2 0xE1F3) (3 =))
+   ("(..?)b(f)?(V)"            0xE1B5 (1 = *) (2 0xE1F3) (3 =))
+   ;; Single-width consonant + a wide subscript + Medial Ra.
+   ;; To use glyph E1B4, we must shift the single-width consonant to
+   ;; the right.
+   ("([Sd][Ww])b"      0xE1B4 Br>32Bl (1 = *))
+   ("([Waf].|.[Ww])b"  0xE1B4 (1 = *))
+   ("(s|..)b"          0xE1B3 (1 = *))
+   ("([Waf])b(f)?"     0xE1B2 (1 = *) (2 0xE1F3))
+   ("(.)b(f)?"         0xE1B1 (1 = *) (2 0xE1F3))
+   
+   ;; Medial Wa (U+101D)
+   ("(..?)df"          (1 = *) 0xE1D1)
+   ("(..?)d"           (1 = *) 0xE01D)
+
+   ;; Medial Ha (U+101F)
+   ((0x100A 0x101F)    0x100A 0xE1F3)
+   ("(..?)f"           (1 = =) 0xE1F1))))
+
+;; 3rd stage
+;; Reorder Kinzi and Vowel E.  Handle Kinzi-vowel combination.
+
+(category
+ (0x1000 0x107F ?O)
+ (0x1000 0x1021 ?C)                    ; Consonants except for c
+ (0x1001 0x1002 ?c)                    ; Consonants affecting the shape of 
+ (0x1004       ?c)                     ;   the following vowel U+102C
+ (0x1012       ?c)
+ (0x1015       ?c)
+ (0x101D       ?c)
+ (0x1008       ?b)
+ (0x100A 0x100D        ?b)
+ (0x1020       ?b)
+ (0x1025       ?b)
+ (0x102C       ?A)                     ; Vowel AA
+ (0x102D       ?i)                     ; Vowel I
+ (0x102E       ?I)                     ; Vowel II
+ (0x102F       ?u)                     ; Vowel U
+ (0x1030       ?U)                     ; Vowel UU
+ (0x1031       ?e)                     ; Vowel E
+ (0x1032       ?V)                     ; Vowel AI
+ (0x1036 0x1038        ?D)
+ (0x1039       ?H)
+ (0x200C       ?N)
+ (0xE000 0xE3FF ?O)
+ (0xE000 0xE01D ?b)
+ (0xE1A1 0xE1B0 ?b)
+ (0xE1B1 0xE1BA ?B)
+ (0xE140       ?C)
+ (0xE390       ?K)                     ; Kinzi
+)
+
+(generator
+ (0
+  (cond
+   (" K([CcbB]*)(e)([^ ]*) "
+    | (2 =) (1 = *) (3 kinzi-vowel = *) |)
+   (" K([CcbB]*)([^ ]*) "
+    | (1 = *) (2 kinzi-vowel = *) |)
+   (" ([CcbB]*)(e)([^ ]*) "
+    | (2 =) (1 = *) (3 = *) |)
+   (" ([^ ]*) "
+    = *)
+   ("."
+    =))
+  *)
+
+ (kinzi-vowel
+  (cond
+   ((0x102D) 0xE391)
+   ((0x102E) 0xE391)
+   ((0x1036) 0xE393)
+   0xE390)))
+
+;; 4th stage
+;; Various glyph substitions.
+
+(generator
+ (0
+  (cond
+   (" ([^ ]*) "
+    (1
+     (cond
+      ;; Consonant substituion.
+      ((0x1009 0x1039) 0xE009 0x1039)
+      ((0x1009 0xE005) 0xE109 0xE005)
+      ((0x101B 0x102F) 0xE01B 0x102F)
+
+      ;; Sign substituion.
+      ((0x1014 0x1037) 0x1014 0xE037)
+      ((0x101B 0x1037) 0x101B 0xE137)
+
+      ;; Vowel substituion.
+      ((0xE1F1 0x102F) 0xE1F2)
+      ("BcK?A"         = = = =)
+      ("cAH"           = 0xE02D)
+      ("cA"            = 0xE02C)
+      ("cKA"           = = Br>Bl 0xE02C)
+      ((0x1012 0xE012 0x102C 0x1039) = = 0xE02D)
+      ((0x1012 0xE01D 0x102C 0x1039) = = 0xE02D)
+      ((0x1012 0xE012 0x102C) = = 0xE02C)
+      ((0x1012 0xE01D 0x102C) = = 0xE02C)
+      ((0x102D 0x1036) 0xE2D1)
+      ("([bB][^u]*)u"  (1 = *) 0xE2F1)
+      ("([bB][^u]*)U"  (1 = *) 0xE2F2)
+      ("." =))
+     *))
+   ((0x200C)   0x4E tc.cc 0x48)
+   ("."
+    =))
+  *))
+
+;; Local Variables:
+;; mode: lisp
+;; coding: utf-8
+;; End:
index ee70601..964f739 100644 (file)
@@ -104,9 +104,12 @@ FONT_LAYOUT_TABLE = \
 
 INPUT_METHOD = \
        sk-kbd.mim vi-viqr.mim vi-telex.mim hr-kbd.mim \
-       ru-yawerty.mim ka-kbd.mim kk-kbd.mim sr-kbd.mim\
-       ar-kbd.mim fa-isiri.mim kk-arabic.mim\
-       am-sera.mim el-kbd.mim he-kbd.mim \
+       el-kbd.mim \
+       ru-yawerty.mim ka-kbd.mim kk-kbd.mim sr-kbd.mim \
+       ar-kbd.mim fa-isiri.mim kk-arabic.mim \
+       he-kbd.mim \
+       dv-phonetic.mim \
+       am-sera.mim \
        asm-itrans.mim dev-itrans.mim knd-itrans.mim ori-itrans.mim \
        tlg-itrans.mim bng-itrans.mim gjr-itrans.mim mlm-itrans.mim \
        pnj-itrans.mim tml-itrans.mim \
@@ -120,6 +123,7 @@ INPUT_METHOD = \
        zh-py.mim \
        ko-han2.mim \
        latin-post.mim \
+       syrc-phonetic.mim \
        unicode.mim rfc1345.mim \
        ispell.mim
 
diff --git a/Mymr-MyaZedi.flt b/Mymr-MyaZedi.flt
deleted file mode 100644 (file)
index 9526120..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-;; MYANMAR-ZEDI.flt -- Font Layout Table for Myanmar (Zedi font)
-;; Copyright (C) 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> MYANMAR-ZEDI.flt
-;;;
-;;; For the Myanmar Zedi family fonts to draw Myanmar script.
-;;; <ul>
-;;; <li> infopage: http://www.myazedi.com/downloads/MyaZedi_M17N.ttf
-;;; </ul>
-
-;; 1st stage
-;; Extract syllable while detecting Kinzi, substituting subscripts,
-;; and removing Halants.
-
-(category
- (0x1000 0x107F ?O)                    ; other
- (0x1000 0x1021 ?C)                    ; consonant except for c and K
- (0x1000 0x1003 ?c)                    ; consonant that has subscript form
- (0x1004       ?K)                     ; consonant NGA
- (0x1005 0x1008 ?c)
- (0x100B 0x100C ?c)
- (0x100F 0x1019 ?c)
- (0x1014       ?n)                     ; consonant NA
- (0x101C       ?c)
- (0x101A       ?M)                     ; cosonant that may be used as Medial
- (0x101B       ?r)                     ; Medial Ra
- (0x101D       ?M)
- (0x101F       ?M)
- (0x1021 0x102A ?I)                    ; independent vowel
- (0x102C 0x1032        ?V)                     ; dependent Vowel
- (0x1036       ?A)                     ; sign ANUSVARA
- (0x1037 0x1038        ?S)                     ; other sign
- (0x1039       ?H)                     ; HALANT (VIRAMA)
- (0x200C       ?N)                     ; ZWNJ (Zero Width Non Joiner)
- )
-
-(generator
- (0
-  (cond
-   ;; Special case for Medial Ra: don't use Kinzi for this pattern.
-   ("(K)(Hr(HM)*)(V*A?H?)N?(S*)"
-    | < (1 =) (2 remove-halant *) (4 = *) (5 = *) > |)
-
-   ;; The following regular expression matches a syllable pattern
-   ;; described in Table 10-3 of the Unicode Standard 4.0 .
-   ;;<1-> <--------2--------><--4--><--6--->  <7->
-   ;;             <---3--->   <5->
-   ("(KH)?([CcnKMr](H[CcnK])?)((H[Mr])*)(V*A?H?)N?(S*)"
-    | < (1 0xE390) (2 consonant) (4 remove-halant *) (6 = *) (7 = *) > |)
-
-   ;; Fixme: I'm not sure about the syllable pattern for an
-   ;; independent vowel.
-   ("IV*[AS]*"
-    | < = * > |)
-
-   ;; Treat anything else as a single character.
-   ("."
-    [ = ]))
-  *)
-
- (consonant
-  (cond
-   ((0x100B 0x1039 0x100C) 0xE10C)
-   ((0x100D 0x1039 0x100D) 0xE00D)
-   ((0x100E 0x1039 0x100D) 0xE10D)
-   ((0x100F 0x1039 0x100D) 0xE20D)
-   ((0x101E 0x1039 0x101E) 0xE01E)
-   ("(n)H([cn])" 0xE140 (2 subscript))
-   ("(.)H([cn])" (1 =) (2 subscript))
-   ("(.)H(.)" (1 =) (2 =))
-   ("." =)))
-
- (subscript
-  (cond ((range 0x1000 0x101c) 0xE000)))
-
- (remove-halant
-  (cond
-   ((0x1039))
-   ("." =))))
-
-;; 2nd stage
-;; Handle medials.
-
-(category
- (0x1000 0x107F ?O)                    ; other
- (0x1000 0x1021 ?W)                    ; wide consonant
- (0x1001 0x1002 ?S)                    ; single-width consonant
- (0x1004 0x1005 ?S)
- (0x1007 0x1008        ?S)
- (0x100B 0x100E        ?S)
- (0x1012 0x1017 ?S)
- (0x1019       ?S)
- (0x101A       ?a)                     ; medial Ya
- (0x101B       ?b)                     ; medial Ra
- (0x101D       ?d)                     ; medial Wa
- (0x101F       ?f)                     ; medial Ha
- (0x1020       ?S)
- (0x102D 0x102E ?V)                    ; dependent vowel (upper)
- (0x1032       ?V)
- (0x200C       ?N)                     ; ZWNJ
- (0xE000 0xE3FF ?O)
- (0xE000 0xE01E ?w)                    ; wide subscript
- (0xE001 0xE002 ?s)                    ; single-width subscript
- (0xE005       ?s)
- (0xE007       ?s)
- (0xE00B       ?s)
- (0xE012 0xE017 ?s)
- (0xE019       ?s)
- (0xE10C 0xE10D ?s)
- (0xE140       ?s)
- (0xE20D       ?w)
- (0xE390       ?K)                     ; Kinzi
- )
-
-(generator
- (0
-  (cond
-   (" (K)?([WSabdfws][WSKws]?[abdf][abdf]*[^ ]*) "
-    | (1 =) (2 medial = *) |)
-   (" ([^ ]*) "
-    = *)
-   ("."
-    =))
-  *)
-
- (medial
-  (cond
-   ;; Medial Ya (U+101A)
-   ("(..?)adf" (1 = *) 0xE1A2)
-   ("(..?)ad"  (1 = *) 0xE1A4)
-   ("(..?)af"  (1 = *) 0xE1A3)
-   ("(..?)a"   (1 = *) 0xE1A1)
-
-   ;; Medial Ra (U+101B)
-   ("([Waf]|.[Ww])bdf" 0xE1BA (1 = *))
-   ("(..?)bdf"         0xE1B9 (1 = *))
-   ("([Waf]|.[Ww])bd"  0xE1B8 (1 = *))
-   ("(..?)bd"          0xE1B7 (1 = *))
-   ("([Waf]|.[Ww])b(f)?(V)"    0xE1B6 (1 = *) (2 0xE1F3) (3 =))
-   ("(..?)b(f)?(V)"            0xE1B5 (1 = *) (2 0xE1F3) (3 =))
-   ;; Single-width consonant + a wide subscript + Medial Ra.
-   ;; To use glyph E1B4, we must shift the single-width consonant to
-   ;; the right.
-   ("([Sd][Ww])b"      0xE1B4 Br>32Bl (1 = *))
-   ("([Waf].|.[Ww])b"  0xE1B4 (1 = *))
-   ("(s|..)b"          0xE1B3 (1 = *))
-   ("([Waf])b(f)?"     0xE1B2 (1 = *) (2 0xE1F3))
-   ("(.)b(f)?"         0xE1B1 (1 = *) (2 0xE1F3))
-   
-   ;; Medial Wa (U+101D)
-   ("(..?)df"          (1 = *) 0xE1D1)
-   ("(..?)d"           (1 = *) 0xE01D)
-
-   ;; Medial Ha (U+101F)
-   ((0x100A 0x101F)    0x100A 0xE1F3)
-   ("(..?)f"           (1 = =) 0xE1F1))))
-
-;; 3rd stage
-;; Reorder Kinzi and Vowel E.  Handle Kinzi-vowel combination.
-
-(category
- (0x1000 0x107F ?O)
- (0x1000 0x1021 ?C)                    ; Consonants except for c
- (0x1001 0x1002 ?c)                    ; Consonants affecting the shape of 
- (0x1004       ?c)                     ;   the following vowel U+102C
- (0x1012       ?c)
- (0x1015       ?c)
- (0x101D       ?c)
- (0x1008       ?b)
- (0x100A 0x100D        ?b)
- (0x1020       ?b)
- (0x1025       ?b)
- (0x102C       ?A)                     ; Vowel AA
- (0x102D       ?i)                     ; Vowel I
- (0x102E       ?I)                     ; Vowel II
- (0x102F       ?u)                     ; Vowel U
- (0x1030       ?U)                     ; Vowel UU
- (0x1031       ?e)                     ; Vowel E
- (0x1032       ?V)                     ; Vowel AI
- (0x1036 0x1038        ?D)
- (0x1039       ?H)
- (0x200C       ?N)
- (0xE000 0xE3FF ?O)
- (0xE000 0xE01D ?b)
- (0xE1A1 0xE1B0 ?b)
- (0xE1B1 0xE1BA ?B)
- (0xE140       ?C)
- (0xE390       ?K)                     ; Kinzi
-)
-
-(generator
- (0
-  (cond
-   (" K([CcbB]*)(e)([^ ]*) "
-    | (2 =) (1 = *) (3 kinzi-vowel = *) |)
-   (" K([CcbB]*)([^ ]*) "
-    | (1 = *) (2 kinzi-vowel = *) |)
-   (" ([CcbB]*)(e)([^ ]*) "
-    | (2 =) (1 = *) (3 = *) |)
-   (" ([^ ]*) "
-    = *)
-   ("."
-    =))
-  *)
-
- (kinzi-vowel
-  (cond
-   ((0x102D) 0xE391)
-   ((0x102E) 0xE391)
-   ((0x1036) 0xE393)
-   0xE390)))
-
-;; 4th stage
-;; Various glyph substitions.
-
-(generator
- (0
-  (cond
-   (" ([^ ]*) "
-    (1
-     (cond
-      ;; Consonant substituion.
-      ((0x1009 0x1039) 0xE009 0x1039)
-      ((0x1009 0xE005) 0xE109 0xE005)
-      ((0x101B 0x102F) 0xE01B 0x102F)
-
-      ;; Sign substituion.
-      ((0x1014 0x1037) 0x1014 0xE037)
-      ((0x101B 0x1037) 0x101B 0xE137)
-
-      ;; Vowel substituion.
-      ((0xE1F1 0x102F) 0xE1F2)
-      ("BcK?A"         = = = =)
-      ("cAH"           = 0xE02D)
-      ("cA"            = 0xE02C)
-      ("cKA"           = = Br>Bl 0xE02C)
-      ((0x1012 0xE012 0x102C 0x1039) = = 0xE02D)
-      ((0x1012 0xE01D 0x102C 0x1039) = = 0xE02D)
-      ((0x1012 0xE012 0x102C) = = 0xE02C)
-      ((0x1012 0xE01D 0x102C) = = 0xE02C)
-      ((0x102D 0x1036) 0xE2D1)
-      ("([bB][^u]*)u"  (1 = *) 0xE2F1)
-      ("([bB][^u]*)U"  (1 = *) 0xE2F2)
-      ("." =))
-     *))
-   ((0x200C)   0x4E tc.cc 0x48)
-   ("."
-    =))
-  *))
-
-;; Local Variables:
-;; mode: lisp
-;; coding: utf-8
-;; End:
diff --git a/ORI-OTF.flt b/ORI-OTF.flt
deleted file mode 100644 (file)
index 6519b21..0000000
+++ /dev/null
@@ -1,317 +0,0 @@
-;; ORI-OTF.flt -- Font Layout Table for Oriya OpenType font
-;; Copyright (C) 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> ORI-OTF.flt
-;;;
-;;; For Oriya OpenType fonts to draw the Oriya script.  Tested with
-;;; utkalm.ttf <http://oriya.sarovar.org/download/utkalm.ttf.gz>
-
-(category
- ;; C: consonant (excluding Y and R)
- ;; R: consonant RA (reph, below)
- ;; B: consonant (below)
- ;; Y: consonant YA, YYA (post)
- ;; n: NUKTA
- ;; H: HALANT
- ;; m: MATRA (pre)
- ;; u: MATRA (above)
- ;; b: MATRA (below)
- ;; p: MATRA (post)
- ;; t: MATRA (two-part)
- ;; A: vowel modifier (above)
- ;; a: vowel modifier (post)
- ;; V: independent vowel
- ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
- ;; J: ZWJ (ZERO WIDTH JOINER)
- ;; E: ELSE
- ;;
- (0x200C       ?N)                     ; ZWNJ
- (0x200D       ?J)                     ; ZWJ
- (0x0664 0x0665        ?E)                     ; DANDA, DOUBLE DANDA
- (0x0B00 0x0B7F        ?E)                     ; ELSE
- (0x0B01       ?A)                     ; SIGN CANDRABINDU (above)
- (0x0B02 0x0B03        ?a)                     ; SIGN ANUSWAR, VISARGA (post)
- (0x0B05 0x0B0C        ?V)                     ; LETTER A .. VOCALIC L
- (0x0B0F 0x0B10        ?V)                     ; LETTER E .. AI
- (0x0B13 0x0B14        ?V)                     ; LETTER O .. AU
- (0x0B15 0x0B39        ?C)                     ; LETTER KA .. HA
- (0x0B24       ?B)                     ; LETTER TA
- (0x0B28       ?B)                     ; LETTER NA
- (0x0B2C       ?B)                     ; LETTER BA
- (0x0B2D       ?B)                     ; LETTER BHA
- (0x0B2E       ?B)                     ; LETTER MA
- (0x0B2F       ?Y)                     ; LETTER YA
- (0x0B30       ?R)                     ; LETTER RA
- (0x0B32       ?B)                     ; LETTER LA
- (0x0B33       ?B)                     ; LETTER LLA
- (0x0B35       ?B)                     ; LETTER VA
- (0x0B3C       ?n)                     ; SIGN NUKTA
- (0x0B3E       ?p)                     ; VOWEL SIGN AA (post)
- (0x0B3F       ?u)                     ; VOWEL SIGN I (above)
- (0x0B40       ?p)                     ; VOWEL SIGN II (post)
- (0x0B41 0x0B43        ?b)                     ; VOWEL SIGN U, UU, R (below)
- (0x0B47       ?m)                     ; VOWEL SIGN E (pre)
- (0x0B48 0x0B4C ?t)                    ; VOWEL SIGN AI, O, AU (two-part)
- (0x0B4D       ?H)                     ; SIGN VIRAMA (HALANT)
- (0x0B56       ?u)                     ; AI LENGTH MARK
- (0x0B57       ?p)                     ; AU LENGTH MARK
- (0x0B5C 0x0B5D        ?C)                     ; LETTER RRA, RHA
- (0x0B5F       ?Y)                     ; LETTER YYA
- (0x0B60 0x0B61        ?V)                     ; LETTER VOCALIC RR, LL
- (0x0B71       ?C)                     ; LETTER WA
- (0x0B7E       ?x)                     ; mark #1 (internal use)
- (0x0B7F       ?y)                     ; mark #2 (internal use)
- )
-
-;; Step 1 : Syllable identification.  Recognised syllables are quoted
-;; by the pseudo character, which is generated by the command "|" and
-;; has the category " " (space).
-(generator
- (0
-  (cond
-   ;; Case F : Syllables containing an independent vowel.
-    ("(RH)?(V)(a)?(A)?"
-    < |
-    (2 =)
-    (1 = =)
-    (3 =)
-    (4 =)
-    | >)
-
-   ;; Case A-C are for those syllables that end with an explicit vowel
-   ;; mark and/or a vowel modifier.  They are divided into three cases
-   ;; for readability of the regular expressions.  The leading
-   ;; consonant-Halant repetition is analysed for reordering in the
-   ;; next step.  A two-part vowel, if any, is split for
-   ;; canonicalisation.
-
-   ;; Case A : A syllable ending with a vowel modifier.
-   ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))([mbup]*)(t)?([Aa])"
-    < |
-    (1 = =)
-    (2 set-marks)
-    (5 = *)
-    (6 split)
-    (7 =)
-    | >)
-
-   ;; Case B : A syllable ending with a two-part vowel.
-   ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))(t)"
-    < |
-    (1 = =)
-    (2 set-marks)
-    (5 split)
-    | >)
-
-   ;; Case C : A syllable ending with other vowel(s).  Note that a
-   ;; two-part vowel may be expressed with two vowel marks for
-   ;; backward compatibility.
-   ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))([mbup]+)"
-    < |
-    (1 = =)
-    (2 set-marks)
-    (5 = *)
-    | >)
-
-   ;; Case E : No explicit vowel nor modifier.  If the syllable ends
-   ;; with a consonant, analyse it for reordering in the next step.
-   ;; Otherwise, just identify the syllable without changing anything.
-   ;;1    23                         4
-   ("(RH)?(([CRBY]n?H[NJ]?)*[CRBY]n?)(HN|HJ|H)?"
-    < |
-    (1 = =)
-    (2 set-marks)
-    (4 = *)
-    | >)
-
-   ("." =))
-  *)
-
- ;; Set mark #1 (x) at the position where below consonants begin, and
- ;; mark #2 (y) at the position to which below and above signs will be
- ;; moved.
- (set-marks
-  (cond
-   ;; Ending with Y.
-   ;;1        2            3  45        6
-   ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*)(Y)$"
-    (1 = *)                            ; prebase & base
-    0x0B7E                             ; below begin
-    (4 = *)                            ; below consonants
-    0x0B7F                             ; below end
-    (6 =)                              ; YA
-    (3 =))                             ; moved HALANT
-   ;; Ending with R or B.
-   ;;1        2            3  45
-   ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*[RB])$"
-    (1 = *)                            ; prebase & base
-    0x0B7E                             ; below begin
-    (4 = *)                            ; below consonants 
-    (3 =)                              ; moved HALANT
-    0x0B7F)                            ; below end
-   (".+"
-    = *
-    0x0B7E                             ; below begin
-    0x0B7F)))                          ; below end
-
- ;; Split two-part dependent vowel signs for canonicalisation.
- (split
-  (cond
-   ((0x0B48)   0x0B47 0x0B56)
-   ((0x0B4B)   0x0B47 0x0B3E)
-   ((0x0B4C)   0x0B47 0x0B57)))
- )
-
-;; Step 2 : Move Reph and Matra if necessary.  From now on, we care
-;; only for those syllables that have been identified in Step 1.
-(generator
- (0
-  (cond
-   ;; Special case: a single consonant and a Halant.
-   (" (.)xy(H[NJ]?) "
-    |
-    (1 =)
-    (2 = *)
-    |)
-
-   ;; This is the most generic pattern.  It follows Case A-C and a
-   ;; part of Case E in Step 1.  Now Mark #1 is used to indicate the
-   ;; critical part that requires pre-base substitution in the
-   ;; following steps.
-
-   ;; 1    2         3        4    5   6   7   8   9   10  11
-   (" (RH)?([^ xy]+)x([^ y]*)y(YH)?(m)?(b)?(u)?(p)?(A)?(a)?(HN|HJ|H)? "
-    |
-    (5 =)                              ; [Mpre]
-    ;; We can safely perform Nukta composition here because it does
-    ;; not affect surrounding letters in the syllable.  The Akhand
-    ;; ligature operation is also applied here, before applying the
-    ;; half form operation because the Utkal font generates Akhand
-    ;; ligatures directly from the "C H C" sequence, not via the half
-    ;; form.
-    0x0B7E                             ; begin Cpre & Cbase
-    (2 otf:orya=nukt,akhn+)            ; {Cpre + H} + Cbase
-    0x0B7E                             ; end Cpre & Cbase
-    (3 otf:orya=blwf+)                 ; {Cbelow + H}
-    (6 =)                              ; [Mbelow]
-    (7 =)                              ; [Mabove]
-    (1 otf:orya=rphf+)                 ; [Reph]
-    (9 =)                              ; [VMabove]
-    (4 otf:orya=pstf+)                 ; [Cpost + H]
-    (8 =)                              ; [Mpost]
-    (10 =)                             ; [VMpost]
-    (11 = *)                           ; optional HALANT
-    |)
-
-   ;; Syllables that begin with an independent vowel (following up
-   ;; Step 1, Case F).  Syllables of this type do not require further
-   ;; modification.
-   (" (V)(RH)(.*) "
-    |
-    (1 =)
-    (2 otf:orya=rphf+)
-    (3 = *)
-    |)
-
-   ("." =))
-  *))
-
-;; Step 3 : Now only those syllables that contain the pseudo character
-;; x require pre-base substition.  Unlike the Mukti font for Bengali,
-;; the Utkal font can produce the ligature for "C1 H C2" from
-;; "C1halnt" and "C2".  If such a ligature is not available, we get a
-;; sequence consisting of "C1halant" and "C2", which is satisfactory.
-
-(generator
- (0
-  (cond
-   (" (.H)J "
-    |
-    (1 otf:orya=half+)
-    |)
-   (" (.H)N? "
-    |
-    (1 otf:orya=haln+)
-    |)
-   (" ([^x ]?x)([^x]*)(x[^ ]*) "
-    |
-    (1 = *)
-    (2 pres)
-    (3 = *)
-    |)
-   ("." =))
-  *)
-
- (pres
-  (cond
-   ("([^NJ]*)(.H)J(.*)"
-    (1 otf:orya=haln,pres+)
-    (2 otf:orya=half+)
-    (3 pres))
-   ("([^N]*)(H)N(.*)"
-    (1 otf:orya=haln,pres+)
-    (2 =)
-    (3 pres))
-   (".*"
-    otf:orya=haln,pres+)))
-    
- )
-
-;; Step 4 : Mpre/Cpre reordering.  If the pre-base substitution in
-;; the previous step results in more than one glyph, and there is an
-;; Mpre in this syllable, then move the Mpre before the Cbase.
-;; i.e. [Mpre]{Kh}Kf... -> {Kh}[Mpre]Kf...
-
-(generator
- (0
-  (cond
-   (" (.)x(.+)(.)x(.*) "
-    |
-    (2 = *)
-    (1 =)
-    (3 =)
-    (4 = *)
-    |)
-   (" (.)?x([^x ]*)x([^ ]*) "
-    |
-    (1 =)
-    (2 = *)
-    (3 = *)
-    |)
-   ("." =))
-  *))
-
-;; Step 5 : Substitutions & positioning.
-
-(generator
- (0
-  (cond
-   (" ([^ ]*) "
-    (1 otf:orya=vatu,abvs,blws,psts))
-   ("."
-    [ otf:orya=+ ]))
-  *))
-
-;; Local Variables:
-;; mode: emacs-lisp
-;; End:
diff --git a/ORYA-OTF.flt b/ORYA-OTF.flt
new file mode 100644 (file)
index 0000000..6519b21
--- /dev/null
@@ -0,0 +1,317 @@
+;; ORI-OTF.flt -- Font Layout Table for Oriya OpenType font
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> ORI-OTF.flt
+;;;
+;;; For Oriya OpenType fonts to draw the Oriya script.  Tested with
+;;; utkalm.ttf <http://oriya.sarovar.org/download/utkalm.ttf.gz>
+
+(category
+ ;; C: consonant (excluding Y and R)
+ ;; R: consonant RA (reph, below)
+ ;; B: consonant (below)
+ ;; Y: consonant YA, YYA (post)
+ ;; n: NUKTA
+ ;; H: HALANT
+ ;; m: MATRA (pre)
+ ;; u: MATRA (above)
+ ;; b: MATRA (below)
+ ;; p: MATRA (post)
+ ;; t: MATRA (two-part)
+ ;; A: vowel modifier (above)
+ ;; a: vowel modifier (post)
+ ;; V: independent vowel
+ ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
+ ;; J: ZWJ (ZERO WIDTH JOINER)
+ ;; E: ELSE
+ ;;
+ (0x200C       ?N)                     ; ZWNJ
+ (0x200D       ?J)                     ; ZWJ
+ (0x0664 0x0665        ?E)                     ; DANDA, DOUBLE DANDA
+ (0x0B00 0x0B7F        ?E)                     ; ELSE
+ (0x0B01       ?A)                     ; SIGN CANDRABINDU (above)
+ (0x0B02 0x0B03        ?a)                     ; SIGN ANUSWAR, VISARGA (post)
+ (0x0B05 0x0B0C        ?V)                     ; LETTER A .. VOCALIC L
+ (0x0B0F 0x0B10        ?V)                     ; LETTER E .. AI
+ (0x0B13 0x0B14        ?V)                     ; LETTER O .. AU
+ (0x0B15 0x0B39        ?C)                     ; LETTER KA .. HA
+ (0x0B24       ?B)                     ; LETTER TA
+ (0x0B28       ?B)                     ; LETTER NA
+ (0x0B2C       ?B)                     ; LETTER BA
+ (0x0B2D       ?B)                     ; LETTER BHA
+ (0x0B2E       ?B)                     ; LETTER MA
+ (0x0B2F       ?Y)                     ; LETTER YA
+ (0x0B30       ?R)                     ; LETTER RA
+ (0x0B32       ?B)                     ; LETTER LA
+ (0x0B33       ?B)                     ; LETTER LLA
+ (0x0B35       ?B)                     ; LETTER VA
+ (0x0B3C       ?n)                     ; SIGN NUKTA
+ (0x0B3E       ?p)                     ; VOWEL SIGN AA (post)
+ (0x0B3F       ?u)                     ; VOWEL SIGN I (above)
+ (0x0B40       ?p)                     ; VOWEL SIGN II (post)
+ (0x0B41 0x0B43        ?b)                     ; VOWEL SIGN U, UU, R (below)
+ (0x0B47       ?m)                     ; VOWEL SIGN E (pre)
+ (0x0B48 0x0B4C ?t)                    ; VOWEL SIGN AI, O, AU (two-part)
+ (0x0B4D       ?H)                     ; SIGN VIRAMA (HALANT)
+ (0x0B56       ?u)                     ; AI LENGTH MARK
+ (0x0B57       ?p)                     ; AU LENGTH MARK
+ (0x0B5C 0x0B5D        ?C)                     ; LETTER RRA, RHA
+ (0x0B5F       ?Y)                     ; LETTER YYA
+ (0x0B60 0x0B61        ?V)                     ; LETTER VOCALIC RR, LL
+ (0x0B71       ?C)                     ; LETTER WA
+ (0x0B7E       ?x)                     ; mark #1 (internal use)
+ (0x0B7F       ?y)                     ; mark #2 (internal use)
+ )
+
+;; Step 1 : Syllable identification.  Recognised syllables are quoted
+;; by the pseudo character, which is generated by the command "|" and
+;; has the category " " (space).
+(generator
+ (0
+  (cond
+   ;; Case F : Syllables containing an independent vowel.
+    ("(RH)?(V)(a)?(A)?"
+    < |
+    (2 =)
+    (1 = =)
+    (3 =)
+    (4 =)
+    | >)
+
+   ;; Case A-C are for those syllables that end with an explicit vowel
+   ;; mark and/or a vowel modifier.  They are divided into three cases
+   ;; for readability of the regular expressions.  The leading
+   ;; consonant-Halant repetition is analysed for reordering in the
+   ;; next step.  A two-part vowel, if any, is split for
+   ;; canonicalisation.
+
+   ;; Case A : A syllable ending with a vowel modifier.
+   ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))([mbup]*)(t)?([Aa])"
+    < |
+    (1 = =)
+    (2 set-marks)
+    (5 = *)
+    (6 split)
+    (7 =)
+    | >)
+
+   ;; Case B : A syllable ending with a two-part vowel.
+   ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))(t)"
+    < |
+    (1 = =)
+    (2 set-marks)
+    (5 split)
+    | >)
+
+   ;; Case C : A syllable ending with other vowel(s).  Note that a
+   ;; two-part vowel may be expressed with two vowel marks for
+   ;; backward compatibility.
+   ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))([mbup]+)"
+    < |
+    (1 = =)
+    (2 set-marks)
+    (5 = *)
+    | >)
+
+   ;; Case E : No explicit vowel nor modifier.  If the syllable ends
+   ;; with a consonant, analyse it for reordering in the next step.
+   ;; Otherwise, just identify the syllable without changing anything.
+   ;;1    23                         4
+   ("(RH)?(([CRBY]n?H[NJ]?)*[CRBY]n?)(HN|HJ|H)?"
+    < |
+    (1 = =)
+    (2 set-marks)
+    (4 = *)
+    | >)
+
+   ("." =))
+  *)
+
+ ;; Set mark #1 (x) at the position where below consonants begin, and
+ ;; mark #2 (y) at the position to which below and above signs will be
+ ;; moved.
+ (set-marks
+  (cond
+   ;; Ending with Y.
+   ;;1        2            3  45        6
+   ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*)(Y)$"
+    (1 = *)                            ; prebase & base
+    0x0B7E                             ; below begin
+    (4 = *)                            ; below consonants
+    0x0B7F                             ; below end
+    (6 =)                              ; YA
+    (3 =))                             ; moved HALANT
+   ;; Ending with R or B.
+   ;;1        2            3  45
+   ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*[RB])$"
+    (1 = *)                            ; prebase & base
+    0x0B7E                             ; below begin
+    (4 = *)                            ; below consonants 
+    (3 =)                              ; moved HALANT
+    0x0B7F)                            ; below end
+   (".+"
+    = *
+    0x0B7E                             ; below begin
+    0x0B7F)))                          ; below end
+
+ ;; Split two-part dependent vowel signs for canonicalisation.
+ (split
+  (cond
+   ((0x0B48)   0x0B47 0x0B56)
+   ((0x0B4B)   0x0B47 0x0B3E)
+   ((0x0B4C)   0x0B47 0x0B57)))
+ )
+
+;; Step 2 : Move Reph and Matra if necessary.  From now on, we care
+;; only for those syllables that have been identified in Step 1.
+(generator
+ (0
+  (cond
+   ;; Special case: a single consonant and a Halant.
+   (" (.)xy(H[NJ]?) "
+    |
+    (1 =)
+    (2 = *)
+    |)
+
+   ;; This is the most generic pattern.  It follows Case A-C and a
+   ;; part of Case E in Step 1.  Now Mark #1 is used to indicate the
+   ;; critical part that requires pre-base substitution in the
+   ;; following steps.
+
+   ;; 1    2         3        4    5   6   7   8   9   10  11
+   (" (RH)?([^ xy]+)x([^ y]*)y(YH)?(m)?(b)?(u)?(p)?(A)?(a)?(HN|HJ|H)? "
+    |
+    (5 =)                              ; [Mpre]
+    ;; We can safely perform Nukta composition here because it does
+    ;; not affect surrounding letters in the syllable.  The Akhand
+    ;; ligature operation is also applied here, before applying the
+    ;; half form operation because the Utkal font generates Akhand
+    ;; ligatures directly from the "C H C" sequence, not via the half
+    ;; form.
+    0x0B7E                             ; begin Cpre & Cbase
+    (2 otf:orya=nukt,akhn+)            ; {Cpre + H} + Cbase
+    0x0B7E                             ; end Cpre & Cbase
+    (3 otf:orya=blwf+)                 ; {Cbelow + H}
+    (6 =)                              ; [Mbelow]
+    (7 =)                              ; [Mabove]
+    (1 otf:orya=rphf+)                 ; [Reph]
+    (9 =)                              ; [VMabove]
+    (4 otf:orya=pstf+)                 ; [Cpost + H]
+    (8 =)                              ; [Mpost]
+    (10 =)                             ; [VMpost]
+    (11 = *)                           ; optional HALANT
+    |)
+
+   ;; Syllables that begin with an independent vowel (following up
+   ;; Step 1, Case F).  Syllables of this type do not require further
+   ;; modification.
+   (" (V)(RH)(.*) "
+    |
+    (1 =)
+    (2 otf:orya=rphf+)
+    (3 = *)
+    |)
+
+   ("." =))
+  *))
+
+;; Step 3 : Now only those syllables that contain the pseudo character
+;; x require pre-base substition.  Unlike the Mukti font for Bengali,
+;; the Utkal font can produce the ligature for "C1 H C2" from
+;; "C1halnt" and "C2".  If such a ligature is not available, we get a
+;; sequence consisting of "C1halant" and "C2", which is satisfactory.
+
+(generator
+ (0
+  (cond
+   (" (.H)J "
+    |
+    (1 otf:orya=half+)
+    |)
+   (" (.H)N? "
+    |
+    (1 otf:orya=haln+)
+    |)
+   (" ([^x ]?x)([^x]*)(x[^ ]*) "
+    |
+    (1 = *)
+    (2 pres)
+    (3 = *)
+    |)
+   ("." =))
+  *)
+
+ (pres
+  (cond
+   ("([^NJ]*)(.H)J(.*)"
+    (1 otf:orya=haln,pres+)
+    (2 otf:orya=half+)
+    (3 pres))
+   ("([^N]*)(H)N(.*)"
+    (1 otf:orya=haln,pres+)
+    (2 =)
+    (3 pres))
+   (".*"
+    otf:orya=haln,pres+)))
+    
+ )
+
+;; Step 4 : Mpre/Cpre reordering.  If the pre-base substitution in
+;; the previous step results in more than one glyph, and there is an
+;; Mpre in this syllable, then move the Mpre before the Cbase.
+;; i.e. [Mpre]{Kh}Kf... -> {Kh}[Mpre]Kf...
+
+(generator
+ (0
+  (cond
+   (" (.)x(.+)(.)x(.*) "
+    |
+    (2 = *)
+    (1 =)
+    (3 =)
+    (4 = *)
+    |)
+   (" (.)?x([^x ]*)x([^ ]*) "
+    |
+    (1 =)
+    (2 = *)
+    (3 = *)
+    |)
+   ("." =))
+  *))
+
+;; Step 5 : Substitutions & positioning.
+
+(generator
+ (0
+  (cond
+   (" ([^ ]*) "
+    (1 otf:orya=vatu,abvs,blws,psts))
+   ("."
+    [ otf:orya=+ ]))
+  *))
+
+;; Local Variables:
+;; mode: emacs-lisp
+;; End:
index 1577db3..6334716 100644 (file)
   (cond
    ;; A syllable ending with a two-part vowel sign.
    ("((CHJ)*C)(t)(a)?"
-    < | (1 otf:sinh=akhn,vatu) (3 two-part) (4 =) | >)
+    < | (1 otf:sinh=akhn,vatu,pres) (3 two-part) (4 =) | >)
 
    ;; A syllable ending with a vowel sign and/or a various sign.
    ;; Note that a two-part vowel may be expressed with two vowel marks.
 
    ("((CHJ)*C)([mbup]+a?|a)"
-    < | (1 otf:sinh=akhn,vatu) (3 = *) | >)
+    < | (1 otf:sinh=akhn,vatu,pres) (3 = *) | >)
 
    ;; No signs.
    ("(CHJ)*CH?"
-    < | otf:sinh=akhn,vatu | >)
+    < | otf:sinh=akhn,vatu,pres | >)
 
    ;; Independent vowels.
    ("Va?"
diff --git a/SYRC-OTF.flt b/SYRC-OTF.flt
new file mode 100644 (file)
index 0000000..e859ee8
--- /dev/null
@@ -0,0 +1,181 @@
+;; SYRIAC-OTF.flt -- Font Layout Table for Syriac OpenType font
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> SYRIAC-OTF.flt
+;;;
+;;; For Syriac OpenType fonts to draw the Syriac script.
+
+
+;; Step 1: Initial, medial, or final.
+
+(category
+ ;; D: Dual-joining
+ ;; R: Right-joining
+ ;; U: Non-joining
+ ;; T: Transparent
+ ;; A: ALAPH
+ ;; r: DALATH, RISH, DOTLESS DALATH RISH
+
+ (0x0700 0x071F        ?U)
+ (0x0710       ?A)
+ (0x0711       ?T)
+ (0x0712 0x072E ?D)
+ (0x0715 0x0716        ?r)
+ (0x0717 0x0719        ?R)
+ (0x071E       ?R)
+ (0x0728       ?R)
+ (0x072A       ?r)
+ (0x072C       ?R)
+ (0x072F       ?R)
+ (0x0730 0x074A ?T)
+ (0x074D       ?R)
+ (0x074E 0x074F        ?D)
+
+ (0x0303       ?T)
+ (0x0330       ?T)
+ (0x0304       ?T)
+ (0x0331       ?T)
+ (0x0307       ?T)
+ (0x0323       ?T)
+ (0x0308       ?T)
+ (0x030A       ?T)
+ (0x0325       ?T)
+ (0x0324       ?T)
+ (0x032D       ?T)
+ (0x032E       ?T)
+
+ (0x064B 0x0655        ?T)
+ (0x0670       ?T)
+
+ (0x200C       ?U)
+ (0x200D       ?D)
+ )
+
+(generator
+ (0
+  (cond
+   ("(r)(T*)(.*)"
+    (1 otf:syrc=isol)
+    (2 = *)
+    (3 dalath-rish))
+
+   ("(D)(T*)([DRAr].*)"
+    (1 otf:syrc=init)
+    (2 = *)
+    (3 join))
+
+   ("(T+)(.*)"
+    (1 = *)
+    (2 disjoin))
+
+   ("(.)(T*)(.*)"
+    (1 otf:syrc=isol)
+    (2 = *)
+    (3 disjoin))))
+
+ (join
+  (cond
+   ("(r)(T*)(.*)"
+    (1 otf:syrc=fina)
+    (2 = *)
+    (3 dalath-rish))
+
+   ("(D)(T*)([DRrA].*)"
+    (1 otf:syrc=medi)
+    (2 = *)
+    (3 join))
+
+   ("(.)(T*)(.*)"
+    (1 otf:syrc=fina)
+    (2 = *)
+    (3 disjoin))))
+
+ (disjoin
+  (cond
+   ("(D)(T*)([DRAr].*)"
+    (1 otf:syrc=init)
+    (2 = *)
+    (3 join))
+
+   ("(r)(T*)(.*)"
+    (1 otf:syrc=isol)
+    (2 = *)
+    (3 dalath-rish))
+
+   ("(A)(T*)([DRAr].*)"
+    (1 otf:syrc=med2)
+    (2 = *)
+    (3 disjoin))
+
+   ("(A)(T*)(.*)"
+    (1 otf:syrc=fin2)
+    (2 = *)
+    (3 disjoin))
+
+   ("(.)(T*)(.*)"
+    (1 otf:syrc=isol)
+    (2 = *)
+    (3 disjoin))))
+
+ (dalath-rish
+  (cond
+   ("(D)(T*)([DRAr].*)"
+    (1 otf:syrc=init)
+    (2 = *)
+    (3 join))
+
+   ("(r)(T*)(.*)"
+    (1 otf:syrc=isol)
+    (2 = *)
+    (3 dalath-rish))
+
+   ("(A)(T*)([DRAr].*)"
+    (1 otf:syrc=med2)
+    (2 = *)
+    (3 disjoin))
+
+   ("(A)(T*)(.*)"
+    (1 otf:syrc=fin3)
+    (2 = *)
+    (3 disjoin))
+
+   ("(.)(T*)(.*)"
+    (1 otf:syrc=isol)
+    (2 = *)
+    (3 disjoin)))))
+
+;; Step 2: Other GSUB features (ligatures, etc.)
+
+(generator
+ (0
+  otf:syrc=rlig,calt,liga,dlig))
+
+;; Step 3: GPOS features.
+
+(generator
+ (0
+  otf:syrc=))
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/SYRIAC-OTF.flt b/SYRIAC-OTF.flt
deleted file mode 100644 (file)
index e859ee8..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-;; SYRIAC-OTF.flt -- Font Layout Table for Syriac OpenType font
-;; Copyright (C) 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> SYRIAC-OTF.flt
-;;;
-;;; For Syriac OpenType fonts to draw the Syriac script.
-
-
-;; Step 1: Initial, medial, or final.
-
-(category
- ;; D: Dual-joining
- ;; R: Right-joining
- ;; U: Non-joining
- ;; T: Transparent
- ;; A: ALAPH
- ;; r: DALATH, RISH, DOTLESS DALATH RISH
-
- (0x0700 0x071F        ?U)
- (0x0710       ?A)
- (0x0711       ?T)
- (0x0712 0x072E ?D)
- (0x0715 0x0716        ?r)
- (0x0717 0x0719        ?R)
- (0x071E       ?R)
- (0x0728       ?R)
- (0x072A       ?r)
- (0x072C       ?R)
- (0x072F       ?R)
- (0x0730 0x074A ?T)
- (0x074D       ?R)
- (0x074E 0x074F        ?D)
-
- (0x0303       ?T)
- (0x0330       ?T)
- (0x0304       ?T)
- (0x0331       ?T)
- (0x0307       ?T)
- (0x0323       ?T)
- (0x0308       ?T)
- (0x030A       ?T)
- (0x0325       ?T)
- (0x0324       ?T)
- (0x032D       ?T)
- (0x032E       ?T)
-
- (0x064B 0x0655        ?T)
- (0x0670       ?T)
-
- (0x200C       ?U)
- (0x200D       ?D)
- )
-
-(generator
- (0
-  (cond
-   ("(r)(T*)(.*)"
-    (1 otf:syrc=isol)
-    (2 = *)
-    (3 dalath-rish))
-
-   ("(D)(T*)([DRAr].*)"
-    (1 otf:syrc=init)
-    (2 = *)
-    (3 join))
-
-   ("(T+)(.*)"
-    (1 = *)
-    (2 disjoin))
-
-   ("(.)(T*)(.*)"
-    (1 otf:syrc=isol)
-    (2 = *)
-    (3 disjoin))))
-
- (join
-  (cond
-   ("(r)(T*)(.*)"
-    (1 otf:syrc=fina)
-    (2 = *)
-    (3 dalath-rish))
-
-   ("(D)(T*)([DRrA].*)"
-    (1 otf:syrc=medi)
-    (2 = *)
-    (3 join))
-
-   ("(.)(T*)(.*)"
-    (1 otf:syrc=fina)
-    (2 = *)
-    (3 disjoin))))
-
- (disjoin
-  (cond
-   ("(D)(T*)([DRAr].*)"
-    (1 otf:syrc=init)
-    (2 = *)
-    (3 join))
-
-   ("(r)(T*)(.*)"
-    (1 otf:syrc=isol)
-    (2 = *)
-    (3 dalath-rish))
-
-   ("(A)(T*)([DRAr].*)"
-    (1 otf:syrc=med2)
-    (2 = *)
-    (3 disjoin))
-
-   ("(A)(T*)(.*)"
-    (1 otf:syrc=fin2)
-    (2 = *)
-    (3 disjoin))
-
-   ("(.)(T*)(.*)"
-    (1 otf:syrc=isol)
-    (2 = *)
-    (3 disjoin))))
-
- (dalath-rish
-  (cond
-   ("(D)(T*)([DRAr].*)"
-    (1 otf:syrc=init)
-    (2 = *)
-    (3 join))
-
-   ("(r)(T*)(.*)"
-    (1 otf:syrc=isol)
-    (2 = *)
-    (3 dalath-rish))
-
-   ("(A)(T*)([DRAr].*)"
-    (1 otf:syrc=med2)
-    (2 = *)
-    (3 disjoin))
-
-   ("(A)(T*)(.*)"
-    (1 otf:syrc=fin3)
-    (2 = *)
-    (3 disjoin))
-
-   ("(.)(T*)(.*)"
-    (1 otf:syrc=isol)
-    (2 = *)
-    (3 disjoin)))))
-
-;; Step 2: Other GSUB features (ligatures, etc.)
-
-(generator
- (0
-  otf:syrc=rlig,calt,liga,dlig))
-
-;; Step 3: GPOS features.
-
-(generator
- (0
-  otf:syrc=))
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/TAML-CDAC.flt b/TAML-CDAC.flt
new file mode 100644 (file)
index 0000000..df9e896
--- /dev/null
@@ -0,0 +1,342 @@
+;; TML-CDAC.flt -- Font Layout Table for Tamil (C-DAC font)
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> TML-CDAC.flt
+;;;
+;;; For the font TMVL0ntt.ttf (developped by C-DAC, encoding is ISFOC)
+;;; to draw Tamil script.  The font is available at:
+;;; <ul>
+;;; <li>       infopage: http://www.iiit.net/ltrc/iscii/FAQ.htm#SEC2.1
+;;; <li> download: http://www.iiit.net/ltrc/iscii/iscii_plugin_linux.tar.gz
+;;; </ul>
+
+(category
+ ;; C: CONSONANT
+ ;; I: INDEPENDENT VOWEL
+ ;; R: DEPENDENT VOWEL RIGHT
+ ;; L: DEPENDENT VOWEL LEFT
+ ;; B: DEPENDENT VOWEL LEFT AND RIGHT TYPE 1
+ ;; b: DEPENDENT VOWEL LEFT AND RIGHT TYPE 2
+ ;; V: VIRAMA
+ ;; E: ELSE
+ ;;
+ (0x0B83       ?E)
+ (0x0B85 0x0B8A        ?I)
+ (0x0B8E 0x0B90        ?I)
+ (0x0B92 0x0B94        ?I)
+ (0x0B95       ?C)
+ (0x0B99 0x0B9A        ?C)
+ (0x0B9C       ?C)
+ (0x0B9E 0x0B9F        ?C)
+ (0x0BA3 0x0BA4        ?C)
+ (0x0BA8 0x0BAA        ?C)
+ (0x0BAE 0x0BB5        ?C)
+ (0x0BB7 0x0BB9        ?C)
+ (0x0BBE 0x0BC2        ?R)
+ (0x0BC6 0x0BC8        ?L)
+ (0x0BCA       ?B)
+ (0x0BCB       ?b)
+ (0x0BCC       ?B)
+ (0x0BCD       ?V)
+ (0x0BD7       ?E))
+
+;; CHAR->GLYPH STAGE
+(generator
+ (0
+  (cond
+   ("((CV)*)(C)(R)"
+    (1 consonant-virama *)
+    (3 consonant)
+    (4 dependent-vowel))
+   ("((CV)*)(C)(L)"
+    < |
+    (4 dependent-vowel)
+    (1 consonant-virama *)
+    (3 consonant)
+    | >)
+   ("((CV)*)(C)(B)"
+    < |
+    0xAA
+    (1 consonant-virama *)
+    (3 consonant)
+    (4 dependent-vowel)
+    | >)
+   ("((CV)*)(C)(b)"
+    < |
+    0xAB
+    (1 consonant-virama *)
+    (3 consonant)
+    (4 dependent-vowel)
+    | >)
+   ("CV"
+    < consonant-virama >)
+   ("[RLBb]"
+    isolated-dependent-vowel)
+   ("." independent consonant))
+  *)
+
+ (consonant-virama
+  (cond
+   ((0x0B95 0x0BCD)    0xE8 0xA2)      ; k
+   ((0x0B99 0x0BCD)    0xE9 0xA2)      ; n^
+   ((0x0B9A 0x0BCD)    0xEA 0xA2)      ; c
+   ((0x0B9E 0x0BCD)    0xEB 0xA2)      ; n~
+   ((0x0B9F 0x0BCD)    0xEC 0xA2)      ; t.
+   ((0x0BA3 0x0BCD)    0xED 0xA2)      ; n.
+   ((0x0BA4 0x0BCD)    0xEE 0xA2)      ; t
+   ((0x0BA8 0x0BCD)    0xEF 0xA2)      ; n
+   ((0x0BAA 0x0BCD)    0xF0 0xA2)      ; p
+   ((0x0BAE 0x0BCD)    0xF1 0xA2)      ; m
+   ((0x0BAF 0x0BCD)    0xF2 0xA2)      ; y
+   ((0x0BB0 0x0BCD)    0xF3 0xA2)      ; r
+   ((0x0BB2 0x0BCD)    0xF4 0xA2)      ; l
+   ((0x0BB5 0x0BCD)    0xF5 0xA2)      ; v
+   ((0x0BB4 0x0BCD)    0xF6 0xA2)      ; l_
+   ((0x0BB3 0x0BCD)    0xF7 0xA2)      ; l.
+   ((0x0BB1 0x0BCD)    0xF8 0xA2)      ; r_
+   ((0x0BA9 0x0BCD)    0xA1)           ; n_
+   ((0x0BB8 0x0BCD)    0x76)           ; s
+   ((0x0BB7 0x0BCD)    0x77)           ; s'
+   ((0x0B9C 0x0BCD)    0x78)           ; j
+   ((0x0BB9 0x0BCD)    0x79)           ; h
+   ))
+
+ (consonant
+  (cond
+   ((0x0B95)   0xE8)                   ; k
+   ((0x0B99)   0xE9)                   ; n^
+   ((0x0B9A)   0xEA)                   ; c
+   ((0x0B9E)   0xEB)                   ; n~
+   ((0x0B9F)   0xEC)                   ; t.
+   ((0x0BA3)   0xED)                   ; n.
+   ((0x0BA4)   0xEE)                   ; t
+   ((0x0BA8)   0xEF)                   ; n
+   ((0x0BAA)   0xF0)                   ; p
+   ((0x0BAE)   0xF1)                   ; m
+   ((0x0BAF)   0xF2)                   ; y
+   ((0x0BB0)   0xF3)                   ; r
+   ((0x0BB2)   0xF4)                   ; l
+   ((0x0BB5)   0xF5)                   ; v
+   ((0x0BB4)   0xF6)                   ; l_
+   ((0x0BB3)   0xF7)                   ; l.
+   ((0x0BB1)   0xF8)                   ; r_
+   ((0x0BA9)   0xF9)                   ; n_
+   ((0x0BB8)   0xFA)                   ; s
+   ((0x0BB7)   0xFB)                   ; s'
+   ((0x0B9C)   0xFC)                   ; j
+   ((0x0BB9)   0xFD)                   ; h
+   ))
+   
+ (dependent-vowel
+  (cond
+   ((0x0BBE)   0xA3)                   ; a~
+   ((0x0BBF)   0xA4)                   ; i
+   ((0x0BC0)   0xA6)                   ; i~
+   ((0x0BC1)   0xA7)                   ; u
+   ((0x0BC2)   0xA8)                   ; u~
+   ((0x0BC6)   0xAA)                   ; e
+   ((0x0BC7)   0xAB)                   ; e~
+   ((0x0BC8)   0xAC)                   ; ai
+   ((0x0BCA)   0xA3)                   ; o (right part)
+   ((0x0BCB)   0xA3)                   ; o~ (right part)
+   ((0x0BCC)   0xF7)                   ; au (right part)
+   ))
+
+ (independent
+  (cond
+   ;; VOWELS
+   ((0x0B85)   0xDC)                   ; a
+   ((0x0B86)   0xDD)                   ; a~
+   ((0x0B87)   0xDE)                   ; i
+   ((0x0B88)   0xDF)                   ; i~
+   ((0x0B89)   0xE0)                   ; u
+   ((0x0B8A)   0xE1)                   ; u~
+   ((0x0B8E)   0xE2)                   ; e
+   ((0x0B8F)   0xE3)                   ; e~
+   ((0x0B90)   0xE4)                   ; ai
+   ((0x0B92)   0xE5)                   ; o
+   ((0x0B93)   0xE6)                   ; o~
+   ((0x0B94)   0xE5 0xF7)              ; au
+   ;; VISARGA
+   ((0x0B83)   0xE7)
+   ))
+
+ (isolated-dependent-vowel
+  (cond
+   ((0x0BBE)   0x81 0xA3)              ; a~
+   ((0x0BBF)   0x81 0xA4)              ; i
+   ((0x0BC0)   0x81 0xA6)              ; i~
+   ((0x0BC1)   0x81 0xA7)              ; u
+   ((0x0BC2)   0x81 0xA8)              ; u~
+   ((0x0BC6)   0xAA 0x81)              ; e
+   ((0x0BC7)   0xAB 0x81)              ; e~
+   ((0x0BC8)   0xAC 0x81)              ; ai
+   ((0x0BCA)   0xAA 0x81 0xA3)         ; o
+   ((0x0BCB)   0xAB 0x81 0xA3)         ; o~
+   ((0x0BCC)   0xAA 0x81 0xF7)         ; au
+   )))
+
+;; LIGATURE STAGE
+(category
+ ;; C: CONSONANT (except for K, R, S)
+ ;; K: CONSONANT K
+ ;; R: CONSONANT R
+ ;; S: CONSONANT S'
+ ;; V: LIGATURE VOWEL (except for I,i)
+ ;; I: DEPENDENT VOWEL I
+ ;; i: DEPENDENT VOWEL I~
+ ;; L: LEFT PART OF VOWEL 
+ ;; v: VIRAMA
+ ;; E: ELSE
+ ;;
+ (0x00 0xFF    ?E)
+ (0xA2         ?v)
+ (0xE9 0xFD    ?C)
+ (0xE8         ?K)
+ (0xF3         ?R)
+ (0xFB         ?S)
+ (0xA4         ?I)                     ; i
+ (0xA6         ?i)                     ; i~
+ (0xA7 0xA8    ?V)                     ; u, u~
+ (0xAA 0xAC    ?L)
+ )
+
+(generator
+ (0
+  (cond
+   ;; 1  23      4      5    6
+   (" (L)(([CKRS](v)?)*)(KvS)(.)? "
+    (2 = *) (1 =) (5 0xFE) (6 =))
+   ;; 1  23      4      5
+   (" (L)(([CKRS](v)?)*)([CKRS].?) "
+    (2 = *) (1 =) (5 = =))
+   ("KvS[Iiv]?"
+    ligature-ks)
+   ("[CKRS][IiV]"
+    ligature = =)
+   ("SvRi"     0xFF)
+   ("."
+    =))
+  *)
+     
+ (ligature-ks
+  (cond
+   ((0xE8 0xA2 0xFB 0xA4)      0x56)   ; ksi
+   ((0xE8 0xA2 0xFB 0xA6)      0x72)   ; ksi~
+   ((0xE8 0xA2 0xFB 0xA2)      0x7A)   ; ks
+   ((0xE8 0xA2 0xFB)           0xFE)   ; ks
+   ))
+
+ (ligature
+  (cond
+   ((0xE8 0xA2 0x76 0xA2)      0x7A)   ; ks.
+
+   ((0xE8 0xA4)                0x41)           ; ki
+   ((0xE9 0xA4)                0x42)           ; n^i
+   ((0xEA 0xA4)                0x43)           ; ci
+   ((0xEB 0xA4)                0x44)           ; n~i
+   ((0xEC 0xA4)                0xAE)           ; t.i
+   ((0xED 0xA4)                0x45)           ; n.i
+   ((0xEE 0xA4)                0x46)           ; ti
+   ((0xEF 0xA4)                0x47)           ; ni
+   ((0xF0 0xA4)                0x48)           ; pi
+   ((0xF1 0xA4)                0x49)           ; mi
+   ((0xF2 0xA4)                0x4A)           ; yi
+   ((0xF3 0xA4)                0x4B)           ; ri
+   ((0xF4 0xA4)                0x4C)           ; li
+   ((0xF5 0xA4)                0x4D)           ; vi
+   ((0xF6 0xA4)                0x4E)           ; l_i
+   ((0xF7 0xA4)                0x4F)           ; l.i
+   ((0xF8 0xA4)                0x50)           ; r_i
+   ((0xF9 0xA4)                0x51)           ; n_i
+   ((0xFA 0xA4)                0x52)           ; si
+   ((0xFB 0xA4)                0x53)           ; s'i
+   ((0xFC 0xA4)                0x54)           ; ji
+   ((0xFD 0xA4)                0x55)           ; hi
+
+   ((0xE8 0xA6)                0x57)           ; ki~
+   ((0xE9 0xA6)                0x58)           ; n^i~
+   ((0xEA 0xA6)                0x59)           ; ci~
+   ((0xEB 0xA6)                0x5A)           ; n~i~
+   ((0xEC 0xA6)                0xAF)           ; t.i~
+   ((0xED 0xA6)                0x61)           ; n.i~
+   ((0xEE 0xA6)                0x62)           ; ti~
+   ((0xEF 0xA6)                0x63)           ; ni~
+   ((0xF0 0xA6)                0x64)           ; pi~
+   ((0xF1 0xA6)                0x65)           ; mi~
+   ((0xF2 0xA6)                0x66)           ; yi~
+   ((0xF3 0xA6)                0x67)           ; ri~
+   ((0xF4 0xA6)                0x68)           ; li~
+   ((0xF5 0xA6)                0x69)           ; vi~
+   ((0xF6 0xA6)                0x6A)           ; l_i~
+   ((0xF7 0xA6)                0x6B)           ; l.i~
+   ((0xF8 0xA6)                0x6C)           ; r_i~
+   ((0xF9 0xA6)                0x6D)           ; n_i~
+   ((0xFA 0xA6)                0x6E)           ; si~
+   ((0xFB 0xA6)                0x6F)           ; s'i~
+   ((0xFC 0xA6)                0x70)           ; ji~
+   ((0xFD 0xA6)                0x71)           ; hi~
+
+   ((0xE8 0xA7)                0xB0)           ; ku
+   ((0xE9 0xA7)                0xB1)           ; n^u
+   ((0xEA 0xA7)                0xB2)           ; cu
+   ((0xEB 0xA7)                0xB3)           ; n~u
+   ((0xEC 0xA7)                0xB4)           ; t.u
+   ((0xED 0xA7)                0xB5)           ; n.u
+   ((0xEE 0xA7)                0xB6)           ; tu
+   ((0xEF 0xA7)                0xB8)           ; nu
+   ((0xF0 0xA7)                0xB9)           ; pu
+   ((0xF1 0xA7)                0xBA)           ; mu
+   ((0xF2 0xA7)                0xBB)           ; yu
+   ((0xF3 0xA7)                0xBC)           ; ru
+   ((0xF4 0xA7)                0xBD)           ; lu
+   ((0xF5 0xA7)                0xBE)           ; vu
+   ((0xF6 0xA7)                0xBF)           ; l_u
+   ((0xF7 0xA7)                0xC0)           ; l.u
+   ((0xF8 0xA7)                0xC1)           ; r_u
+   ((0xF9 0xA7)                0xC2)           ; n_u
+
+   ((0xE8 0xA8)                0xC3)           ; ku~
+   ((0xE9 0xA8)                0xC4)           ; n^u~
+   ((0xEA 0xA8)                0xC5)           ; cu~
+   ((0xEB 0xA8)                0xC6)           ; n~u~
+   ((0xEC 0xA8)                0xC7)           ; t.u~
+   ((0xED 0xA8)                0xC8)           ; n.u~
+   ((0xEE 0xA8)                0xC9)           ; tu~
+   ((0xEF 0xA8)                0xCB)           ; nu~
+   ((0xF0 0xA8)                0xCC)           ; pu~
+   ((0xF1 0xA8)                0xCD)           ; mu~
+   ((0xF2 0xA8)                0xCE)           ; yu~
+   ((0xF3 0xA8)                0xCF)           ; ru~
+   ((0xF4 0xA8)                0xD6)           ; lu~
+   ((0xF5 0xA8)                0xD7)           ; vu~
+   ((0xF6 0xA8)                0xD8)           ; l_u~
+   ((0xF7 0xA8)                0xD9)           ; l.u~
+   ((0xF8 0xA8)                0xDA)           ; r_u~
+   ((0xF9 0xA8)                0xDB)           ; n_u~
+   ))
+ )
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/TAML-OTF.flt b/TAML-OTF.flt
new file mode 100644 (file)
index 0000000..913bf34
--- /dev/null
@@ -0,0 +1,114 @@
+;; TML-OTF.flt -- Font Layout Table for Tamil OpenType fonts
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> TML-OTF.flt
+;;;
+;;; For Tamil OpenType fonts to draw Tamil.
+;;; Fonts are available from <http://sourceforge.net/projects/tamillinux/>.
+
+(category
+ ;; C: general consonant
+ ;; V: independent vowel
+ ;; H: HALANT
+ ;; m: MATRA (pre)
+ ;; u: MATRA (above)
+ ;; b: MATRA (below)
+ ;; p: MATRA (post)
+ ;; A: vowel modifier (above)
+ ;; a: vowel modifier (post)
+ ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
+ ;; J: ZWJ (ZERO WIDTH JOINER)
+ ;; E: ELSE
+ ;;
+ (0x200C       ?N)                     ; ZWNJ
+ (0x200D       ?J)                     ; ZWJ
+ (0x0964       ?E)                     ; DANDA
+ (0x0965       ?E)                     ; DOUBLE DANDA
+ (0x0B80 0x0BFF        ?E)                     ; ELSE
+ (0x0B85 0x0B94        ?V)                     ; LETTER AA .. LETTER AU
+ (0x0B95 0x0BB9 ?C)                    ; LETTER KA .. LETTER HA
+ (0x0BBE       ?p)                     ; VOWEL SIGN AA (post)
+ (0x0BBF       ?p)                     ; VOWEL SIGN I (post)
+ (0x0BC0       ?u)                     ; VOWEL SIGN II (above)
+ (0x0BC1       ?b)                     ; VOWEL SIGN U (below)
+ (0x0BC2       ?b)                     ; VOWEL SIGN UU (below)
+ (0x0BC6 0x0BC8        ?m)                     ; VOWEL SIGN E, EE, AI (pre)
+ (0x0BCA 0x0BCC        ?t)                     ; VOWEL SIGN O, OO, AU (two-part)
+ (0x0BCD       ?H)                     ; VIRAMA
+ (0x0BD7       ?p)                     ; AU LENGTH MARK (post)
+ )
+
+;; Step 1 : Syllable identification.
+(generator
+ (0
+  (cond
+   ;; A syllable ending with a two-part vowel sign.
+   ("((CH)*C)(t)"
+    < | (1 otf:taml=akhn) (3 two-part) | >)
+
+   ;; A syllable ending with a vowel sign.
+   ("((CH)*C)([mubp])"
+    < | (1 otf:taml=akhn) (3 =) | >)
+
+   ;; No vowel sign.
+   ("(CH)*CH?"
+    < | otf:taml=akhn | >)
+
+   ;; A variation of AU.
+   ((0x0B92 0x0BD7)
+    0x0B94)
+
+   ("." =))
+  *)
+
+ (two-part
+  (cond
+   ((0x0BCA)
+    0x0BC6 0x0BBE)
+   ((0x0BCB)
+    0x0BC7 0x0BBE)
+   ((0x0BCC)
+    0x0BC6 0x0BD7))))
+
+;; Step 2 : Matra movements.
+(generator
+ (0
+  (cond
+   (" ([^ mubp]*)([^ mubp])(m)?([ubp])? "
+    | (1 = *) (3 =) (2 =) (4 =) |)
+   ("." =))
+  *))
+
+;; Step 3 : OTF substitutions and positionings.
+(generator
+ (0
+  (cond
+   (" ([^ ]*) "
+    (1 otf:taml))
+   ("."
+    [ otf:taml=+ ]))
+  *))
+
+;; Local Variables:
+;; mode: emacs-lisp
+;; End:
diff --git a/TEL-OTF.flt b/TEL-OTF.flt
deleted file mode 100644 (file)
index d50c70d..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-;; TEL-OTF.flt -- Font Layout Table for Telugu OpenType fonts
-;; Copyright (C) 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> TEL-OTF.flt
-;;;
-;;; For Telugu OpenType fonts to draw Telugu.
-;;; Designed for Pothana2000.ttf <http://www.kavya-nandanam.com/>
-
-(category
- ;; C: general consonant
- ;; R: no below-base consonat (RRA, NNNA, LLLA)
- ;; H: HALANT
- ;; u: MATRA (above)
- ;; b: MATRA (below)
- ;; p: MATRA (post)
- ;; t: MATRA (two-part)
- ;; a: vowel modifier (post)
- ;; V: independent vowel
- ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
- ;; J: ZWJ (ZERO WIDTH JOINER)
- ;; E: ELSE
- ;;
- (0x200C       ?N)                     ; ZWNJ
- (0x200D       ?J)                     ; ZWJ
- (0x0964       ?E)                     ; DANDA
- (0x0965       ?E)                     ; DOUBLE DANDA
- (0x0C00 0x0C7F        ?E)                     ; ELSE
- (0x0C01 0x0C03        ?a)                     ; post signs
- (0x0C05 0x0C14        ?V)                     ; LETTER A .. LETTER AU
- (0x0C15 0x0C39 ?C)                    ; LETTER KA .. LETTER HA
- (0x0C29       ?R)                     ; LETTER NNNA
- (0x0C31       ?R)                     ; LETTER RRA
- (0x0C34       ?R)                     ; LETTER LLLA
- (0x0C3E 0x0C40        ?u)                     ; VOWEL SIGN AA, I, II (above)
- (0x0C41 0x0C44        ?p)                     ; VOWEL SIGN U, UU, R, RR (post)
- (0x0C46 0x0C47        ?u)                     ; VOWEL SIGN E, EE (above)
- (0x0C48       ?t)                     ; VOWEL SIGN AI (two-part)
- (0x0C4A 0x0C4C        ?u)                     ; VOWEL SIGN O, OO, AU (above)
- (0x0C4D       ?H)                     ; SIGN VIRAMA (HALANT)
- (0x0C55       ?u)                     ; LENGTH MARK (above)
- (0x0C56       ?b)                     ; AI LENGTH MARK (below)
- (0x0C60 0x0C61        ?V)                     ; LETTER VOCALIC RR, LL
- (0x0C7E       ?Y)                     ; internal use
- (0x0C7F       ?X)                     ; internal use
- )
-
-;; Step 1 : Syllable identification and Halant movement.
-(generator
- (0
-  (cond
-   ;; A syllable containing a two-part vowel sign.
-   ("([CR](HC)*)(t)(a)?"
-    < | (1 move-base-Halant) (3 0x0C46 0x0C56) (4 =) | >)
-
-   ;; A syllable ending with vowel signs and/or a vowel modifier.
-   ("([CR](HC)*)([ubp]+a?|a)"
-    < | (1 move-base-Halant) (3 = *) | >)
-
-   ;; Forced Halant form
-   ("((RH)?(CH)*)(CH)N"
-    (1 < | move-base-Halant | >)
-    (4 < | move-base-Halant | >))
-
-   ;; Forced Below form
-   ("((RH)?(CH)*)(CH)J"
-    (1 < | move-base-Halant >)
-    (4 < | otf:telu=blwf | >))
-
-   ;; A syllable without a vowel sign nor a vowel modifier.
-   ("[CR](HC)*H?"
-    < | move-base-Halant | >)
-
-   ;; A syllable starting with an independent vowel.
-   ("Va?"
-    < | = * | > )
-
-   ("." =))
-  *)
-
- ;; Move Halant on the base consonant to the tail if the syllable ends
- ;; with a consonant.
- ;; A leading 0x0C7F means Halant movement.
- ;; A leading 0x0C7E means a syllable ending with a Halant.
- (move-base-Halant
-  (cond
-   (".*H$"
-    0x0C7E = *)
-   ("(.)(H)(.*)"
-    0x0C7F (1 =) (3 = *) (2 =))
-   (".*"
-    = *))))
-
-;; Step 2 : Move Matra if applicable.
-;; The base consonant in a Halant-ending syllable is changed into Halant form.
-(generator
- (0
-  (cond
-   ;;  1  2      3   4   5   6
-   (" X(.)([CH]*)(u)?(b)?(p)?(a)? "
-    | (1 =) (3 =) (4 =) (5 =) (2 = *) (6 =) |)
-   (" Y(..)([^ ]*) "
-    | (1 otf:telu=haln) (2 = *) |)
-   ("." =))
-  *))
-
-;; Step 3 : Drive OTF tables.
-(generator
- (0
-  (cond
-   (" ([^ ]*) "
-    (1 otf:telu))
-   ("."
-    [ otf:telu=+ ]))
-  *))
-
-;; Local Variables:
-;; mode: emacs-lisp
-;; End:
diff --git a/TELU-OTF.flt b/TELU-OTF.flt
new file mode 100644 (file)
index 0000000..d50c70d
--- /dev/null
@@ -0,0 +1,138 @@
+;; TEL-OTF.flt -- Font Layout Table for Telugu OpenType fonts
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> TEL-OTF.flt
+;;;
+;;; For Telugu OpenType fonts to draw Telugu.
+;;; Designed for Pothana2000.ttf <http://www.kavya-nandanam.com/>
+
+(category
+ ;; C: general consonant
+ ;; R: no below-base consonat (RRA, NNNA, LLLA)
+ ;; H: HALANT
+ ;; u: MATRA (above)
+ ;; b: MATRA (below)
+ ;; p: MATRA (post)
+ ;; t: MATRA (two-part)
+ ;; a: vowel modifier (post)
+ ;; V: independent vowel
+ ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
+ ;; J: ZWJ (ZERO WIDTH JOINER)
+ ;; E: ELSE
+ ;;
+ (0x200C       ?N)                     ; ZWNJ
+ (0x200D       ?J)                     ; ZWJ
+ (0x0964       ?E)                     ; DANDA
+ (0x0965       ?E)                     ; DOUBLE DANDA
+ (0x0C00 0x0C7F        ?E)                     ; ELSE
+ (0x0C01 0x0C03        ?a)                     ; post signs
+ (0x0C05 0x0C14        ?V)                     ; LETTER A .. LETTER AU
+ (0x0C15 0x0C39 ?C)                    ; LETTER KA .. LETTER HA
+ (0x0C29       ?R)                     ; LETTER NNNA
+ (0x0C31       ?R)                     ; LETTER RRA
+ (0x0C34       ?R)                     ; LETTER LLLA
+ (0x0C3E 0x0C40        ?u)                     ; VOWEL SIGN AA, I, II (above)
+ (0x0C41 0x0C44        ?p)                     ; VOWEL SIGN U, UU, R, RR (post)
+ (0x0C46 0x0C47        ?u)                     ; VOWEL SIGN E, EE (above)
+ (0x0C48       ?t)                     ; VOWEL SIGN AI (two-part)
+ (0x0C4A 0x0C4C        ?u)                     ; VOWEL SIGN O, OO, AU (above)
+ (0x0C4D       ?H)                     ; SIGN VIRAMA (HALANT)
+ (0x0C55       ?u)                     ; LENGTH MARK (above)
+ (0x0C56       ?b)                     ; AI LENGTH MARK (below)
+ (0x0C60 0x0C61        ?V)                     ; LETTER VOCALIC RR, LL
+ (0x0C7E       ?Y)                     ; internal use
+ (0x0C7F       ?X)                     ; internal use
+ )
+
+;; Step 1 : Syllable identification and Halant movement.
+(generator
+ (0
+  (cond
+   ;; A syllable containing a two-part vowel sign.
+   ("([CR](HC)*)(t)(a)?"
+    < | (1 move-base-Halant) (3 0x0C46 0x0C56) (4 =) | >)
+
+   ;; A syllable ending with vowel signs and/or a vowel modifier.
+   ("([CR](HC)*)([ubp]+a?|a)"
+    < | (1 move-base-Halant) (3 = *) | >)
+
+   ;; Forced Halant form
+   ("((RH)?(CH)*)(CH)N"
+    (1 < | move-base-Halant | >)
+    (4 < | move-base-Halant | >))
+
+   ;; Forced Below form
+   ("((RH)?(CH)*)(CH)J"
+    (1 < | move-base-Halant >)
+    (4 < | otf:telu=blwf | >))
+
+   ;; A syllable without a vowel sign nor a vowel modifier.
+   ("[CR](HC)*H?"
+    < | move-base-Halant | >)
+
+   ;; A syllable starting with an independent vowel.
+   ("Va?"
+    < | = * | > )
+
+   ("." =))
+  *)
+
+ ;; Move Halant on the base consonant to the tail if the syllable ends
+ ;; with a consonant.
+ ;; A leading 0x0C7F means Halant movement.
+ ;; A leading 0x0C7E means a syllable ending with a Halant.
+ (move-base-Halant
+  (cond
+   (".*H$"
+    0x0C7E = *)
+   ("(.)(H)(.*)"
+    0x0C7F (1 =) (3 = *) (2 =))
+   (".*"
+    = *))))
+
+;; Step 2 : Move Matra if applicable.
+;; The base consonant in a Halant-ending syllable is changed into Halant form.
+(generator
+ (0
+  (cond
+   ;;  1  2      3   4   5   6
+   (" X(.)([CH]*)(u)?(b)?(p)?(a)? "
+    | (1 =) (3 =) (4 =) (5 =) (2 = *) (6 =) |)
+   (" Y(..)([^ ]*) "
+    | (1 otf:telu=haln) (2 = *) |)
+   ("." =))
+  *))
+
+;; Step 3 : Drive OTF tables.
+(generator
+ (0
+  (cond
+   (" ([^ ]*) "
+    (1 otf:telu))
+   ("."
+    [ otf:telu=+ ]))
+  *))
+
+;; Local Variables:
+;; mode: emacs-lisp
+;; End:
diff --git a/THAA-OTF.flt b/THAA-OTF.flt
new file mode 100644 (file)
index 0000000..e8dce35
--- /dev/null
@@ -0,0 +1,51 @@
+;; THAANA.flt -- Font Layout Table for Thaana OpenType font
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> THAANA-OTF.flt
+;;;
+;;; For Thaana OpenType fonts to draw the Thaana script.
+
+(category
+ (0x0780 0x07a5        ?c)                     ; consonants
+ (0x07a6 0x07b0        ?v)                     ; vowels
+ (0x07b1       ?c)                     ; consonant
+ )
+
+;; Grouping.
+(generator
+ (0
+  (cond
+   ;; GPOS of OTF wil override this combining rule.
+   ("cv" < = Bl.Bl = >)
+   ("v" [ = ])
+   ("." =))
+  *))
+
+;; Drive OTF.
+(generator
+ (0
+  otf:thaa))
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/THAANA-OTF.flt b/THAANA-OTF.flt
deleted file mode 100644 (file)
index e8dce35..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-;; THAANA.flt -- Font Layout Table for Thaana OpenType font
-;; Copyright (C) 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> THAANA-OTF.flt
-;;;
-;;; For Thaana OpenType fonts to draw the Thaana script.
-
-(category
- (0x0780 0x07a5        ?c)                     ; consonants
- (0x07a6 0x07b0        ?v)                     ; vowels
- (0x07b1       ?c)                     ; consonant
- )
-
-;; Grouping.
-(generator
- (0
-  (cond
-   ;; GPOS of OTF wil override this combining rule.
-   ("cv" < = Bl.Bl = >)
-   ("v" [ = ])
-   ("." =))
-  *))
-
-;; Drive OTF.
-(generator
- (0
-  otf:thaa))
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/TIB-MTIB.flt b/TIB-MTIB.flt
deleted file mode 100644 (file)
index 08e1a53..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-;; TIB-MTIB.flt -- Font Layout Table for Tibetan (Tomabechi font)
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> TIB-MTIB.flt
-;;;
-;;; For the Tibetan TrueType font developped by Dr. Tomabechi to draw
-;;; Tibetan script.  The font is available at:
-;;; <ul>
-;;; <li> infopage: http://www.m17n.org/emacs-tibetan/
-;;; <li> download: http://www.m17n.org/emacs-tibetan/fonts/mtib.ttf
-;;; </ul>
-
-(category
- ;; Tibetan character category for rendering
- ;;   C: CONSONANTS (except R)
- ;;   R: LETTER RA (RA-MGO)
- ;;   S: SUBJOINED CONSONANTS (except s)
- ;;   s: SUBJOINED CONSONANTS (don't modify RA-MGO)
- ;;   V: VOWEL (except a and A)
- ;;   a: VOWEL SIGN A (invisible when composed)
- ;;   A: VOWEL SIGN AA (don't make preceding C shorter)
- ;;   M: MODIFIER
- ;;   E: ELSE
- ;;
- (0x0F00 0x0FCF                ?E)             ; ELSE
- (0x0F19               ?M)             ; ASTROLOGICAL SIGN SDONG TSHUGS
- (0x0F35               ?M)             ; MARK NGAS BZUNG NYI ZLA
- (0x0F37               ?M)             ; MARK NGAS BZUNG SGOR RTAGS
- (0x0F39               ?M)             ; MARK TSA -PHRU
- (0x0F40 0x0F6A                ?C)             ; LETTER KA .. LETTER FIXED-FORM RA
- (0x0F62               ?R)             ; LETTER RA
- (0x0F70               ?a)             ; VOWEL SIGN A
- (0x0F71               ?A)             ; VOWEL SIGN AA
- (0x0F72 0x0F7D                ?V)             ; VOWEL SIGN I .. VOWEL SIGN OO
- (0x0F7E               ?M)             ; SIGN RJES SU NGA RO
- (0x0F80               ?V)             ; VOWEL SIGN REVERSED I
- (0x0F81               ?V)             ; VOWEL SIGN REVERSED II
- (0x0F82               ?M)             ; SIGN NYI ZLA NAA DA
- (0x0F83               ?M)             ; SIGN SNA LDAN
- (0x0F84               ?V)             ; MARK HALANTA
- ;; SIGN LCI RTAGS .. SIGN GRU MED RGYINGS
- (0x0F86 0x0F8B                ?M)
- ;; SUBJOINED LETTER KA .. SUBJOINED LETTER FIXED-FORM RA
- (0x0F90 0x0FBC                ?s)
- (0x0FAD               ?S)
- (0x0FB1 0x0FB2                ?S)
- (0x0FC6               ?M))
-
-(generator
- (0
-  (cond
-   ("[CR][Ss]*[VaA]*M*"
-    <
-    (cond
-     ("R[^SA].*"                       ; ར[^ྭྱྲཱ]
-      ((0x0F62) 0xE083)                        ; convert ར to upper form
-      subjoined *
-      dependent-vowel-modifier *)
-     (".A.*"                           ; Cཱ (don't make C shorter)
-      =
-      dependent-vowel-modifier *)
-     (".[Ss].*"
-      |
-      short-consonant
-      subjoined *
-      dependent-vowel-modifier *
-      |)
-     (".*"
-      =
-      dependent-vowel-modifier * )
-     )
-    >)
-   ("[VaAM]"
-    < 0xE07A dependent-vowel-modifier >)
-   ("[Ss]"
-    < 0xE07A subjoined >)
-   ("."
-    =))
-  *)
-
- (short-consonant
-  (cond
-   ((0x0F5D)                   0x0FBA)
-   ((0x0F61)                   0x0FBB)
-   ((0x0F62)                   0x0FBC)
-   ((0x0F6A)                   0x0FBC)
-   ((range 0x0F40 0x0F69)      0x0F90)))
-
- (subjoined
-  ((range 0x0F90 0x0FB9) bc.tc =))
-
- (dependent-vowel-modifier
-  (cond
-   ((0x0F18)   bl.tc =)
-   ((0x0F19)   bc.tc =)
-   ((0x0F35)   bc.tc =)
-   ((0x0F37)   bc.tc =)
-   ((0x0F39)   tc.bc =)
-   ((0x0F70)   )                       ; invisible
-   ((0x0F71)   bc.tc =)
-   ((0x0F72)   tc.bc =)
-   ((0x0F73)   bc.tc 0x0F71 tc.bc 0x0F72)
-   ((0x0F74)   bc.tc =)
-   ((0x0F75)   bc.tc =)
-   ((0x0F76)   bc.tc 0x0FB2 tc.bc 0x0F72)
-   ((0x0F77)   bc.tc 0x0FB2 bc.tc 0x0F71 tc.bc 0x0F80)
-   ((0x0F78)   bc.tc 0x0FB3 tc.bc 0x0F80)
-   ((0x0F79)   bc.tc 0x0FB3 bc.tc 0x0F71 tc.bc 0x0F80)
-   ((0x0F7A)   tc.bc =)
-   ((0x0F7B)   tc.bc =)
-   ((0x0F7C)   tc.bc =)
-   ((0x0F7D)   tc.bc =)
-   ((0x0F7E)   tc.bc =)
-   ((0x0F80)   tc.bc =)
-   ((0x0F81)   bc.tc 0x0F71 tc.bc =)
-   ((0x0F82)   tc.bc =)
-   ((0x0F83)   tc.bc =)
-   ((0x0F84)   bc.tc =)
-   ((0x0F86)   tc.bc =)
-   ((0x0F87)   tc.bc =)
-   ((0x0F88)   tc.bc =)
-   ((0x0F89)   tc.bc =)
-   ((0x0F8A)   tc.bc =)
-   ((0x0F8B)   tc.bc =)
-   ((0x0FC6)   bc.tc =))))
-
-(category
- (0x000 0xFFFF ?G))
-
-(generator
- (0
-  (cond
-   (" (G*) "
-    (1 precomposed = *))
-   ("[^ ]*"
-    = *))
-  *)
-
- (precomposed
-  (cond
-   ((0x0F90 0x0FAD)            0xE000)
-   ((0x0F90 0x0FB1)            0xE010)
-   ((0x0F90 0x0FB2)            0xE018)
-   ((0x0F90 0x0FB3)            0xE026)
-   ((0x0F91 0x0FAD)            0xE001)
-   ((0x0F91 0x0FB1)            0xE011)
-   ((0x0F91 0x0FB2)            0xE019)
-   ((0x0F92 0x0FAD)            0xE002)
-   ((0x0F92 0x0FB1)            0xE012)
-   ((0x0F92 0x0FB2 0x0FAD)     0xE025)
-   ((0x0F92 0x0FB2)            0xE01A)
-   ((0x0F92 0x0FB3)            0xE027)
-   ((0x0F95 0x0FAD)            0xE003)
-   ((0x0F97 0x0FB2)            0xE060)
-   ((0x0F99 0x0FAD)            0xE004)
-   ((0x0F9F 0x0FAD)            0xE005)
-   ((0x0F9F 0x0FB2)            0xE01B)
-   ((0x0FA0 0x0FB2)            0xE01C)
-   ((0x0FA1 0x0FAD)            0xE006)
-   ((0x0FA1 0x0FB2)            0xE01D)
-   ((0x0FA4 0x0FB1)            0xE013)
-   ((0x0FA4 0x0FB2)            0xE01E)
-   ((0x0FA5 0x0FB1 0x0FAD)     0xE017)
-   ((0x0FA5 0x0FB1)            0xE014)
-   ((0x0FA5 0x0FB2)            0xE01F)
-   ((0x0FA6 0x0FB1)            0xE015)
-   ((0x0FA6 0x0FB2)            0xE020)
-   ((0x0FA6 0x0FB3)            0xE028)
-   ((0x0FA8 0x0FB1)            0xE016)
-   ((0x0FA8 0x0FB2)            0xE021)
-   ((0x0FA9 0x0FAD)            0xE007)
-   ((0x0FAA 0x0FAD)            0xE008)
-   ((0x0FAB 0x0FB2)            0xE061)
-   ((0x0FAE 0x0FAD)            0xE009)
-   ((0x0FAF 0x0FAD)            0xE00A)
-   ((0x0FAF 0x0FB3)            0xE029)
-   ((0x0FB2 0x0F90 0x0FB1)     0xE03A)
-   ((0x0FB2 0x0F90)            0xE02C)
-   ((0x0FB2 0x0F92 0x0FAD)     0xE038)
-   ((0x0FB2 0x0F92 0x0FB1)     0xE03B)
-   ((0x0FB2 0x0F92)            0xE02D)
-   ((0x0FB2 0x0F94)            0xE02E)
-   ((0x0FB2 0x0F97)            0xE02F)
-   ((0x0FB2 0x0F99)            0xE030)
-   ((0x0FB2 0x0F9F)            0xE031)
-   ((0x0FB2 0x0FA1)            0xE032)
-   ((0x0FB2 0x0FA3)            0xE033)
-   ((0x0FB2 0x0FA6)            0xE034)
-   ((0x0FB2 0x0FA8 0x0FB1)     0xE03C)
-   ((0x0FB2 0x0FA8)            0xE035)
-   ((0x0FB2 0x0FA9 0x0FAD)     0xE039)
-   ((0x0FB2 0x0FA9)            0xE036)
-   ((0x0FB2 0x0FAB)            0xE037)
-   ((0x0FB2 0x0FAD)            0xE00B)
-   ((0x0FB2 0x0FB3)            0xE02A)
-   ((0x0FB3 0x0F90)            0xE03D)
-   ((0x0FB3 0x0F92)            0xE03E)
-   ((0x0FB3 0x0F94)            0xE03F)
-   ((0x0FB3 0x0F95)            0xE040)
-   ((0x0FB3 0x0F97)            0xE041)
-   ((0x0FB3 0x0F9F)            0xE042)
-   ((0x0FB3 0x0FA1)            0xE043)
-   ((0x0FB3 0x0FA4)            0xE044)
-   ((0x0FB3 0x0FA6)            0xE045)
-   ((0x0FB3 0x0FAD)            0xE00C)
-   ((0x0FB3 0x0FB7)            0xE046)
-   ((0x0FB4 0x0FAD)            0xE00D)
-   ((0x0FB4 0x0FB2)            0xE022)
-   ((0x0FB6 0x0F90 0x0FB1)     0xE052)
-   ((0x0FB6 0x0F90 0x0FB2)     0xE057)
-   ((0x0FB6 0x0F90)            0xE047)
-   ((0x0FB6 0x0F92 0x0FB1)     0xE053)
-   ((0x0FB6 0x0F92 0x0FB2)     0xE058)
-   ((0x0FB6 0x0F92)            0xE048)
-   ((0x0FB6 0x0F94)            0xE049)
-   ((0x0FB6 0x0F99)            0xE04A)
-   ((0x0FB6 0x0F9F)            0xE04B)
-   ((0x0FB6 0x0FA1)            0xE04C)
-   ((0x0FB6 0x0FA3 0x0FB2)     0xE059)
-   ((0x0FB6 0x0FA3)            0xE04D)
-   ((0x0FB6 0x0FA4 0x0FB1)     0xE054)
-   ((0x0FB6 0x0FA4 0x0FB2)     0xE05A)
-   ((0x0FB6 0x0FA4)            0xE04E)
-   ((0x0FB6 0x0FA6 0x0FB1)     0xE055)
-   ((0x0FB6 0x0FA6 0x0FB2)     0xE05B)
-   ((0x0FB6 0x0FA6)            0xE04F)
-   ((0x0FB6 0x0FA8 0x0FB1)     0xE055)
-   ((0x0FB6 0x0FA8 0x0FB2)     0xE05C)
-   ((0x0FB6 0x0FA8)            0xE050)
-   ((0x0FB6 0x0FA9)            0xE051)
-   ((0x0FB6 0x0FAD)            0xE00E)
-   ((0x0FB6 0x0FB2)            0xE023)
-   ((0x0FB6 0x0FB3)            0xE02B)
-   ((0x0FB7 0x0FAD)            0xE00F)
-   ((0x0FB7 0x0FB2)            0xE024))))
-
-;; Local Variables:
-;; mode: lisp
-;; coding: utf-8
-;; End:
diff --git a/TIB-MULE.flt b/TIB-MULE.flt
deleted file mode 100644 (file)
index b08cee3..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-;; TIB-MULE.flt -- Font Layout Table for Tibetan (muletibetan font)
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> TIB-MULE.flt
-;;;
-;;; For the muletibetan font developped by Dr. Tomabechi to draw Tibetan
-;;; script.  The font is available at:
-;;; <ul>
-;;; <li> infopage: http://www.gnu.org/directory/Localization/intlfonts.html
-;;; <li> download: ftp://ftp.gnu.org/pub/gnu/intlfonts/intlfonts-1.2.1.tar.gz
-;;; </ul>
-
-(category
- ;; Tibetan character category for rendering
- ;;   C: CONSONANTS (except R)
- ;;   R: LETTER RA (RA-MGO)
- ;;   S: SUBJOINED CONSONANTS (except s)
- ;;   s: SUBJOINED CONSONANTS (don't modify RA-MGO)
- ;;   V: VOWEL (except a and A)
- ;;   a: VOWEL SIGN A (invisible when composed)
- ;;   A: VOWEL SIGN AA (don't make preceding C shorter)
- ;;   M: MODIFIER
- ;;   E: ELSE
- ;;
- (0x0F00 0x0FCF                ?E)             ; default
- (0x0F19               ?M)             ; ASTROLOGICAL SIGN SDONG TSHUGS
- (0x0F35               ?M)             ; MARK NGAS BZUNG NYI ZLA
- (0x0F37               ?M)             ; MARK NGAS BZUNG SGOR RTAGS
- (0x0F39               ?M)             ; MARK TSA -PHRU
- (0x0F40 0x0F6A                ?C)             ; LETTER KA .. LETTER FIXED-FORM RA
- (0x0F62               ?R)             ; LETTER RA
- (0x0F70               ?a)             ; VOWEL SIGN A
- (0x0F71               ?A)             ; VOWEL SIGN AA
- (0x0F72 0x0F7D                ?V)             ; VOWEL SIGN I .. VOWEL SIGN OO
- (0x0F7E               ?M)             ; SIGN RJES SU NGA RO
- (0x0F80               ?V)             ; VOWEL SIGN REVERSED I
- (0x0F81               ?V)             ; VOWEL SIGN REVERSED II
- (0x0F82               ?M)             ; SIGN NYI ZLA NAA DA
- (0x0F83               ?M)             ; SIGN SNA LDAN
- (0x0F84               ?V)             ; MARK HALANTA
- ;; SIGN LCI RTAGS .. SIGN GRU MED RGYINGS
- (0x0F86 0x0F8B                ?M)
- ;; SUBJOINED LETTER KA .. SUBJOINED LETTER FIXED-FORM RA
- (0x0F90 0x0FBC                ?s)
- (0x0FAD               ?S)
- (0x0FB1 0x0FB2                ?S))
-
-(generator
- (0
-  (cond
-   ("[CR][Ss]*[VaA]*M*"
-    <
-    (cond
-     ("R[SA].*"                                ; ར[ྭྱྲཱ]
-      ((0x0F62) 0x2122)                        ; convert ར to upper form
-      subjoined *
-      dependent-vowel-modifier *)
-     (".A.*"                           ; Cཱ
-      consonant
-      dependent-vowel-modifier *)
-     (".[Ss].*"
-      |
-      short-consonant
-      subjoined *
-      dependent-vowel-modifier *
-      |)
-     (".*"
-      consonant
-      dependent-vowel-modifier * )
-     )
-    >)
-   ("."
-    independent
-    subjoined))
-  *)
-
- (consonant
-  ((range 0x0F40 0x0F6A)       0x2221))
-
- (short-consonant
-  (cond
-   ((range 0x0F40 0x0F69)      0x2321)
-   ((0x0F6A)                   0x234D)))
-
- (subjoined
-  ((range 0x0F90 0x0FBC)       bc+tc 0x2321))
-
- (dependent-vowel-modifier
-  (cond
-   ((0x0F19)   bc-tc 0x2149)
-   ((0x0F35)   bc-tc 0x2165)
-   ((0x0F37)   bc-tc 0x2167)
-   ((0x0F39)   tc-bc 0x2169)
-   ((0x0F70)   )                       ; invisible
-   ((0x0F71)   bc-tc 0x2252)
-   ((0x0F72)   tc-bc 0x2253)
-   ((0x0F73)   bc-tc 0x2252 tc-bc 0x2253)
-   ((0x0F74)   bc-tc 0x2255)
-   ((0x0F75)   bc-tc 0x2256)
-   ((0x0F76)   bc-tc 0x2343 tc-bc 0x2261)
-   ((0x0F77)   bc-tc 0x2343 bc-tc 0x2252 tc-bc 0x2261)
-   ((0x0F78)   bc-tc 0x2344 tc-bc 0x2261)
-   ((0x0F79)   bc-tc 0x2344 bc-tc 0x2262 tc-bc 0x2261)
-   ((0x0F7A)   tc-bc 0x225B)
-   ((0x0F7B)   tc-bc 0x225C)
-   ((0x0F7C)   tc-bc 0x225D)
-   ((0x0F7D)   tc-bc 0x225E)
-   ((0x0F7E)   tc-bc 0x225F)
-   ((0x0F80)   tc-bc 0x2261)
-   ((0x0F81)   bc-tc 0x2252 0x2261)
-   ((0x0F82)   tc-bc 0x2263)
-   ((0x0F83)   tc-bc 0x2264)
-   ((0x0F84)   bc-tc 0x2265)
-   ((0x0F86)   tc-bc 0x2267)
-   ((0x0F87)   tc-bc 0x2268)
-   ((0x0F88)   tc-bc 0x2269)
-   ((0x0F89)   tc-bc 0x226A)
-   ((0x0F8A)   tc-bc 0x226B)
-   ((0x0F8B)   tc-bc 0x226C)))
-
- (independent
-  (cond
-   ((range 0x0F00 0x0F3F)      0x2130)
-   ((range 0x0F6B 0x0F8B)      0x224C)
-   ((range 0x0FBD 0x0FCF)      0x234E))))
-
-(category
- (0x2121 0x24FF ?G))
-
-(generator
- (0
-  (cond
-   (" (G*) "
-    (1 precomposed = * ))
-   ("[^ ]*"
-    = * ))
-  *)
-
- (precomposed
-  (cond
-   ((0x2321 0x233E)            0x2421)
-   ((0x2321 0x2342)            0x2440)
-   ((0x2321 0x2343)            0x2450)
-   ((0x2321 0x2344)            0x2460)
-   ((0x2322 0x233E)            0x2422)
-   ((0x2322 0x2342)            0x2441)
-   ((0x2322 0x2343)            0x2451)
-   ((0x2323 0x233E)            0x2423)
-   ((0x2323 0x2342)            0x2442)
-   ((0x2323 0x2343 0x233E)     0x245F)
-   ((0x2323 0x2343)            0x2452)
-   ((0x2323 0x2344)            0x2461)
-   ((0x2326 0x233E)            0x2424)
-   ((0x2328 0x2343)            0x245D)
-   ((0x232A 0x233E)            0x2425)
-   ((0x2330 0x233E)            0x2426)
-   ((0x2330 0x2343)            0x2453)
-   ((0x2331 0x2343)            0x2454)
-   ((0x2332 0x233E)            0x2427)
-   ((0x2332 0x2343)            0x2455)
-   ((0x2335 0x2342)            0x2443)
-   ((0x2335 0x2343)            0x2456)
-   ((0x2336 0x2342 0x233E)     0x2447)
-   ((0x2336 0x2342)            0x2444)
-   ((0x2336 0x2343)            0x2457)
-   ((0x2337 0x2342)            0x2445)
-   ((0x2337 0x2343)            0x2458)
-   ((0x2337 0x2344)            0x2462)
-   ((0x2339 0x2342)            0x2446)
-   ((0x2339 0x2343)            0x2459)
-   ((0x233A 0x233E)            0x2428)
-   ((0x233B 0x233E)            0x2429)
-   ((0x233C 0x2343)            0x245E)
-   ((0x233F 0x233E)            0x242A)
-   ((0x2340 0x233E)            0x242B)
-   ((0x2340 0x2344)            0x2463)
-   ((0x2343 0x2321 0x2342)     0x2530)
-   ((0x2343 0x2321)            0x2521)
-   ((0x2343 0x2323 0x233E)     0x252D)
-   ((0x2343 0x2323 0x2342)     0x2531)
-   ((0x2343 0x2323)            0x2522)
-   ((0x2343 0x2325)            0x2523)
-   ((0x2343 0x2328)            0x2524)
-   ((0x2343 0x232A)            0x2525)
-   ((0x2343 0x2330)            0x2526)
-   ((0x2343 0x2332)            0x2527)
-   ((0x2343 0x2334)            0x2528)
-   ((0x2343 0x2337)            0x2529)
-   ((0x2343 0x2339 0x2342)     0x2532)
-   ((0x2343 0x2339)            0x252A)
-   ((0x2343 0x233A 0x233E)     0x252E)
-   ((0x2343 0x233A)            0x252B)
-   ((0x2343 0x233C)            0x252C)
-   ((0x2343 0x233E)            0x242C)
-   ((0x2343 0x2344)            0x2464)
-   ((0x2344 0x2321)            0x2540)
-   ((0x2344 0x2323)            0x2541)
-   ((0x2344 0x2325)            0x2542)
-   ((0x2344 0x2326)            0x2543)
-   ((0x2344 0x2328)            0x2544)
-   ((0x2344 0x2330)            0x2545)
-   ((0x2344 0x2332)            0x2546)
-   ((0x2344 0x2334)            0x2121)
-   ((0x2344 0x2335)            0x2547)
-   ((0x2344 0x2337)            0x2548)
-   ((0x2344 0x233E)            0x242D)
-   ((0x2344 0x2348)            0x2549)
-   ((0x2345 0x233E)            0x242E)
-   ((0x2345 0x2343)            0x245A)
-   ((0x2347 0x2321 0x2342)     0x2560)
-   ((0x2347 0x2321 0x2343)     0x2570)
-   ((0x2347 0x2321)            0x2550)
-   ((0x2347 0x2323 0x2342)     0x2561)
-   ((0x2347 0x2323 0x2343)     0x2571)
-   ((0x2347 0x2323)            0x2551)
-   ((0x2347 0x2325)            0x2552)
-   ((0x2347 0x232A)            0x2553)
-   ((0x2347 0x2330)            0x2554)
-   ((0x2347 0x2332)            0x2555)
-   ((0x2347 0x2334 0x2343)     0x2572)
-   ((0x2347 0x2334)            0x2556)
-   ((0x2347 0x2335 0x2342)     0x2562)
-   ((0x2347 0x2335 0x2343)     0x2573)
-   ((0x2347 0x2335)            0x2557)
-   ((0x2347 0x2337 0x2342)     0x2563)
-   ((0x2347 0x2337 0x2343)     0x2574)
-   ((0x2347 0x2337)            0x2558)
-   ((0x2347 0x2339 0x2342)     0x2564)
-   ((0x2347 0x2339 0x2343)     0x2575)
-   ((0x2347 0x2339)            0x2559)
-   ((0x2347 0x233A)            0x255A)
-   ((0x2347 0x233E)            0x242F)
-   ((0x2347 0x2343)            0x245B)
-   ((0x2347 0x2344)            0x2465)
-   ((0x2348 0x233E)            0x2430)
-   ((0x2348 0x2343)            0x245C))))
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/TIBT-MTIB.flt b/TIBT-MTIB.flt
new file mode 100644 (file)
index 0000000..08e1a53
--- /dev/null
@@ -0,0 +1,260 @@
+;; TIB-MTIB.flt -- Font Layout Table for Tibetan (Tomabechi font)
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> TIB-MTIB.flt
+;;;
+;;; For the Tibetan TrueType font developped by Dr. Tomabechi to draw
+;;; Tibetan script.  The font is available at:
+;;; <ul>
+;;; <li> infopage: http://www.m17n.org/emacs-tibetan/
+;;; <li> download: http://www.m17n.org/emacs-tibetan/fonts/mtib.ttf
+;;; </ul>
+
+(category
+ ;; Tibetan character category for rendering
+ ;;   C: CONSONANTS (except R)
+ ;;   R: LETTER RA (RA-MGO)
+ ;;   S: SUBJOINED CONSONANTS (except s)
+ ;;   s: SUBJOINED CONSONANTS (don't modify RA-MGO)
+ ;;   V: VOWEL (except a and A)
+ ;;   a: VOWEL SIGN A (invisible when composed)
+ ;;   A: VOWEL SIGN AA (don't make preceding C shorter)
+ ;;   M: MODIFIER
+ ;;   E: ELSE
+ ;;
+ (0x0F00 0x0FCF                ?E)             ; ELSE
+ (0x0F19               ?M)             ; ASTROLOGICAL SIGN SDONG TSHUGS
+ (0x0F35               ?M)             ; MARK NGAS BZUNG NYI ZLA
+ (0x0F37               ?M)             ; MARK NGAS BZUNG SGOR RTAGS
+ (0x0F39               ?M)             ; MARK TSA -PHRU
+ (0x0F40 0x0F6A                ?C)             ; LETTER KA .. LETTER FIXED-FORM RA
+ (0x0F62               ?R)             ; LETTER RA
+ (0x0F70               ?a)             ; VOWEL SIGN A
+ (0x0F71               ?A)             ; VOWEL SIGN AA
+ (0x0F72 0x0F7D                ?V)             ; VOWEL SIGN I .. VOWEL SIGN OO
+ (0x0F7E               ?M)             ; SIGN RJES SU NGA RO
+ (0x0F80               ?V)             ; VOWEL SIGN REVERSED I
+ (0x0F81               ?V)             ; VOWEL SIGN REVERSED II
+ (0x0F82               ?M)             ; SIGN NYI ZLA NAA DA
+ (0x0F83               ?M)             ; SIGN SNA LDAN
+ (0x0F84               ?V)             ; MARK HALANTA
+ ;; SIGN LCI RTAGS .. SIGN GRU MED RGYINGS
+ (0x0F86 0x0F8B                ?M)
+ ;; SUBJOINED LETTER KA .. SUBJOINED LETTER FIXED-FORM RA
+ (0x0F90 0x0FBC                ?s)
+ (0x0FAD               ?S)
+ (0x0FB1 0x0FB2                ?S)
+ (0x0FC6               ?M))
+
+(generator
+ (0
+  (cond
+   ("[CR][Ss]*[VaA]*M*"
+    <
+    (cond
+     ("R[^SA].*"                       ; ར[^ྭྱྲཱ]
+      ((0x0F62) 0xE083)                        ; convert ར to upper form
+      subjoined *
+      dependent-vowel-modifier *)
+     (".A.*"                           ; Cཱ (don't make C shorter)
+      =
+      dependent-vowel-modifier *)
+     (".[Ss].*"
+      |
+      short-consonant
+      subjoined *
+      dependent-vowel-modifier *
+      |)
+     (".*"
+      =
+      dependent-vowel-modifier * )
+     )
+    >)
+   ("[VaAM]"
+    < 0xE07A dependent-vowel-modifier >)
+   ("[Ss]"
+    < 0xE07A subjoined >)
+   ("."
+    =))
+  *)
+
+ (short-consonant
+  (cond
+   ((0x0F5D)                   0x0FBA)
+   ((0x0F61)                   0x0FBB)
+   ((0x0F62)                   0x0FBC)
+   ((0x0F6A)                   0x0FBC)
+   ((range 0x0F40 0x0F69)      0x0F90)))
+
+ (subjoined
+  ((range 0x0F90 0x0FB9) bc.tc =))
+
+ (dependent-vowel-modifier
+  (cond
+   ((0x0F18)   bl.tc =)
+   ((0x0F19)   bc.tc =)
+   ((0x0F35)   bc.tc =)
+   ((0x0F37)   bc.tc =)
+   ((0x0F39)   tc.bc =)
+   ((0x0F70)   )                       ; invisible
+   ((0x0F71)   bc.tc =)
+   ((0x0F72)   tc.bc =)
+   ((0x0F73)   bc.tc 0x0F71 tc.bc 0x0F72)
+   ((0x0F74)   bc.tc =)
+   ((0x0F75)   bc.tc =)
+   ((0x0F76)   bc.tc 0x0FB2 tc.bc 0x0F72)
+   ((0x0F77)   bc.tc 0x0FB2 bc.tc 0x0F71 tc.bc 0x0F80)
+   ((0x0F78)   bc.tc 0x0FB3 tc.bc 0x0F80)
+   ((0x0F79)   bc.tc 0x0FB3 bc.tc 0x0F71 tc.bc 0x0F80)
+   ((0x0F7A)   tc.bc =)
+   ((0x0F7B)   tc.bc =)
+   ((0x0F7C)   tc.bc =)
+   ((0x0F7D)   tc.bc =)
+   ((0x0F7E)   tc.bc =)
+   ((0x0F80)   tc.bc =)
+   ((0x0F81)   bc.tc 0x0F71 tc.bc =)
+   ((0x0F82)   tc.bc =)
+   ((0x0F83)   tc.bc =)
+   ((0x0F84)   bc.tc =)
+   ((0x0F86)   tc.bc =)
+   ((0x0F87)   tc.bc =)
+   ((0x0F88)   tc.bc =)
+   ((0x0F89)   tc.bc =)
+   ((0x0F8A)   tc.bc =)
+   ((0x0F8B)   tc.bc =)
+   ((0x0FC6)   bc.tc =))))
+
+(category
+ (0x000 0xFFFF ?G))
+
+(generator
+ (0
+  (cond
+   (" (G*) "
+    (1 precomposed = *))
+   ("[^ ]*"
+    = *))
+  *)
+
+ (precomposed
+  (cond
+   ((0x0F90 0x0FAD)            0xE000)
+   ((0x0F90 0x0FB1)            0xE010)
+   ((0x0F90 0x0FB2)            0xE018)
+   ((0x0F90 0x0FB3)            0xE026)
+   ((0x0F91 0x0FAD)            0xE001)
+   ((0x0F91 0x0FB1)            0xE011)
+   ((0x0F91 0x0FB2)            0xE019)
+   ((0x0F92 0x0FAD)            0xE002)
+   ((0x0F92 0x0FB1)            0xE012)
+   ((0x0F92 0x0FB2 0x0FAD)     0xE025)
+   ((0x0F92 0x0FB2)            0xE01A)
+   ((0x0F92 0x0FB3)            0xE027)
+   ((0x0F95 0x0FAD)            0xE003)
+   ((0x0F97 0x0FB2)            0xE060)
+   ((0x0F99 0x0FAD)            0xE004)
+   ((0x0F9F 0x0FAD)            0xE005)
+   ((0x0F9F 0x0FB2)            0xE01B)
+   ((0x0FA0 0x0FB2)            0xE01C)
+   ((0x0FA1 0x0FAD)            0xE006)
+   ((0x0FA1 0x0FB2)            0xE01D)
+   ((0x0FA4 0x0FB1)            0xE013)
+   ((0x0FA4 0x0FB2)            0xE01E)
+   ((0x0FA5 0x0FB1 0x0FAD)     0xE017)
+   ((0x0FA5 0x0FB1)            0xE014)
+   ((0x0FA5 0x0FB2)            0xE01F)
+   ((0x0FA6 0x0FB1)            0xE015)
+   ((0x0FA6 0x0FB2)            0xE020)
+   ((0x0FA6 0x0FB3)            0xE028)
+   ((0x0FA8 0x0FB1)            0xE016)
+   ((0x0FA8 0x0FB2)            0xE021)
+   ((0x0FA9 0x0FAD)            0xE007)
+   ((0x0FAA 0x0FAD)            0xE008)
+   ((0x0FAB 0x0FB2)            0xE061)
+   ((0x0FAE 0x0FAD)            0xE009)
+   ((0x0FAF 0x0FAD)            0xE00A)
+   ((0x0FAF 0x0FB3)            0xE029)
+   ((0x0FB2 0x0F90 0x0FB1)     0xE03A)
+   ((0x0FB2 0x0F90)            0xE02C)
+   ((0x0FB2 0x0F92 0x0FAD)     0xE038)
+   ((0x0FB2 0x0F92 0x0FB1)     0xE03B)
+   ((0x0FB2 0x0F92)            0xE02D)
+   ((0x0FB2 0x0F94)            0xE02E)
+   ((0x0FB2 0x0F97)            0xE02F)
+   ((0x0FB2 0x0F99)            0xE030)
+   ((0x0FB2 0x0F9F)            0xE031)
+   ((0x0FB2 0x0FA1)            0xE032)
+   ((0x0FB2 0x0FA3)            0xE033)
+   ((0x0FB2 0x0FA6)            0xE034)
+   ((0x0FB2 0x0FA8 0x0FB1)     0xE03C)
+   ((0x0FB2 0x0FA8)            0xE035)
+   ((0x0FB2 0x0FA9 0x0FAD)     0xE039)
+   ((0x0FB2 0x0FA9)            0xE036)
+   ((0x0FB2 0x0FAB)            0xE037)
+   ((0x0FB2 0x0FAD)            0xE00B)
+   ((0x0FB2 0x0FB3)            0xE02A)
+   ((0x0FB3 0x0F90)            0xE03D)
+   ((0x0FB3 0x0F92)            0xE03E)
+   ((0x0FB3 0x0F94)            0xE03F)
+   ((0x0FB3 0x0F95)            0xE040)
+   ((0x0FB3 0x0F97)            0xE041)
+   ((0x0FB3 0x0F9F)            0xE042)
+   ((0x0FB3 0x0FA1)            0xE043)
+   ((0x0FB3 0x0FA4)            0xE044)
+   ((0x0FB3 0x0FA6)            0xE045)
+   ((0x0FB3 0x0FAD)            0xE00C)
+   ((0x0FB3 0x0FB7)            0xE046)
+   ((0x0FB4 0x0FAD)            0xE00D)
+   ((0x0FB4 0x0FB2)            0xE022)
+   ((0x0FB6 0x0F90 0x0FB1)     0xE052)
+   ((0x0FB6 0x0F90 0x0FB2)     0xE057)
+   ((0x0FB6 0x0F90)            0xE047)
+   ((0x0FB6 0x0F92 0x0FB1)     0xE053)
+   ((0x0FB6 0x0F92 0x0FB2)     0xE058)
+   ((0x0FB6 0x0F92)            0xE048)
+   ((0x0FB6 0x0F94)            0xE049)
+   ((0x0FB6 0x0F99)            0xE04A)
+   ((0x0FB6 0x0F9F)            0xE04B)
+   ((0x0FB6 0x0FA1)            0xE04C)
+   ((0x0FB6 0x0FA3 0x0FB2)     0xE059)
+   ((0x0FB6 0x0FA3)            0xE04D)
+   ((0x0FB6 0x0FA4 0x0FB1)     0xE054)
+   ((0x0FB6 0x0FA4 0x0FB2)     0xE05A)
+   ((0x0FB6 0x0FA4)            0xE04E)
+   ((0x0FB6 0x0FA6 0x0FB1)     0xE055)
+   ((0x0FB6 0x0FA6 0x0FB2)     0xE05B)
+   ((0x0FB6 0x0FA6)            0xE04F)
+   ((0x0FB6 0x0FA8 0x0FB1)     0xE055)
+   ((0x0FB6 0x0FA8 0x0FB2)     0xE05C)
+   ((0x0FB6 0x0FA8)            0xE050)
+   ((0x0FB6 0x0FA9)            0xE051)
+   ((0x0FB6 0x0FAD)            0xE00E)
+   ((0x0FB6 0x0FB2)            0xE023)
+   ((0x0FB6 0x0FB3)            0xE02B)
+   ((0x0FB7 0x0FAD)            0xE00F)
+   ((0x0FB7 0x0FB2)            0xE024))))
+
+;; Local Variables:
+;; mode: lisp
+;; coding: utf-8
+;; End:
diff --git a/TIBT-MULE.flt b/TIBT-MULE.flt
new file mode 100644 (file)
index 0000000..b08cee3
--- /dev/null
@@ -0,0 +1,260 @@
+;; TIB-MULE.flt -- Font Layout Table for Tibetan (muletibetan font)
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> TIB-MULE.flt
+;;;
+;;; For the muletibetan font developped by Dr. Tomabechi to draw Tibetan
+;;; script.  The font is available at:
+;;; <ul>
+;;; <li> infopage: http://www.gnu.org/directory/Localization/intlfonts.html
+;;; <li> download: ftp://ftp.gnu.org/pub/gnu/intlfonts/intlfonts-1.2.1.tar.gz
+;;; </ul>
+
+(category
+ ;; Tibetan character category for rendering
+ ;;   C: CONSONANTS (except R)
+ ;;   R: LETTER RA (RA-MGO)
+ ;;   S: SUBJOINED CONSONANTS (except s)
+ ;;   s: SUBJOINED CONSONANTS (don't modify RA-MGO)
+ ;;   V: VOWEL (except a and A)
+ ;;   a: VOWEL SIGN A (invisible when composed)
+ ;;   A: VOWEL SIGN AA (don't make preceding C shorter)
+ ;;   M: MODIFIER
+ ;;   E: ELSE
+ ;;
+ (0x0F00 0x0FCF                ?E)             ; default
+ (0x0F19               ?M)             ; ASTROLOGICAL SIGN SDONG TSHUGS
+ (0x0F35               ?M)             ; MARK NGAS BZUNG NYI ZLA
+ (0x0F37               ?M)             ; MARK NGAS BZUNG SGOR RTAGS
+ (0x0F39               ?M)             ; MARK TSA -PHRU
+ (0x0F40 0x0F6A                ?C)             ; LETTER KA .. LETTER FIXED-FORM RA
+ (0x0F62               ?R)             ; LETTER RA
+ (0x0F70               ?a)             ; VOWEL SIGN A
+ (0x0F71               ?A)             ; VOWEL SIGN AA
+ (0x0F72 0x0F7D                ?V)             ; VOWEL SIGN I .. VOWEL SIGN OO
+ (0x0F7E               ?M)             ; SIGN RJES SU NGA RO
+ (0x0F80               ?V)             ; VOWEL SIGN REVERSED I
+ (0x0F81               ?V)             ; VOWEL SIGN REVERSED II
+ (0x0F82               ?M)             ; SIGN NYI ZLA NAA DA
+ (0x0F83               ?M)             ; SIGN SNA LDAN
+ (0x0F84               ?V)             ; MARK HALANTA
+ ;; SIGN LCI RTAGS .. SIGN GRU MED RGYINGS
+ (0x0F86 0x0F8B                ?M)
+ ;; SUBJOINED LETTER KA .. SUBJOINED LETTER FIXED-FORM RA
+ (0x0F90 0x0FBC                ?s)
+ (0x0FAD               ?S)
+ (0x0FB1 0x0FB2                ?S))
+
+(generator
+ (0
+  (cond
+   ("[CR][Ss]*[VaA]*M*"
+    <
+    (cond
+     ("R[SA].*"                                ; ར[ྭྱྲཱ]
+      ((0x0F62) 0x2122)                        ; convert ར to upper form
+      subjoined *
+      dependent-vowel-modifier *)
+     (".A.*"                           ; Cཱ
+      consonant
+      dependent-vowel-modifier *)
+     (".[Ss].*"
+      |
+      short-consonant
+      subjoined *
+      dependent-vowel-modifier *
+      |)
+     (".*"
+      consonant
+      dependent-vowel-modifier * )
+     )
+    >)
+   ("."
+    independent
+    subjoined))
+  *)
+
+ (consonant
+  ((range 0x0F40 0x0F6A)       0x2221))
+
+ (short-consonant
+  (cond
+   ((range 0x0F40 0x0F69)      0x2321)
+   ((0x0F6A)                   0x234D)))
+
+ (subjoined
+  ((range 0x0F90 0x0FBC)       bc+tc 0x2321))
+
+ (dependent-vowel-modifier
+  (cond
+   ((0x0F19)   bc-tc 0x2149)
+   ((0x0F35)   bc-tc 0x2165)
+   ((0x0F37)   bc-tc 0x2167)
+   ((0x0F39)   tc-bc 0x2169)
+   ((0x0F70)   )                       ; invisible
+   ((0x0F71)   bc-tc 0x2252)
+   ((0x0F72)   tc-bc 0x2253)
+   ((0x0F73)   bc-tc 0x2252 tc-bc 0x2253)
+   ((0x0F74)   bc-tc 0x2255)
+   ((0x0F75)   bc-tc 0x2256)
+   ((0x0F76)   bc-tc 0x2343 tc-bc 0x2261)
+   ((0x0F77)   bc-tc 0x2343 bc-tc 0x2252 tc-bc 0x2261)
+   ((0x0F78)   bc-tc 0x2344 tc-bc 0x2261)
+   ((0x0F79)   bc-tc 0x2344 bc-tc 0x2262 tc-bc 0x2261)
+   ((0x0F7A)   tc-bc 0x225B)
+   ((0x0F7B)   tc-bc 0x225C)
+   ((0x0F7C)   tc-bc 0x225D)
+   ((0x0F7D)   tc-bc 0x225E)
+   ((0x0F7E)   tc-bc 0x225F)
+   ((0x0F80)   tc-bc 0x2261)
+   ((0x0F81)   bc-tc 0x2252 0x2261)
+   ((0x0F82)   tc-bc 0x2263)
+   ((0x0F83)   tc-bc 0x2264)
+   ((0x0F84)   bc-tc 0x2265)
+   ((0x0F86)   tc-bc 0x2267)
+   ((0x0F87)   tc-bc 0x2268)
+   ((0x0F88)   tc-bc 0x2269)
+   ((0x0F89)   tc-bc 0x226A)
+   ((0x0F8A)   tc-bc 0x226B)
+   ((0x0F8B)   tc-bc 0x226C)))
+
+ (independent
+  (cond
+   ((range 0x0F00 0x0F3F)      0x2130)
+   ((range 0x0F6B 0x0F8B)      0x224C)
+   ((range 0x0FBD 0x0FCF)      0x234E))))
+
+(category
+ (0x2121 0x24FF ?G))
+
+(generator
+ (0
+  (cond
+   (" (G*) "
+    (1 precomposed = * ))
+   ("[^ ]*"
+    = * ))
+  *)
+
+ (precomposed
+  (cond
+   ((0x2321 0x233E)            0x2421)
+   ((0x2321 0x2342)            0x2440)
+   ((0x2321 0x2343)            0x2450)
+   ((0x2321 0x2344)            0x2460)
+   ((0x2322 0x233E)            0x2422)
+   ((0x2322 0x2342)            0x2441)
+   ((0x2322 0x2343)            0x2451)
+   ((0x2323 0x233E)            0x2423)
+   ((0x2323 0x2342)            0x2442)
+   ((0x2323 0x2343 0x233E)     0x245F)
+   ((0x2323 0x2343)            0x2452)
+   ((0x2323 0x2344)            0x2461)
+   ((0x2326 0x233E)            0x2424)
+   ((0x2328 0x2343)            0x245D)
+   ((0x232A 0x233E)            0x2425)
+   ((0x2330 0x233E)            0x2426)
+   ((0x2330 0x2343)            0x2453)
+   ((0x2331 0x2343)            0x2454)
+   ((0x2332 0x233E)            0x2427)
+   ((0x2332 0x2343)            0x2455)
+   ((0x2335 0x2342)            0x2443)
+   ((0x2335 0x2343)            0x2456)
+   ((0x2336 0x2342 0x233E)     0x2447)
+   ((0x2336 0x2342)            0x2444)
+   ((0x2336 0x2343)            0x2457)
+   ((0x2337 0x2342)            0x2445)
+   ((0x2337 0x2343)            0x2458)
+   ((0x2337 0x2344)            0x2462)
+   ((0x2339 0x2342)            0x2446)
+   ((0x2339 0x2343)            0x2459)
+   ((0x233A 0x233E)            0x2428)
+   ((0x233B 0x233E)            0x2429)
+   ((0x233C 0x2343)            0x245E)
+   ((0x233F 0x233E)            0x242A)
+   ((0x2340 0x233E)            0x242B)
+   ((0x2340 0x2344)            0x2463)
+   ((0x2343 0x2321 0x2342)     0x2530)
+   ((0x2343 0x2321)            0x2521)
+   ((0x2343 0x2323 0x233E)     0x252D)
+   ((0x2343 0x2323 0x2342)     0x2531)
+   ((0x2343 0x2323)            0x2522)
+   ((0x2343 0x2325)            0x2523)
+   ((0x2343 0x2328)            0x2524)
+   ((0x2343 0x232A)            0x2525)
+   ((0x2343 0x2330)            0x2526)
+   ((0x2343 0x2332)            0x2527)
+   ((0x2343 0x2334)            0x2528)
+   ((0x2343 0x2337)            0x2529)
+   ((0x2343 0x2339 0x2342)     0x2532)
+   ((0x2343 0x2339)            0x252A)
+   ((0x2343 0x233A 0x233E)     0x252E)
+   ((0x2343 0x233A)            0x252B)
+   ((0x2343 0x233C)            0x252C)
+   ((0x2343 0x233E)            0x242C)
+   ((0x2343 0x2344)            0x2464)
+   ((0x2344 0x2321)            0x2540)
+   ((0x2344 0x2323)            0x2541)
+   ((0x2344 0x2325)            0x2542)
+   ((0x2344 0x2326)            0x2543)
+   ((0x2344 0x2328)            0x2544)
+   ((0x2344 0x2330)            0x2545)
+   ((0x2344 0x2332)            0x2546)
+   ((0x2344 0x2334)            0x2121)
+   ((0x2344 0x2335)            0x2547)
+   ((0x2344 0x2337)            0x2548)
+   ((0x2344 0x233E)            0x242D)
+   ((0x2344 0x2348)            0x2549)
+   ((0x2345 0x233E)            0x242E)
+   ((0x2345 0x2343)            0x245A)
+   ((0x2347 0x2321 0x2342)     0x2560)
+   ((0x2347 0x2321 0x2343)     0x2570)
+   ((0x2347 0x2321)            0x2550)
+   ((0x2347 0x2323 0x2342)     0x2561)
+   ((0x2347 0x2323 0x2343)     0x2571)
+   ((0x2347 0x2323)            0x2551)
+   ((0x2347 0x2325)            0x2552)
+   ((0x2347 0x232A)            0x2553)
+   ((0x2347 0x2330)            0x2554)
+   ((0x2347 0x2332)            0x2555)
+   ((0x2347 0x2334 0x2343)     0x2572)
+   ((0x2347 0x2334)            0x2556)
+   ((0x2347 0x2335 0x2342)     0x2562)
+   ((0x2347 0x2335 0x2343)     0x2573)
+   ((0x2347 0x2335)            0x2557)
+   ((0x2347 0x2337 0x2342)     0x2563)
+   ((0x2347 0x2337 0x2343)     0x2574)
+   ((0x2347 0x2337)            0x2558)
+   ((0x2347 0x2339 0x2342)     0x2564)
+   ((0x2347 0x2339 0x2343)     0x2575)
+   ((0x2347 0x2339)            0x2559)
+   ((0x2347 0x233A)            0x255A)
+   ((0x2347 0x233E)            0x242F)
+   ((0x2347 0x2343)            0x245B)
+   ((0x2347 0x2344)            0x2465)
+   ((0x2348 0x233E)            0x2430)
+   ((0x2348 0x2343)            0x245C))))
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/TML-CDAC.flt b/TML-CDAC.flt
deleted file mode 100644 (file)
index df9e896..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-;; TML-CDAC.flt -- Font Layout Table for Tamil (C-DAC font)
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> TML-CDAC.flt
-;;;
-;;; For the font TMVL0ntt.ttf (developped by C-DAC, encoding is ISFOC)
-;;; to draw Tamil script.  The font is available at:
-;;; <ul>
-;;; <li>       infopage: http://www.iiit.net/ltrc/iscii/FAQ.htm#SEC2.1
-;;; <li> download: http://www.iiit.net/ltrc/iscii/iscii_plugin_linux.tar.gz
-;;; </ul>
-
-(category
- ;; C: CONSONANT
- ;; I: INDEPENDENT VOWEL
- ;; R: DEPENDENT VOWEL RIGHT
- ;; L: DEPENDENT VOWEL LEFT
- ;; B: DEPENDENT VOWEL LEFT AND RIGHT TYPE 1
- ;; b: DEPENDENT VOWEL LEFT AND RIGHT TYPE 2
- ;; V: VIRAMA
- ;; E: ELSE
- ;;
- (0x0B83       ?E)
- (0x0B85 0x0B8A        ?I)
- (0x0B8E 0x0B90        ?I)
- (0x0B92 0x0B94        ?I)
- (0x0B95       ?C)
- (0x0B99 0x0B9A        ?C)
- (0x0B9C       ?C)
- (0x0B9E 0x0B9F        ?C)
- (0x0BA3 0x0BA4        ?C)
- (0x0BA8 0x0BAA        ?C)
- (0x0BAE 0x0BB5        ?C)
- (0x0BB7 0x0BB9        ?C)
- (0x0BBE 0x0BC2        ?R)
- (0x0BC6 0x0BC8        ?L)
- (0x0BCA       ?B)
- (0x0BCB       ?b)
- (0x0BCC       ?B)
- (0x0BCD       ?V)
- (0x0BD7       ?E))
-
-;; CHAR->GLYPH STAGE
-(generator
- (0
-  (cond
-   ("((CV)*)(C)(R)"
-    (1 consonant-virama *)
-    (3 consonant)
-    (4 dependent-vowel))
-   ("((CV)*)(C)(L)"
-    < |
-    (4 dependent-vowel)
-    (1 consonant-virama *)
-    (3 consonant)
-    | >)
-   ("((CV)*)(C)(B)"
-    < |
-    0xAA
-    (1 consonant-virama *)
-    (3 consonant)
-    (4 dependent-vowel)
-    | >)
-   ("((CV)*)(C)(b)"
-    < |
-    0xAB
-    (1 consonant-virama *)
-    (3 consonant)
-    (4 dependent-vowel)
-    | >)
-   ("CV"
-    < consonant-virama >)
-   ("[RLBb]"
-    isolated-dependent-vowel)
-   ("." independent consonant))
-  *)
-
- (consonant-virama
-  (cond
-   ((0x0B95 0x0BCD)    0xE8 0xA2)      ; k
-   ((0x0B99 0x0BCD)    0xE9 0xA2)      ; n^
-   ((0x0B9A 0x0BCD)    0xEA 0xA2)      ; c
-   ((0x0B9E 0x0BCD)    0xEB 0xA2)      ; n~
-   ((0x0B9F 0x0BCD)    0xEC 0xA2)      ; t.
-   ((0x0BA3 0x0BCD)    0xED 0xA2)      ; n.
-   ((0x0BA4 0x0BCD)    0xEE 0xA2)      ; t
-   ((0x0BA8 0x0BCD)    0xEF 0xA2)      ; n
-   ((0x0BAA 0x0BCD)    0xF0 0xA2)      ; p
-   ((0x0BAE 0x0BCD)    0xF1 0xA2)      ; m
-   ((0x0BAF 0x0BCD)    0xF2 0xA2)      ; y
-   ((0x0BB0 0x0BCD)    0xF3 0xA2)      ; r
-   ((0x0BB2 0x0BCD)    0xF4 0xA2)      ; l
-   ((0x0BB5 0x0BCD)    0xF5 0xA2)      ; v
-   ((0x0BB4 0x0BCD)    0xF6 0xA2)      ; l_
-   ((0x0BB3 0x0BCD)    0xF7 0xA2)      ; l.
-   ((0x0BB1 0x0BCD)    0xF8 0xA2)      ; r_
-   ((0x0BA9 0x0BCD)    0xA1)           ; n_
-   ((0x0BB8 0x0BCD)    0x76)           ; s
-   ((0x0BB7 0x0BCD)    0x77)           ; s'
-   ((0x0B9C 0x0BCD)    0x78)           ; j
-   ((0x0BB9 0x0BCD)    0x79)           ; h
-   ))
-
- (consonant
-  (cond
-   ((0x0B95)   0xE8)                   ; k
-   ((0x0B99)   0xE9)                   ; n^
-   ((0x0B9A)   0xEA)                   ; c
-   ((0x0B9E)   0xEB)                   ; n~
-   ((0x0B9F)   0xEC)                   ; t.
-   ((0x0BA3)   0xED)                   ; n.
-   ((0x0BA4)   0xEE)                   ; t
-   ((0x0BA8)   0xEF)                   ; n
-   ((0x0BAA)   0xF0)                   ; p
-   ((0x0BAE)   0xF1)                   ; m
-   ((0x0BAF)   0xF2)                   ; y
-   ((0x0BB0)   0xF3)                   ; r
-   ((0x0BB2)   0xF4)                   ; l
-   ((0x0BB5)   0xF5)                   ; v
-   ((0x0BB4)   0xF6)                   ; l_
-   ((0x0BB3)   0xF7)                   ; l.
-   ((0x0BB1)   0xF8)                   ; r_
-   ((0x0BA9)   0xF9)                   ; n_
-   ((0x0BB8)   0xFA)                   ; s
-   ((0x0BB7)   0xFB)                   ; s'
-   ((0x0B9C)   0xFC)                   ; j
-   ((0x0BB9)   0xFD)                   ; h
-   ))
-   
- (dependent-vowel
-  (cond
-   ((0x0BBE)   0xA3)                   ; a~
-   ((0x0BBF)   0xA4)                   ; i
-   ((0x0BC0)   0xA6)                   ; i~
-   ((0x0BC1)   0xA7)                   ; u
-   ((0x0BC2)   0xA8)                   ; u~
-   ((0x0BC6)   0xAA)                   ; e
-   ((0x0BC7)   0xAB)                   ; e~
-   ((0x0BC8)   0xAC)                   ; ai
-   ((0x0BCA)   0xA3)                   ; o (right part)
-   ((0x0BCB)   0xA3)                   ; o~ (right part)
-   ((0x0BCC)   0xF7)                   ; au (right part)
-   ))
-
- (independent
-  (cond
-   ;; VOWELS
-   ((0x0B85)   0xDC)                   ; a
-   ((0x0B86)   0xDD)                   ; a~
-   ((0x0B87)   0xDE)                   ; i
-   ((0x0B88)   0xDF)                   ; i~
-   ((0x0B89)   0xE0)                   ; u
-   ((0x0B8A)   0xE1)                   ; u~
-   ((0x0B8E)   0xE2)                   ; e
-   ((0x0B8F)   0xE3)                   ; e~
-   ((0x0B90)   0xE4)                   ; ai
-   ((0x0B92)   0xE5)                   ; o
-   ((0x0B93)   0xE6)                   ; o~
-   ((0x0B94)   0xE5 0xF7)              ; au
-   ;; VISARGA
-   ((0x0B83)   0xE7)
-   ))
-
- (isolated-dependent-vowel
-  (cond
-   ((0x0BBE)   0x81 0xA3)              ; a~
-   ((0x0BBF)   0x81 0xA4)              ; i
-   ((0x0BC0)   0x81 0xA6)              ; i~
-   ((0x0BC1)   0x81 0xA7)              ; u
-   ((0x0BC2)   0x81 0xA8)              ; u~
-   ((0x0BC6)   0xAA 0x81)              ; e
-   ((0x0BC7)   0xAB 0x81)              ; e~
-   ((0x0BC8)   0xAC 0x81)              ; ai
-   ((0x0BCA)   0xAA 0x81 0xA3)         ; o
-   ((0x0BCB)   0xAB 0x81 0xA3)         ; o~
-   ((0x0BCC)   0xAA 0x81 0xF7)         ; au
-   )))
-
-;; LIGATURE STAGE
-(category
- ;; C: CONSONANT (except for K, R, S)
- ;; K: CONSONANT K
- ;; R: CONSONANT R
- ;; S: CONSONANT S'
- ;; V: LIGATURE VOWEL (except for I,i)
- ;; I: DEPENDENT VOWEL I
- ;; i: DEPENDENT VOWEL I~
- ;; L: LEFT PART OF VOWEL 
- ;; v: VIRAMA
- ;; E: ELSE
- ;;
- (0x00 0xFF    ?E)
- (0xA2         ?v)
- (0xE9 0xFD    ?C)
- (0xE8         ?K)
- (0xF3         ?R)
- (0xFB         ?S)
- (0xA4         ?I)                     ; i
- (0xA6         ?i)                     ; i~
- (0xA7 0xA8    ?V)                     ; u, u~
- (0xAA 0xAC    ?L)
- )
-
-(generator
- (0
-  (cond
-   ;; 1  23      4      5    6
-   (" (L)(([CKRS](v)?)*)(KvS)(.)? "
-    (2 = *) (1 =) (5 0xFE) (6 =))
-   ;; 1  23      4      5
-   (" (L)(([CKRS](v)?)*)([CKRS].?) "
-    (2 = *) (1 =) (5 = =))
-   ("KvS[Iiv]?"
-    ligature-ks)
-   ("[CKRS][IiV]"
-    ligature = =)
-   ("SvRi"     0xFF)
-   ("."
-    =))
-  *)
-     
- (ligature-ks
-  (cond
-   ((0xE8 0xA2 0xFB 0xA4)      0x56)   ; ksi
-   ((0xE8 0xA2 0xFB 0xA6)      0x72)   ; ksi~
-   ((0xE8 0xA2 0xFB 0xA2)      0x7A)   ; ks
-   ((0xE8 0xA2 0xFB)           0xFE)   ; ks
-   ))
-
- (ligature
-  (cond
-   ((0xE8 0xA2 0x76 0xA2)      0x7A)   ; ks.
-
-   ((0xE8 0xA4)                0x41)           ; ki
-   ((0xE9 0xA4)                0x42)           ; n^i
-   ((0xEA 0xA4)                0x43)           ; ci
-   ((0xEB 0xA4)                0x44)           ; n~i
-   ((0xEC 0xA4)                0xAE)           ; t.i
-   ((0xED 0xA4)                0x45)           ; n.i
-   ((0xEE 0xA4)                0x46)           ; ti
-   ((0xEF 0xA4)                0x47)           ; ni
-   ((0xF0 0xA4)                0x48)           ; pi
-   ((0xF1 0xA4)                0x49)           ; mi
-   ((0xF2 0xA4)                0x4A)           ; yi
-   ((0xF3 0xA4)                0x4B)           ; ri
-   ((0xF4 0xA4)                0x4C)           ; li
-   ((0xF5 0xA4)                0x4D)           ; vi
-   ((0xF6 0xA4)                0x4E)           ; l_i
-   ((0xF7 0xA4)                0x4F)           ; l.i
-   ((0xF8 0xA4)                0x50)           ; r_i
-   ((0xF9 0xA4)                0x51)           ; n_i
-   ((0xFA 0xA4)                0x52)           ; si
-   ((0xFB 0xA4)                0x53)           ; s'i
-   ((0xFC 0xA4)                0x54)           ; ji
-   ((0xFD 0xA4)                0x55)           ; hi
-
-   ((0xE8 0xA6)                0x57)           ; ki~
-   ((0xE9 0xA6)                0x58)           ; n^i~
-   ((0xEA 0xA6)                0x59)           ; ci~
-   ((0xEB 0xA6)                0x5A)           ; n~i~
-   ((0xEC 0xA6)                0xAF)           ; t.i~
-   ((0xED 0xA6)                0x61)           ; n.i~
-   ((0xEE 0xA6)                0x62)           ; ti~
-   ((0xEF 0xA6)                0x63)           ; ni~
-   ((0xF0 0xA6)                0x64)           ; pi~
-   ((0xF1 0xA6)                0x65)           ; mi~
-   ((0xF2 0xA6)                0x66)           ; yi~
-   ((0xF3 0xA6)                0x67)           ; ri~
-   ((0xF4 0xA6)                0x68)           ; li~
-   ((0xF5 0xA6)                0x69)           ; vi~
-   ((0xF6 0xA6)                0x6A)           ; l_i~
-   ((0xF7 0xA6)                0x6B)           ; l.i~
-   ((0xF8 0xA6)                0x6C)           ; r_i~
-   ((0xF9 0xA6)                0x6D)           ; n_i~
-   ((0xFA 0xA6)                0x6E)           ; si~
-   ((0xFB 0xA6)                0x6F)           ; s'i~
-   ((0xFC 0xA6)                0x70)           ; ji~
-   ((0xFD 0xA6)                0x71)           ; hi~
-
-   ((0xE8 0xA7)                0xB0)           ; ku
-   ((0xE9 0xA7)                0xB1)           ; n^u
-   ((0xEA 0xA7)                0xB2)           ; cu
-   ((0xEB 0xA7)                0xB3)           ; n~u
-   ((0xEC 0xA7)                0xB4)           ; t.u
-   ((0xED 0xA7)                0xB5)           ; n.u
-   ((0xEE 0xA7)                0xB6)           ; tu
-   ((0xEF 0xA7)                0xB8)           ; nu
-   ((0xF0 0xA7)                0xB9)           ; pu
-   ((0xF1 0xA7)                0xBA)           ; mu
-   ((0xF2 0xA7)                0xBB)           ; yu
-   ((0xF3 0xA7)                0xBC)           ; ru
-   ((0xF4 0xA7)                0xBD)           ; lu
-   ((0xF5 0xA7)                0xBE)           ; vu
-   ((0xF6 0xA7)                0xBF)           ; l_u
-   ((0xF7 0xA7)                0xC0)           ; l.u
-   ((0xF8 0xA7)                0xC1)           ; r_u
-   ((0xF9 0xA7)                0xC2)           ; n_u
-
-   ((0xE8 0xA8)                0xC3)           ; ku~
-   ((0xE9 0xA8)                0xC4)           ; n^u~
-   ((0xEA 0xA8)                0xC5)           ; cu~
-   ((0xEB 0xA8)                0xC6)           ; n~u~
-   ((0xEC 0xA8)                0xC7)           ; t.u~
-   ((0xED 0xA8)                0xC8)           ; n.u~
-   ((0xEE 0xA8)                0xC9)           ; tu~
-   ((0xEF 0xA8)                0xCB)           ; nu~
-   ((0xF0 0xA8)                0xCC)           ; pu~
-   ((0xF1 0xA8)                0xCD)           ; mu~
-   ((0xF2 0xA8)                0xCE)           ; yu~
-   ((0xF3 0xA8)                0xCF)           ; ru~
-   ((0xF4 0xA8)                0xD6)           ; lu~
-   ((0xF5 0xA8)                0xD7)           ; vu~
-   ((0xF6 0xA8)                0xD8)           ; l_u~
-   ((0xF7 0xA8)                0xD9)           ; l.u~
-   ((0xF8 0xA8)                0xDA)           ; r_u~
-   ((0xF9 0xA8)                0xDB)           ; n_u~
-   ))
- )
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/TML-OTF.flt b/TML-OTF.flt
deleted file mode 100644 (file)
index 913bf34..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-;; TML-OTF.flt -- Font Layout Table for Tamil OpenType fonts
-;; Copyright (C) 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> TML-OTF.flt
-;;;
-;;; For Tamil OpenType fonts to draw Tamil.
-;;; Fonts are available from <http://sourceforge.net/projects/tamillinux/>.
-
-(category
- ;; C: general consonant
- ;; V: independent vowel
- ;; H: HALANT
- ;; m: MATRA (pre)
- ;; u: MATRA (above)
- ;; b: MATRA (below)
- ;; p: MATRA (post)
- ;; A: vowel modifier (above)
- ;; a: vowel modifier (post)
- ;; N: ZWNJ (ZERO WIDTH NON-JOINER)
- ;; J: ZWJ (ZERO WIDTH JOINER)
- ;; E: ELSE
- ;;
- (0x200C       ?N)                     ; ZWNJ
- (0x200D       ?J)                     ; ZWJ
- (0x0964       ?E)                     ; DANDA
- (0x0965       ?E)                     ; DOUBLE DANDA
- (0x0B80 0x0BFF        ?E)                     ; ELSE
- (0x0B85 0x0B94        ?V)                     ; LETTER AA .. LETTER AU
- (0x0B95 0x0BB9 ?C)                    ; LETTER KA .. LETTER HA
- (0x0BBE       ?p)                     ; VOWEL SIGN AA (post)
- (0x0BBF       ?p)                     ; VOWEL SIGN I (post)
- (0x0BC0       ?u)                     ; VOWEL SIGN II (above)
- (0x0BC1       ?b)                     ; VOWEL SIGN U (below)
- (0x0BC2       ?b)                     ; VOWEL SIGN UU (below)
- (0x0BC6 0x0BC8        ?m)                     ; VOWEL SIGN E, EE, AI (pre)
- (0x0BCA 0x0BCC        ?t)                     ; VOWEL SIGN O, OO, AU (two-part)
- (0x0BCD       ?H)                     ; VIRAMA
- (0x0BD7       ?p)                     ; AU LENGTH MARK (post)
- )
-
-;; Step 1 : Syllable identification.
-(generator
- (0
-  (cond
-   ;; A syllable ending with a two-part vowel sign.
-   ("((CH)*C)(t)"
-    < | (1 otf:taml=akhn) (3 two-part) | >)
-
-   ;; A syllable ending with a vowel sign.
-   ("((CH)*C)([mubp])"
-    < | (1 otf:taml=akhn) (3 =) | >)
-
-   ;; No vowel sign.
-   ("(CH)*CH?"
-    < | otf:taml=akhn | >)
-
-   ;; A variation of AU.
-   ((0x0B92 0x0BD7)
-    0x0B94)
-
-   ("." =))
-  *)
-
- (two-part
-  (cond
-   ((0x0BCA)
-    0x0BC6 0x0BBE)
-   ((0x0BCB)
-    0x0BC7 0x0BBE)
-   ((0x0BCC)
-    0x0BC6 0x0BD7))))
-
-;; Step 2 : Matra movements.
-(generator
- (0
-  (cond
-   (" ([^ mubp]*)([^ mubp])(m)?([ubp])? "
-    | (1 = *) (3 =) (2 =) (4 =) |)
-   ("." =))
-  *))
-
-;; Step 3 : OTF substitutions and positionings.
-(generator
- (0
-  (cond
-   (" ([^ ]*) "
-    (1 otf:taml))
-   ("."
-    [ otf:taml=+ ]))
-  *))
-
-;; Local Variables:
-;; mode: emacs-lisp
-;; End:
diff --git a/as-itrans.mim b/as-itrans.mim
new file mode 100644 (file)
index 0000000..18c36db
--- /dev/null
@@ -0,0 +1,187 @@
+;; asm-itrans.mim -- Assamese input method with ITRANS method
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> asm-itrans.mim
+;;;
+;;; Input method for Bengali script (Assamese language) with ITRANS
+;;; method.  For the detail of ITRAN, see the page
+;;; http://www.aczone.com/itrans/.
+
+(title "ক")
+
+(map
+ (starter
+  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
+  ("0") ("1") ("2") ("3") ("4")
+  ("5") ("6") ("7") ("8") ("9")
+  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
+  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
+  ("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"))
+
+ (consonant
+  ("k" "ক্")
+  ("kh" "খ্")
+  ("g" "গ্")
+  ("gh" "ঘ্")
+  ("~N" "ঙ্")
+  ("N^" "ঙ্")
+  ("ch" "চ্")
+  ("Ch" "ছ্")
+  ("chh" "ছ্")
+  ("j" "জ্")
+  ("jh" "ঝ্")
+  ("~n" "ঞ্")
+  ("JN" "ঞ্")
+  ("T" "ট্")
+  ("Th" "ঠ্")
+  ("D" "ড্")
+  ("Dh" "ঢ্")
+  ("N" "ণ্")
+  ("t" "ত্")
+  ("th" "থ্")
+  ("d" "দ্")
+  ("dh" "ধ্")
+  ("n" "ন্")
+  ("p" "প্")
+  ("ph" "ফ্")
+  ("b" "ব্")
+  ("bh" "ভ্")
+  ("m" "ম্")
+  ("y" "য্")
+  ("r" "ৰ্")
+  ("l" "ল্")
+  ("v" "ৱ্")
+  ("w" "ৱ্")
+  ("sh" "শ্")
+  ("Sh" "ষ্")
+  ("shh" "ষ্")
+  ("s" "স্")
+  ("h" "হ্")
+  (".D" "ড়্")
+  (".Dh" "ঢ়্")
+  ("Y" "য়্")
+  ("yh" "য়্")
+  ("GY" "জ্ঞ্")
+  ("dny" "জ্ঞ্")
+  ("x" "ক্ষ্"))
+
+ (independent
+  ("a" "অ")
+  ("aa" "আ")
+  ("A" "আ")
+  ("i" "ই")
+  ("ii" "ঈ")
+  ("I" "ঈ")
+  ("u" "উ")
+  ("uu" "ঊ")
+  ("U" "ঊ")
+  ("RRi" "ঋ")
+  ("R^i" "ঋ")
+  ("LLi" "ঌ")
+  ("L^i" "ঌ")
+  ("e" "এ")
+  ("ai" "ঐ")
+  ("o" "ও")
+  ("au" "ঔ")
+  ("RRI" "ৠ")
+  ("R^I" "ৠ")
+  ("LLI" "ৡ")
+  ("L^I" "ৡ")
+  (".N" "ঁ")
+  (".n" "ং")
+  ("M" "ং")
+  ("H" "ঃ")
+  (".h" "্")
+  ("0" "০")
+  ("1" "১")
+  ("2" "২")
+  ("3" "৩")
+  ("4" "৪")
+  ("5" "৫")
+  ("6" "৬")
+  ("7" "৭")
+  ("8" "৮")
+  ("9" "৯")
+  ("#" "্ৰ")
+  ("$" "ৰ্")
+  ("^" "ত্ৰ")
+  ("*" "শ্ৰ")
+  ("]" "়")
+  ((S-\ ) "‌")
+  ((C-@) "‍"))
+
+ (dependent
+  ("a" (delete @-) "")
+  ("aa" (delete @-) "া")
+  ("A" (delete @-) "া")
+  ("i" (delete @-) "ি")
+  ("ii" (delete @-) "ী")
+  ("I" (delete @-) "ী")
+  ("u" (delete @-) "ু")
+  ("uu" (delete @-) "ূ")
+  ("U" (delete @-) "ূ")
+  ("RRi" (delete @-) "ৃ")
+  ("R^i" (delete @-) "ৃ")
+  ("LLi" (delete @-) "ৢ")
+  ("L^i" (delete @-) "ৢ")
+  ("e" (delete @-) "ে")
+  ("ai" (delete @-) "ৈ")
+  ("o" (delete @-) "ো")
+  ("au" (delete @-) "ৌ")
+  ("RRI" (delete @-) "ৄ")
+  ("R^I" (delete @-) "ৄ")
+  ("LLI" (delete @-) "ৣ")
+  ("L^I" (delete @-) "ৣ"))
+
+ (return
+  ((Return)))
+
+ (backspace
+  ((BackSpace) (undo))))
+
+(state
+ (init
+  (starter (pushback 1) (shift intermediate)))
+
+ (intermediate
+  (consonant (shift second))
+  (independent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (second
+  (consonant)
+  (dependent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (finish
+  (return)
+  (t (shift init))))
+
+;; Local Variables:
+;; coding: utf-8
+;; mode: lisp
+;; End:
diff --git a/asm-itrans.mim b/asm-itrans.mim
deleted file mode 100644 (file)
index 18c36db..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-;; asm-itrans.mim -- Assamese input method with ITRANS method
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> asm-itrans.mim
-;;;
-;;; Input method for Bengali script (Assamese language) with ITRANS
-;;; method.  For the detail of ITRAN, see the page
-;;; http://www.aczone.com/itrans/.
-
-(title "ক")
-
-(map
- (starter
-  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
-  ("0") ("1") ("2") ("3") ("4")
-  ("5") ("6") ("7") ("8") ("9")
-  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
-  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
-  ("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"))
-
- (consonant
-  ("k" "ক্")
-  ("kh" "খ্")
-  ("g" "গ্")
-  ("gh" "ঘ্")
-  ("~N" "ঙ্")
-  ("N^" "ঙ্")
-  ("ch" "চ্")
-  ("Ch" "ছ্")
-  ("chh" "ছ্")
-  ("j" "জ্")
-  ("jh" "ঝ্")
-  ("~n" "ঞ্")
-  ("JN" "ঞ্")
-  ("T" "ট্")
-  ("Th" "ঠ্")
-  ("D" "ড্")
-  ("Dh" "ঢ্")
-  ("N" "ণ্")
-  ("t" "ত্")
-  ("th" "থ্")
-  ("d" "দ্")
-  ("dh" "ধ্")
-  ("n" "ন্")
-  ("p" "প্")
-  ("ph" "ফ্")
-  ("b" "ব্")
-  ("bh" "ভ্")
-  ("m" "ম্")
-  ("y" "য্")
-  ("r" "ৰ্")
-  ("l" "ল্")
-  ("v" "ৱ্")
-  ("w" "ৱ্")
-  ("sh" "শ্")
-  ("Sh" "ষ্")
-  ("shh" "ষ্")
-  ("s" "স্")
-  ("h" "হ্")
-  (".D" "ড়্")
-  (".Dh" "ঢ়্")
-  ("Y" "য়্")
-  ("yh" "য়্")
-  ("GY" "জ্ঞ্")
-  ("dny" "জ্ঞ্")
-  ("x" "ক্ষ্"))
-
- (independent
-  ("a" "অ")
-  ("aa" "আ")
-  ("A" "আ")
-  ("i" "ই")
-  ("ii" "ঈ")
-  ("I" "ঈ")
-  ("u" "উ")
-  ("uu" "ঊ")
-  ("U" "ঊ")
-  ("RRi" "ঋ")
-  ("R^i" "ঋ")
-  ("LLi" "ঌ")
-  ("L^i" "ঌ")
-  ("e" "এ")
-  ("ai" "ঐ")
-  ("o" "ও")
-  ("au" "ঔ")
-  ("RRI" "ৠ")
-  ("R^I" "ৠ")
-  ("LLI" "ৡ")
-  ("L^I" "ৡ")
-  (".N" "ঁ")
-  (".n" "ং")
-  ("M" "ং")
-  ("H" "ঃ")
-  (".h" "্")
-  ("0" "০")
-  ("1" "১")
-  ("2" "২")
-  ("3" "৩")
-  ("4" "৪")
-  ("5" "৫")
-  ("6" "৬")
-  ("7" "৭")
-  ("8" "৮")
-  ("9" "৯")
-  ("#" "্ৰ")
-  ("$" "ৰ্")
-  ("^" "ত্ৰ")
-  ("*" "শ্ৰ")
-  ("]" "়")
-  ((S-\ ) "‌")
-  ((C-@) "‍"))
-
- (dependent
-  ("a" (delete @-) "")
-  ("aa" (delete @-) "া")
-  ("A" (delete @-) "া")
-  ("i" (delete @-) "ি")
-  ("ii" (delete @-) "ী")
-  ("I" (delete @-) "ী")
-  ("u" (delete @-) "ু")
-  ("uu" (delete @-) "ূ")
-  ("U" (delete @-) "ূ")
-  ("RRi" (delete @-) "ৃ")
-  ("R^i" (delete @-) "ৃ")
-  ("LLi" (delete @-) "ৢ")
-  ("L^i" (delete @-) "ৢ")
-  ("e" (delete @-) "ে")
-  ("ai" (delete @-) "ৈ")
-  ("o" (delete @-) "ো")
-  ("au" (delete @-) "ৌ")
-  ("RRI" (delete @-) "ৄ")
-  ("R^I" (delete @-) "ৄ")
-  ("LLI" (delete @-) "ৣ")
-  ("L^I" (delete @-) "ৣ"))
-
- (return
-  ((Return)))
-
- (backspace
-  ((BackSpace) (undo))))
-
-(state
- (init
-  (starter (pushback 1) (shift intermediate)))
-
- (intermediate
-  (consonant (shift second))
-  (independent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (second
-  (consonant)
-  (dependent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (finish
-  (return)
-  (t (shift init))))
-
-;; Local Variables:
-;; coding: utf-8
-;; mode: lisp
-;; End:
diff --git a/bn-itrans.mim b/bn-itrans.mim
new file mode 100644 (file)
index 0000000..d9a77d0
--- /dev/null
@@ -0,0 +1,185 @@
+;; bng-itrans.mim -- Bengali input method with ITRANS method
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> bng-itrans.mim
+;;;
+;;; Input method for Bengali script (Bengali language) with ITRANS
+;;; method.  For the detail of ITRAN, see the page
+;;; http://www.aczone.com/itrans/.
+
+(title "ক")
+
+(map
+ (starter
+  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
+  ("0") ("1") ("2") ("3") ("4")
+  ("5") ("6") ("7") ("8") ("9")
+  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
+  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
+  ("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"))
+
+ (consonant
+  ("k" "ক্")
+  ("kh" "খ্")
+  ("g" "গ্")
+  ("gh" "ঘ্")
+  ("~N" "ঙ্")
+  ("N^" "ঙ্")
+  ("ch" "চ্")
+  ("Ch" "ছ্")
+  ("chh" "ছ্")
+  ("j" "জ্")
+  ("jh" "ঝ্")
+  ("~n" "ঞ্")
+  ("JN" "ঞ্")
+  ("T" "ট্")
+  ("Th" "ঠ্")
+  ("D" "ড্")
+  ("Dh" "ঢ্")
+  ("N" "ণ্")
+  ("t" "ত্")
+  ("th" "থ্")
+  ("d" "দ্")
+  ("dh" "ধ্")
+  ("n" "ন্")
+  ("p" "প্")
+  ("ph" "ফ্")
+  ("b" "ব্")
+  ("bh" "ভ্")
+  ("m" "ম্")
+  ("y" "য্")
+  ("r" "র্")
+  ("l" "ল্")
+  ("sh" "শ্")
+  ("Sh" "ষ্")
+  ("shh" "ষ্")
+  ("s" "স্")
+  ("h" "হ্")
+  (".D" "ড়্")
+  (".Dh" "ঢ়্")
+  ("Y" "য়্")
+  ("yh" "য়্")
+  ("GY" "জ্ঞ্")
+  ("dny" "জ্ঞ্")
+  ("x" "ক্ষ্"))
+
+ (independent
+  ("a" "অ")
+  ("aa" "আ")
+  ("A" "আ")
+  ("i" "ই")
+  ("ii" "ঈ")
+  ("I" "ঈ")
+  ("u" "উ")
+  ("uu" "ঊ")
+  ("U" "ঊ")
+  ("RRi" "ঋ")
+  ("R^i" "ঋ")
+  ("LLi" "ঌ")
+  ("L^i" "ঌ")
+  ("e" "এ")
+  ("ai" "ঐ")
+  ("o" "ও")
+  ("au" "ঔ")
+  ("RRI" "ৠ")
+  ("R^I" "ৠ")
+  ("LLI" "ৡ")
+  ("L^I" "ৡ")
+  (".N" "ঁ")
+  (".n" "ং")
+  ("M" "ং")
+  ("H" "ঃ")
+  (".h" "্")
+  ("0" "০")
+  ("1" "১")
+  ("2" "২")
+  ("3" "৩")
+  ("4" "৪")
+  ("5" "৫")
+  ("6" "৬")
+  ("7" "৭")
+  ("8" "৮")
+  ("9" "৯")
+  ("#" "্র")
+  ("$" "র্")
+  ("^" "ত্র")
+  ("*" "শ্র")
+  ("]" "়")
+  ((S-\ ) "‌")
+  ((C-@) "‍"))
+
+ (dependent
+  ("a" (delete @-) "")
+  ("aa" (delete @-) "া")
+  ("A" (delete @-) "া")
+  ("i" (delete @-) "ি")
+  ("ii" (delete @-) "ী")
+  ("I" (delete @-) "ী")
+  ("u" (delete @-) "ু")
+  ("uu" (delete @-) "ূ")
+  ("U" (delete @-) "ূ")
+  ("RRi" (delete @-) "ৃ")
+  ("R^i" (delete @-) "ৃ")
+  ("LLi" (delete @-) "ৢ")
+  ("L^i" (delete @-) "ৢ")
+  ("e" (delete @-) "ে")
+  ("ai" (delete @-) "ৈ")
+  ("o" (delete @-) "ো")
+  ("au" (delete @-) "ৌ")
+  ("RRI" (delete @-) "ৄ")
+  ("R^I" (delete @-) "ৄ")
+  ("LLI" (delete @-) "ৣ")
+  ("L^I" (delete @-) "ৣ"))
+
+ (return
+  ((Return)))
+
+ (backspace
+  ((BackSpace) (undo))))
+
+(state
+ (init
+  (starter (pushback 1) (shift intermediate)))
+
+ (intermediate
+  (consonant (shift second))
+  (independent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (second
+  (consonant)
+  (dependent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (finish
+  (return)
+  (t (shift init))))
+
+;; Local Variables:
+;; coding: utf-8
+;; mode: lisp
+;; End:
diff --git a/bng-itrans.mim b/bng-itrans.mim
deleted file mode 100644 (file)
index d9a77d0..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-;; bng-itrans.mim -- Bengali input method with ITRANS method
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> bng-itrans.mim
-;;;
-;;; Input method for Bengali script (Bengali language) with ITRANS
-;;; method.  For the detail of ITRAN, see the page
-;;; http://www.aczone.com/itrans/.
-
-(title "ক")
-
-(map
- (starter
-  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
-  ("0") ("1") ("2") ("3") ("4")
-  ("5") ("6") ("7") ("8") ("9")
-  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
-  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
-  ("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"))
-
- (consonant
-  ("k" "ক্")
-  ("kh" "খ্")
-  ("g" "গ্")
-  ("gh" "ঘ্")
-  ("~N" "ঙ্")
-  ("N^" "ঙ্")
-  ("ch" "চ্")
-  ("Ch" "ছ্")
-  ("chh" "ছ্")
-  ("j" "জ্")
-  ("jh" "ঝ্")
-  ("~n" "ঞ্")
-  ("JN" "ঞ্")
-  ("T" "ট্")
-  ("Th" "ঠ্")
-  ("D" "ড্")
-  ("Dh" "ঢ্")
-  ("N" "ণ্")
-  ("t" "ত্")
-  ("th" "থ্")
-  ("d" "দ্")
-  ("dh" "ধ্")
-  ("n" "ন্")
-  ("p" "প্")
-  ("ph" "ফ্")
-  ("b" "ব্")
-  ("bh" "ভ্")
-  ("m" "ম্")
-  ("y" "য্")
-  ("r" "র্")
-  ("l" "ল্")
-  ("sh" "শ্")
-  ("Sh" "ষ্")
-  ("shh" "ষ্")
-  ("s" "স্")
-  ("h" "হ্")
-  (".D" "ড়্")
-  (".Dh" "ঢ়্")
-  ("Y" "য়্")
-  ("yh" "য়্")
-  ("GY" "জ্ঞ্")
-  ("dny" "জ্ঞ্")
-  ("x" "ক্ষ্"))
-
- (independent
-  ("a" "অ")
-  ("aa" "আ")
-  ("A" "আ")
-  ("i" "ই")
-  ("ii" "ঈ")
-  ("I" "ঈ")
-  ("u" "উ")
-  ("uu" "ঊ")
-  ("U" "ঊ")
-  ("RRi" "ঋ")
-  ("R^i" "ঋ")
-  ("LLi" "ঌ")
-  ("L^i" "ঌ")
-  ("e" "এ")
-  ("ai" "ঐ")
-  ("o" "ও")
-  ("au" "ঔ")
-  ("RRI" "ৠ")
-  ("R^I" "ৠ")
-  ("LLI" "ৡ")
-  ("L^I" "ৡ")
-  (".N" "ঁ")
-  (".n" "ং")
-  ("M" "ং")
-  ("H" "ঃ")
-  (".h" "্")
-  ("0" "০")
-  ("1" "১")
-  ("2" "২")
-  ("3" "৩")
-  ("4" "৪")
-  ("5" "৫")
-  ("6" "৬")
-  ("7" "৭")
-  ("8" "৮")
-  ("9" "৯")
-  ("#" "্র")
-  ("$" "র্")
-  ("^" "ত্র")
-  ("*" "শ্র")
-  ("]" "়")
-  ((S-\ ) "‌")
-  ((C-@) "‍"))
-
- (dependent
-  ("a" (delete @-) "")
-  ("aa" (delete @-) "া")
-  ("A" (delete @-) "া")
-  ("i" (delete @-) "ি")
-  ("ii" (delete @-) "ী")
-  ("I" (delete @-) "ী")
-  ("u" (delete @-) "ু")
-  ("uu" (delete @-) "ূ")
-  ("U" (delete @-) "ূ")
-  ("RRi" (delete @-) "ৃ")
-  ("R^i" (delete @-) "ৃ")
-  ("LLi" (delete @-) "ৢ")
-  ("L^i" (delete @-) "ৢ")
-  ("e" (delete @-) "ে")
-  ("ai" (delete @-) "ৈ")
-  ("o" (delete @-) "ো")
-  ("au" (delete @-) "ৌ")
-  ("RRI" (delete @-) "ৄ")
-  ("R^I" (delete @-) "ৄ")
-  ("LLI" (delete @-) "ৣ")
-  ("L^I" (delete @-) "ৣ"))
-
- (return
-  ((Return)))
-
- (backspace
-  ((BackSpace) (undo))))
-
-(state
- (init
-  (starter (pushback 1) (shift intermediate)))
-
- (intermediate
-  (consonant (shift second))
-  (independent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (second
-  (consonant)
-  (dependent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (finish
-  (return)
-  (t (shift init))))
-
-;; Local Variables:
-;; coding: utf-8
-;; mode: lisp
-;; End:
diff --git a/dev-itrans.mim b/dev-itrans.mim
deleted file mode 100644 (file)
index e608088..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-;; dev-itrans.mim -- Devanagari input method with ITRANS method
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> dev-itrans.mim
-;;;
-;;; Input method for Devanagari script with ITRANS method.  For the
-;;; detail of ITRAN, see the page http://www.aczone.com/itrans/.
-
-(title "क")
-
-(map
- (starter
-  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
-  ("0") ("1") ("2") ("3") ("4")
-  ("5") ("6") ("7") ("8") ("9")
-  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
-  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
-  ("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"))
-
- (consonant
-  ("k" "क्")
-  ("kh" "ख्")
-  ("g" "ग्")
-  ("gh" "घ्")
-  ("~N" "ङ्")
-  ("N^" "ङ्")
-  ("ch" "च्")
-  ("Ch" "छ्")
-  ("chh" "छ्")
-  ("j" "ज्")
-  ("jh" "झ्")
-  ("~n" "ञ्")
-  ("JN" "ञ्")
-  ("T" "ट्")
-  ("Th" "ठ्")
-  ("D" "ड्")
-  ("Dh" "ढ्")
-  ("N" "ण्")
-  ("t" "त्")
-  ("th" "थ्")
-  ("d" "द्")
-  ("dh" "ध्")
-  ("n" "न्")
-  ("nh" "ऩ्")
-  ("p" "प्")
-  ("ph" "फ्")
-  ("b" "ब्")
-  ("bh" "भ्")
-  ("m" "म्")
-  ("y" "य्")
-  ("r" "र्")
-  ("rh" "ऱ्")
-  ("l" "ल्")
-  ("L" "ळ्")
-  ("ld" "ळ्")
-  ("v" "व्")
-  ("w" "व्")
-  ("sh" "श्")
-  ("Sh" "ष्")
-  ("shh" "ष्")
-  ("s" "स्")
-  ("h" "ह्")
-  ("q" "क़्")
-  ("K" "ख़्")
-  ("G" "ग़्")
-  ("J" "ज़्")
-  ("z" "ज़्")
-  (".D" "ड़्")
-  (".Dh" "ढ़्")
-  ("f" "फ़्")
-  ("Y" "य़्")
-  ("yh" "य़्")
-  ("GY" "ज्ञ्")
-  ("dny" "ज्ञ्")
-  ("x" "क्ष्"))
-
- (independent
-  ("a" "अ")
-  ("aa" "आ")
-  ("A" "आ")
-  ("i" "इ")
-  ("ii" "ई")
-  ("I" "ई")
-  ("u" "उ")
-  ("uu" "ऊ")
-  ("U" "ऊ")
-  ("RRi" "ऋ")
-  ("R^i" "ऋ")
-  ("LLi" "ऌ")
-  ("L^i" "ऌ")
-  (".c" "ऍ")
-  ("e.c" "ऍ")
-  ("E" "ऎ")
-  ("e" "ए")
-  ("ai" "ऐ")
-  ("o.c" "ऑ")
-  ("O" "ऒ")
-  ("o" "ओ")
-  ("au" "औ")
-  ("RRI" "ॠ")
-  ("R^I" "ॠ")
-  ("LLI" "ॡ")
-  ("L^I" "ॡ")
-  (".N" "ँ")
-  (".n" "ं")
-  ("M" "ं")
-  ("H" "ः")
-  (".a" "ऽ")
-  (".h" "्")
-  ("AUM" "ॐ")
-  ("OM" "ॐ")
-  (".." "।")
-  ("0" "०")
-  ("1" "१")
-  ("2" "२")
-  ("3" "३")
-  ("4" "४")
-  ("5" "५")
-  ("6" "६")
-  ("7" "७")
-  ("8" "८")
-  ("9" "९")
-  ("#" "्र")
-  ("$" "र्")
-  ("^" "त्र")
-  ("*" "श्र")
-  ("]" "़")
-  ((S-\ ) "‌")
-  ((C-@) "‍"))
-
- (dependent
-  ("a" (delete @-) "")
-  ("aa" (delete @-) "ा")
-  ("A" (delete @-) "ा")
-  ("i" (delete @-) "ि")
-  ("ii" (delete @-) "ी")
-  ("I" (delete @-) "ी")
-  ("u" (delete @-) "ु")
-  ("uu" (delete @-) "ू")
-  ("U" (delete @-) "ू")
-  ("RRi" (delete @-) "ृ")
-  ("R^i" (delete @-) "ृ")
-  ("LLi" (delete @-) "ॢ")
-  ("L^i" (delete @-) "ॢ")
-  (".c" (delete @-) "ॅ")
-  ("e.c" (delete @-) "ॅ")
-  ("E" (delete @-) "ॆ")
-  ("e" (delete @-) "े")
-  ("ai" (delete @-) "ै")
-  ("o.c" (delete @-) "ॉ")
-  ("O" (delete @-) "ॊ")
-  ("o" (delete @-) "ो")
-  ("au" (delete @-) "ौ")
-  ("RRI" (delete @-) "ॄ")
-  ("R^I" (delete @-) "ॄ")
-  ("LLI" (delete @-) "ॣ")
-  ("L^I" (delete @-) "ॣ"))
-
- (return
-  ((Return)))
-
- (backspace
-  ((BackSpace) (undo))))
-
-(state
- (init
-  (starter (pushback 1) (shift intermediate)))
-
- (intermediate
-  (consonant (shift second))
-  (independent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (second
-  (consonant)
-  (dependent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (finish
-  (return)
-  (t (shift init))))
-
-;; Local Variables:
-;; coding: utf-8
-;; mode: lisp
-;; End:
diff --git a/gjr-itrans.mim b/gjr-itrans.mim
deleted file mode 100644 (file)
index 6706b7b..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-;; gjr-itrans.mim -- Gujarati input method with ITRANS method
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> gjr-itrans.mim
-;;;
-;;; Input method for Gujarati script with ITRANS method.  For the
-;;; detail of ITRAN, see the page http://www.aczone.com/itrans/.
-
-(title "ક")
-
-(map
- (starter
-  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
-  ("0") ("1") ("2") ("3") ("4")
-  ("5") ("6") ("7") ("8") ("9")
-  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
-  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
-  ("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"))
-
- (consonant
-  ("k" "ક્")
-  ("kh" "ખ્")
-  ("g" "ગ્")
-  ("gh" "ઘ્")
-  ("~N" "ઙ્")
-  ("N^" "ઙ્")
-  ("ch" "ચ્")
-  ("Ch" "છ્")
-  ("chh" "છ્")
-  ("j" "જ્")
-  ("jh" "ઝ્")
-  ("~n" "ઞ્")
-  ("JN" "ઞ્")
-  ("T" "ટ્")
-  ("Th" "ઠ્")
-  ("D" "ડ્")
-  ("Dh" "ઢ્")
-  ("N" "ણ્")
-  ("t" "ત્")
-  ("th" "થ્")
-  ("d" "દ્")
-  ("dh" "ધ્")
-  ("n" "ન્")
-  ("p" "પ્")
-  ("ph" "ફ્")
-  ("b" "બ્")
-  ("bh" "ભ્")
-  ("m" "મ્")
-  ("y" "ય્")
-  ("r" "ર્")
-  ("l" "લ્")
-  ("L" "ળ્")
-  ("ld" "ળ્")
-  ("v" "વ્")
-  ("w" "વ્")
-  ("sh" "શ્")
-  ("Sh" "ષ્")
-  ("shh" "ષ્")
-  ("s" "સ્")
-  ("h" "હ્")
-  ("GY" "જ્ઞ્")
-  ("dny" "જ્ઞ્")
-  ("x" "ક્ષ્"))
-
- (independent
-  ("a" "અ")
-  ("aa" "આ")
-  ("A" "આ")
-  ("i" "ઇ")
-  ("ii" "ઈ")
-  ("I" "ઈ")
-  ("u" "ઉ")
-  ("uu" "ઊ")
-  ("U" "ઊ")
-  ("RRi" "ઋ")
-  ("R^i" "ઋ")
-  (".c" "ઍ")
-  ("e.c" "ઍ")
-  ("e" "એ")
-  ("ai" "ઐ")
-  ("o.c" "ઑ")
-  ("o" "ઓ")
-  ("au" "ઔ")
-  ("RRI" "ૠ")
-  ("R^I" "ૠ")
-  (".N" "ઁ")
-  (".n" "ં")
-  ("M" "ં")
-  ("H" "ઃ")
-  (".a" "ઽ")
-  (".h" "્")
-  ("AUM" "ૐ")
-  ("OM" "ૐ")
-  ("0" "૦")
-  ("1" "૧")
-  ("2" "૨")
-  ("3" "૩")
-  ("4" "૪")
-  ("5" "૫")
-  ("6" "૬")
-  ("7" "૭")
-  ("8" "૮")
-  ("9" "૯")
-  ("#" "્ર")
-  ("$" "ર્")
-  ("^" "ત્ર")
-  ("*" "શ્ર")
-  ("]" "઼")
-  ((S-\ ) "‌")
-  ((C-@) "‍"))
-
- (dependent
-  ("a" (delete @-) "")
-  ("aa" (delete @-) "ા")
-  ("A" (delete @-) "ા")
-  ("i" (delete @-) "િ")
-  ("ii" (delete @-) "ી")
-  ("I" (delete @-) "ી")
-  ("u" (delete @-) "ુ")
-  ("uu" (delete @-) "ૂ")
-  ("U" (delete @-) "ૂ")
-  ("RRi" (delete @-) "ૃ")
-  ("R^i" (delete @-) "ૃ")
-  (".c" (delete @-) "ૅ")
-  ("e.c" (delete @-) "ૅ")
-  ("e" (delete @-) "ે")
-  ("ai" (delete @-) "ૈ")
-  ("o.c" (delete @-) "ૉ")
-  ("o" (delete @-) "ો")
-  ("au" (delete @-) "ૌ")
-  ("RRI" (delete @-) "ૄ")
-  ("R^I" (delete @-) "ૄ"))
-
- (return
-  ((Return)))
-
- (backspace
-  ((BackSpace) (undo))))
-
-
-(state
- (init
-  (starter (pushback 1) (shift intermediate)))
-
- (intermediate
-  (consonant (shift second))
-  (independent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (second
-  (consonant)
-  (dependent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (finish
-  (return)
-  (t (shift init))))
-
-;; Local Variables:
-;; coding: utf-8
-;; mode: lisp
-;; End:
diff --git a/gu-itrans.mim b/gu-itrans.mim
new file mode 100644 (file)
index 0000000..6706b7b
--- /dev/null
@@ -0,0 +1,186 @@
+;; gjr-itrans.mim -- Gujarati input method with ITRANS method
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> gjr-itrans.mim
+;;;
+;;; Input method for Gujarati script with ITRANS method.  For the
+;;; detail of ITRAN, see the page http://www.aczone.com/itrans/.
+
+(title "ક")
+
+(map
+ (starter
+  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
+  ("0") ("1") ("2") ("3") ("4")
+  ("5") ("6") ("7") ("8") ("9")
+  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
+  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
+  ("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"))
+
+ (consonant
+  ("k" "ક્")
+  ("kh" "ખ્")
+  ("g" "ગ્")
+  ("gh" "ઘ્")
+  ("~N" "ઙ્")
+  ("N^" "ઙ્")
+  ("ch" "ચ્")
+  ("Ch" "છ્")
+  ("chh" "છ્")
+  ("j" "જ્")
+  ("jh" "ઝ્")
+  ("~n" "ઞ્")
+  ("JN" "ઞ્")
+  ("T" "ટ્")
+  ("Th" "ઠ્")
+  ("D" "ડ્")
+  ("Dh" "ઢ્")
+  ("N" "ણ્")
+  ("t" "ત્")
+  ("th" "થ્")
+  ("d" "દ્")
+  ("dh" "ધ્")
+  ("n" "ન્")
+  ("p" "પ્")
+  ("ph" "ફ્")
+  ("b" "બ્")
+  ("bh" "ભ્")
+  ("m" "મ્")
+  ("y" "ય્")
+  ("r" "ર્")
+  ("l" "લ્")
+  ("L" "ળ્")
+  ("ld" "ળ્")
+  ("v" "વ્")
+  ("w" "વ્")
+  ("sh" "શ્")
+  ("Sh" "ષ્")
+  ("shh" "ષ્")
+  ("s" "સ્")
+  ("h" "હ્")
+  ("GY" "જ્ઞ્")
+  ("dny" "જ્ઞ્")
+  ("x" "ક્ષ્"))
+
+ (independent
+  ("a" "અ")
+  ("aa" "આ")
+  ("A" "આ")
+  ("i" "ઇ")
+  ("ii" "ઈ")
+  ("I" "ઈ")
+  ("u" "ઉ")
+  ("uu" "ઊ")
+  ("U" "ઊ")
+  ("RRi" "ઋ")
+  ("R^i" "ઋ")
+  (".c" "ઍ")
+  ("e.c" "ઍ")
+  ("e" "એ")
+  ("ai" "ઐ")
+  ("o.c" "ઑ")
+  ("o" "ઓ")
+  ("au" "ઔ")
+  ("RRI" "ૠ")
+  ("R^I" "ૠ")
+  (".N" "ઁ")
+  (".n" "ં")
+  ("M" "ં")
+  ("H" "ઃ")
+  (".a" "ઽ")
+  (".h" "્")
+  ("AUM" "ૐ")
+  ("OM" "ૐ")
+  ("0" "૦")
+  ("1" "૧")
+  ("2" "૨")
+  ("3" "૩")
+  ("4" "૪")
+  ("5" "૫")
+  ("6" "૬")
+  ("7" "૭")
+  ("8" "૮")
+  ("9" "૯")
+  ("#" "્ર")
+  ("$" "ર્")
+  ("^" "ત્ર")
+  ("*" "શ્ર")
+  ("]" "઼")
+  ((S-\ ) "‌")
+  ((C-@) "‍"))
+
+ (dependent
+  ("a" (delete @-) "")
+  ("aa" (delete @-) "ા")
+  ("A" (delete @-) "ા")
+  ("i" (delete @-) "િ")
+  ("ii" (delete @-) "ી")
+  ("I" (delete @-) "ી")
+  ("u" (delete @-) "ુ")
+  ("uu" (delete @-) "ૂ")
+  ("U" (delete @-) "ૂ")
+  ("RRi" (delete @-) "ૃ")
+  ("R^i" (delete @-) "ૃ")
+  (".c" (delete @-) "ૅ")
+  ("e.c" (delete @-) "ૅ")
+  ("e" (delete @-) "ે")
+  ("ai" (delete @-) "ૈ")
+  ("o.c" (delete @-) "ૉ")
+  ("o" (delete @-) "ો")
+  ("au" (delete @-) "ૌ")
+  ("RRI" (delete @-) "ૄ")
+  ("R^I" (delete @-) "ૄ"))
+
+ (return
+  ((Return)))
+
+ (backspace
+  ((BackSpace) (undo))))
+
+
+(state
+ (init
+  (starter (pushback 1) (shift intermediate)))
+
+ (intermediate
+  (consonant (shift second))
+  (independent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (second
+  (consonant)
+  (dependent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (finish
+  (return)
+  (t (shift init))))
+
+;; Local Variables:
+;; coding: utf-8
+;; mode: lisp
+;; End:
diff --git a/hi-itrans.mim b/hi-itrans.mim
new file mode 100644 (file)
index 0000000..e608088
--- /dev/null
@@ -0,0 +1,210 @@
+;; dev-itrans.mim -- Devanagari input method with ITRANS method
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> dev-itrans.mim
+;;;
+;;; Input method for Devanagari script with ITRANS method.  For the
+;;; detail of ITRAN, see the page http://www.aczone.com/itrans/.
+
+(title "क")
+
+(map
+ (starter
+  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
+  ("0") ("1") ("2") ("3") ("4")
+  ("5") ("6") ("7") ("8") ("9")
+  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
+  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
+  ("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"))
+
+ (consonant
+  ("k" "क्")
+  ("kh" "ख्")
+  ("g" "ग्")
+  ("gh" "घ्")
+  ("~N" "ङ्")
+  ("N^" "ङ्")
+  ("ch" "च्")
+  ("Ch" "छ्")
+  ("chh" "छ्")
+  ("j" "ज्")
+  ("jh" "झ्")
+  ("~n" "ञ्")
+  ("JN" "ञ्")
+  ("T" "ट्")
+  ("Th" "ठ्")
+  ("D" "ड्")
+  ("Dh" "ढ्")
+  ("N" "ण्")
+  ("t" "त्")
+  ("th" "थ्")
+  ("d" "द्")
+  ("dh" "ध्")
+  ("n" "न्")
+  ("nh" "ऩ्")
+  ("p" "प्")
+  ("ph" "फ्")
+  ("b" "ब्")
+  ("bh" "भ्")
+  ("m" "म्")
+  ("y" "य्")
+  ("r" "र्")
+  ("rh" "ऱ्")
+  ("l" "ल्")
+  ("L" "ळ्")
+  ("ld" "ळ्")
+  ("v" "व्")
+  ("w" "व्")
+  ("sh" "श्")
+  ("Sh" "ष्")
+  ("shh" "ष्")
+  ("s" "स्")
+  ("h" "ह्")
+  ("q" "क़्")
+  ("K" "ख़्")
+  ("G" "ग़्")
+  ("J" "ज़्")
+  ("z" "ज़्")
+  (".D" "ड़्")
+  (".Dh" "ढ़्")
+  ("f" "फ़्")
+  ("Y" "य़्")
+  ("yh" "य़्")
+  ("GY" "ज्ञ्")
+  ("dny" "ज्ञ्")
+  ("x" "क्ष्"))
+
+ (independent
+  ("a" "अ")
+  ("aa" "आ")
+  ("A" "आ")
+  ("i" "इ")
+  ("ii" "ई")
+  ("I" "ई")
+  ("u" "उ")
+  ("uu" "ऊ")
+  ("U" "ऊ")
+  ("RRi" "ऋ")
+  ("R^i" "ऋ")
+  ("LLi" "ऌ")
+  ("L^i" "ऌ")
+  (".c" "ऍ")
+  ("e.c" "ऍ")
+  ("E" "ऎ")
+  ("e" "ए")
+  ("ai" "ऐ")
+  ("o.c" "ऑ")
+  ("O" "ऒ")
+  ("o" "ओ")
+  ("au" "औ")
+  ("RRI" "ॠ")
+  ("R^I" "ॠ")
+  ("LLI" "ॡ")
+  ("L^I" "ॡ")
+  (".N" "ँ")
+  (".n" "ं")
+  ("M" "ं")
+  ("H" "ः")
+  (".a" "ऽ")
+  (".h" "्")
+  ("AUM" "ॐ")
+  ("OM" "ॐ")
+  (".." "।")
+  ("0" "०")
+  ("1" "१")
+  ("2" "२")
+  ("3" "३")
+  ("4" "४")
+  ("5" "५")
+  ("6" "६")
+  ("7" "७")
+  ("8" "८")
+  ("9" "९")
+  ("#" "्र")
+  ("$" "र्")
+  ("^" "त्र")
+  ("*" "श्र")
+  ("]" "़")
+  ((S-\ ) "‌")
+  ((C-@) "‍"))
+
+ (dependent
+  ("a" (delete @-) "")
+  ("aa" (delete @-) "ा")
+  ("A" (delete @-) "ा")
+  ("i" (delete @-) "ि")
+  ("ii" (delete @-) "ी")
+  ("I" (delete @-) "ी")
+  ("u" (delete @-) "ु")
+  ("uu" (delete @-) "ू")
+  ("U" (delete @-) "ू")
+  ("RRi" (delete @-) "ृ")
+  ("R^i" (delete @-) "ृ")
+  ("LLi" (delete @-) "ॢ")
+  ("L^i" (delete @-) "ॢ")
+  (".c" (delete @-) "ॅ")
+  ("e.c" (delete @-) "ॅ")
+  ("E" (delete @-) "ॆ")
+  ("e" (delete @-) "े")
+  ("ai" (delete @-) "ै")
+  ("o.c" (delete @-) "ॉ")
+  ("O" (delete @-) "ॊ")
+  ("o" (delete @-) "ो")
+  ("au" (delete @-) "ौ")
+  ("RRI" (delete @-) "ॄ")
+  ("R^I" (delete @-) "ॄ")
+  ("LLI" (delete @-) "ॣ")
+  ("L^I" (delete @-) "ॣ"))
+
+ (return
+  ((Return)))
+
+ (backspace
+  ((BackSpace) (undo))))
+
+(state
+ (init
+  (starter (pushback 1) (shift intermediate)))
+
+ (intermediate
+  (consonant (shift second))
+  (independent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (second
+  (consonant)
+  (dependent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (finish
+  (return)
+  (t (shift init))))
+
+;; Local Variables:
+;; coding: utf-8
+;; mode: lisp
+;; End:
diff --git a/kh-yannis.mim b/kh-yannis.mim
deleted file mode 100644 (file)
index cd455a3..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-;; kh-yannis.mim -- Khmer input method suggested by Dr. Yannis Haralanbous
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> kh-yannis.mim
-;;;
-;;; Input method for Khmer suggested by Dr. Yannis.
-
-(title "ក")
-(map
- (consonant
-  ("k" "ក")
-  ("kh" "ខ")
-  ("K" "គ")
-  ("Kh" "ឃ")
-  ("KH" "ឃ")
-  ("g" "ង")
-  ("c" "ច")
-  ("ch" "ឆ")
-  ("C" "ជ")
-  ("Ch" "ឈ")
-  ("CH" "ឈ")
-  ("j" "ញ")
-  ("d" "ដ")
-  ("dh" "ឋ")
-  ("D" "ឌ")
-  ("Dh" "ឍ")
-  ("DH" "ឍ")
-  ("N" "ណ")
-  ("t" "ត")
-  ("th" "ថ")
-  ("T" "ទ")
-  ("Th" "ធ")
-  ("TH" "ធ")
-  ("n" "ន")
-  ("b" "ប")
-  ("ph" "ផ")
-  ("P" "ព")
-  ("Ph" "ភ")
-  ("PH" "ភ")
-  ("m" "ម")
-  ("y" "យ")
-  ("r" "រ")
-  ("l" "ល")
-  ("v" "វ")
-  ("sh" "ឝ")
-  ("S" "ឞ")
-  ("s" "ស")
-  ("h" "ហ")
-  ("L" "ឡ")
-  ("'" "អ"))
-
- (wirama
-  ("/" "្"))
-
- (vowel
-  ("A" "ា")
-  ("e" "ិ")
-  ("ey" "ី")
-  ("u" "ឹ")
-  ("ui" "ឺ")
-  ("o" "ុ")
-  ("ou" "ូ")
-  ("ua" "ួ")
-  ("au" "ើ")
-  ("Iu" "ឿ")
-  ("Ie" "ៀ")
-  ("ei" "េ")
-  ("ae" "ែ")
-  ("ay" "ៃ")
-  ("Ao" "ោ")
-  ("Aw" "ៅ"))
-
- (quality
-  ("q1" "៉")
-  ("q2" "៊"))
-
- (diacritic
-  ("M" "ំ")
-  ("H" "ះ")
-  (":" "ៈ")
-  ("D1" "់")
-  ("D2" "៌")
-  ("D3" "៍")
-  ("D4" "៎")
-  ("D5" "៏")
-  ("D6" "័"))
-
- (ind-vowel
-  ("V1" "ឥ")
-  ("V2" "ឦ")
-  ("V3" "ឧ")
-  ("V4" "ឨ")
-  ("V5" "ឩ")
-  ("V6" "ឪ")
-  ("V7" "ឫ")
-  ("V8" "ឬ")
-  ("V9" "ឭ")
-  ("VA" "ឮ")
-  ("VB" "ឯ")
-  ("VC" "ឰ")
-  ("VD" "ឱ")
-  ("VE" "ឲ")
-  ("VF" "ឳ"))
-
- (misc
-  ("." "។")
-  ("=" "៕")
-  ("%" "៖")
-  ("]" "ៗ")
-  ("_" "៘")
-  ("@" "៙")
-  (">" "៛")
-  ("$" "ៜ")
-  ("/" "្"))
-
- (space
-  (" " "")))
-
-(state
- (init
-  (consonant (shift c-state))
-  (vowel)
-  (quality)
-  (diacritic)
-  (ind-vowel)
-  (misc))
-
- (c-state
-  (wirama (shift cw-state))
-  (space (shift init)))
-
- (cw-state
-  (consonant (shift cwc-state))
-  (space (shift init)))
-
- (cwc-state
-  (wirama (shift cwcw-state))
-  (space (shift init)))
-
- (cwcw-state
-  (consonant (shift init))))
-
-;; Local Variables:
-;; mode: lisp
-;; End:
diff --git a/km-yannis.mim b/km-yannis.mim
new file mode 100644 (file)
index 0000000..cd455a3
--- /dev/null
@@ -0,0 +1,165 @@
+;; kh-yannis.mim -- Khmer input method suggested by Dr. Yannis Haralanbous
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> kh-yannis.mim
+;;;
+;;; Input method for Khmer suggested by Dr. Yannis.
+
+(title "ក")
+(map
+ (consonant
+  ("k" "ក")
+  ("kh" "ខ")
+  ("K" "គ")
+  ("Kh" "ឃ")
+  ("KH" "ឃ")
+  ("g" "ង")
+  ("c" "ច")
+  ("ch" "ឆ")
+  ("C" "ជ")
+  ("Ch" "ឈ")
+  ("CH" "ឈ")
+  ("j" "ញ")
+  ("d" "ដ")
+  ("dh" "ឋ")
+  ("D" "ឌ")
+  ("Dh" "ឍ")
+  ("DH" "ឍ")
+  ("N" "ណ")
+  ("t" "ត")
+  ("th" "ថ")
+  ("T" "ទ")
+  ("Th" "ធ")
+  ("TH" "ធ")
+  ("n" "ន")
+  ("b" "ប")
+  ("ph" "ផ")
+  ("P" "ព")
+  ("Ph" "ភ")
+  ("PH" "ភ")
+  ("m" "ម")
+  ("y" "យ")
+  ("r" "រ")
+  ("l" "ល")
+  ("v" "វ")
+  ("sh" "ឝ")
+  ("S" "ឞ")
+  ("s" "ស")
+  ("h" "ហ")
+  ("L" "ឡ")
+  ("'" "អ"))
+
+ (wirama
+  ("/" "្"))
+
+ (vowel
+  ("A" "ា")
+  ("e" "ិ")
+  ("ey" "ី")
+  ("u" "ឹ")
+  ("ui" "ឺ")
+  ("o" "ុ")
+  ("ou" "ូ")
+  ("ua" "ួ")
+  ("au" "ើ")
+  ("Iu" "ឿ")
+  ("Ie" "ៀ")
+  ("ei" "េ")
+  ("ae" "ែ")
+  ("ay" "ៃ")
+  ("Ao" "ោ")
+  ("Aw" "ៅ"))
+
+ (quality
+  ("q1" "៉")
+  ("q2" "៊"))
+
+ (diacritic
+  ("M" "ំ")
+  ("H" "ះ")
+  (":" "ៈ")
+  ("D1" "់")
+  ("D2" "៌")
+  ("D3" "៍")
+  ("D4" "៎")
+  ("D5" "៏")
+  ("D6" "័"))
+
+ (ind-vowel
+  ("V1" "ឥ")
+  ("V2" "ឦ")
+  ("V3" "ឧ")
+  ("V4" "ឨ")
+  ("V5" "ឩ")
+  ("V6" "ឪ")
+  ("V7" "ឫ")
+  ("V8" "ឬ")
+  ("V9" "ឭ")
+  ("VA" "ឮ")
+  ("VB" "ឯ")
+  ("VC" "ឰ")
+  ("VD" "ឱ")
+  ("VE" "ឲ")
+  ("VF" "ឳ"))
+
+ (misc
+  ("." "។")
+  ("=" "៕")
+  ("%" "៖")
+  ("]" "ៗ")
+  ("_" "៘")
+  ("@" "៙")
+  (">" "៛")
+  ("$" "ៜ")
+  ("/" "្"))
+
+ (space
+  (" " "")))
+
+(state
+ (init
+  (consonant (shift c-state))
+  (vowel)
+  (quality)
+  (diacritic)
+  (ind-vowel)
+  (misc))
+
+ (c-state
+  (wirama (shift cw-state))
+  (space (shift init)))
+
+ (cw-state
+  (consonant (shift cwc-state))
+  (space (shift init)))
+
+ (cwc-state
+  (wirama (shift cwcw-state))
+  (space (shift init)))
+
+ (cwcw-state
+  (consonant (shift init))))
+
+;; Local Variables:
+;; mode: lisp
+;; End:
diff --git a/kn-itrans.mim b/kn-itrans.mim
new file mode 100644 (file)
index 0000000..8782a6c
--- /dev/null
@@ -0,0 +1,189 @@
+;; knd-itrans.mim -- Kannada input method with ITRANS method
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> knd-itrans.mim
+;;;
+;;; Input method for Kannada script with ITRANS method.  For the
+;;; detail of ITRAN, see the page http://www.aczone.com/itrans/.
+
+(title "ಕ")
+
+(map
+ (starter
+  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
+  ("0") ("1") ("2") ("3") ("4")
+  ("5") ("6") ("7") ("8") ("9")
+  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
+  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
+  ("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"))
+
+ (consonant
+  ("k" "ಕ್")
+  ("kh" "ಖ್")
+  ("g" "ಗ್")
+  ("gh" "ಘ್")
+  ("~N" "ಙ್")
+  ("N^" "ಙ್")
+  ("ch" "ಚ್")
+  ("Ch" "ಛ್")
+  ("chh" "ಛ್")
+  ("j" "ಜ್")
+  ("jh" "ಝ್")
+  ("~n" "ಞ್")
+  ("JN" "ಞ್")
+  ("T" "ಟ್")
+  ("Th" "ಠ್")
+  ("D" "ಡ್")
+  ("Dh" "ಢ್")
+  ("N" "ಣ್")
+  ("t" "ತ್")
+  ("th" "ಥ್")
+  ("d" "ದ್")
+  ("dh" "ಧ್")
+  ("n" "ನ್")
+  ("p" "ಪ್")
+  ("ph" "ಫ್")
+  ("b" "ಬ್")
+  ("bh" "ಭ್")
+  ("m" "ಮ್")
+  ("y" "ಯ್")
+  ("r" "ರ್")
+  ("rh" "ಱ್")
+  ("l" "ಲ್")
+  ("L" "ಳ್")
+  ("ld" "ಳ್")
+  ("v" "ವ್")
+  ("w" "ವ್")
+  ("sh" "ಶ್")
+  ("Sh" "ಷ್")
+  ("shh" "ಷ್")
+  ("s" "ಸ್")
+  ("h" "ಹ್")
+  ("f" "ೞ್")
+  ("GY" "ಜ್ಞ್")
+  ("dny" "ಜ್ಞ್")
+  ("x" "ಕ್ಷ್"))
+
+ (independent
+  ("a" "ಅ")
+  ("aa" "ಆ")
+  ("A" "ಆ")
+  ("i" "ಇ")
+  ("ii" "ಈ")
+  ("I" "ಈ")
+  ("u" "ಉ")
+  ("uu" "ಊ")
+  ("U" "ಊ")
+  ("RRi" "ಋ")
+  ("R^i" "ಋ")
+  ("LLi" "ಌ")
+  ("L^i" "ಌ")
+  ("E" "ಏ")
+  ("e" "ಎ")
+  ("ai" "ಐ")
+  ("O" "ಓ")
+  ("o" "ಒ")
+  ("au" "ಔ")
+  ("RRI" "ೠ")
+  ("R^I" "ೠ")
+  ("LLI" "ೡ")
+  ("L^I" "ೡ")
+  (".n" "ಂ")
+  ("M" "ಂ")
+  ("H" "ಃ")
+  (".h" "್")
+  ("0" "೦")
+  ("1" "೧")
+  ("2" "೨")
+  ("3" "೩")
+  ("4" "೪")
+  ("5" "೫")
+  ("6" "೬")
+  ("7" "೭")
+  ("8" "೮")
+  ("9" "೯")
+  ("#" "್ರ")
+  ("$" "ರ್")
+  ("^" "ತ್ರ")
+  ("*" "ಶ್ರ")
+  ((S-\ ) "‌")
+  ((C-@) "‍"))
+
+ (dependent
+  ("a" (delete @-) "")
+  ("aa" (delete @-) "ಾ")
+  ("A" (delete @-) "ಾ")
+  ("i" (delete @-) "ಿ")
+  ("ii" (delete @-) "ೀ")
+  ("I" (delete @-) "ೀ")
+  ("u" (delete @-) "ು")
+  ("uu" (delete @-) "ೂ")
+  ("U" (delete @-) "ೂ")
+  ("RRi" (delete @-) "ೃ")
+  ("R^i" (delete @-) "ೃ")
+  ("LLi" (delete @-) "")
+  ("L^i" (delete @-) "")
+  ("E" (delete @-) "ೇ")
+  ("e" (delete @-) "ೆ")
+  ("ai" (delete @-) "ೈ")
+  ("O" (delete @-) "ೋ")
+  ("o" (delete @-) "ೊ")
+  ("au" (delete @-) "ೌ")
+  ("RRI" (delete @-) "ೄ")
+  ("R^I" (delete @-) "ೄ")
+  ("LLI" (delete @-) "")
+  ("L^I" (delete @-) ""))
+
+ (return
+  ((Return)))
+
+ (backspace
+  ((BackSpace) (undo))))
+
+
+(state
+ (init
+  (starter (pushback 1) (shift intermediate)))
+
+ (intermediate
+  (consonant (shift second))
+  (independent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (second
+  (consonant)
+  (dependent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (finish
+  (return)
+  (t (shift init))))
+
+;; Local Variables:
+;; coding: utf-8
+;; mode: lisp
+;; End:
diff --git a/knd-itrans.mim b/knd-itrans.mim
deleted file mode 100644 (file)
index 8782a6c..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-;; knd-itrans.mim -- Kannada input method with ITRANS method
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> knd-itrans.mim
-;;;
-;;; Input method for Kannada script with ITRANS method.  For the
-;;; detail of ITRAN, see the page http://www.aczone.com/itrans/.
-
-(title "ಕ")
-
-(map
- (starter
-  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
-  ("0") ("1") ("2") ("3") ("4")
-  ("5") ("6") ("7") ("8") ("9")
-  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
-  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
-  ("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"))
-
- (consonant
-  ("k" "ಕ್")
-  ("kh" "ಖ್")
-  ("g" "ಗ್")
-  ("gh" "ಘ್")
-  ("~N" "ಙ್")
-  ("N^" "ಙ್")
-  ("ch" "ಚ್")
-  ("Ch" "ಛ್")
-  ("chh" "ಛ್")
-  ("j" "ಜ್")
-  ("jh" "ಝ್")
-  ("~n" "ಞ್")
-  ("JN" "ಞ್")
-  ("T" "ಟ್")
-  ("Th" "ಠ್")
-  ("D" "ಡ್")
-  ("Dh" "ಢ್")
-  ("N" "ಣ್")
-  ("t" "ತ್")
-  ("th" "ಥ್")
-  ("d" "ದ್")
-  ("dh" "ಧ್")
-  ("n" "ನ್")
-  ("p" "ಪ್")
-  ("ph" "ಫ್")
-  ("b" "ಬ್")
-  ("bh" "ಭ್")
-  ("m" "ಮ್")
-  ("y" "ಯ್")
-  ("r" "ರ್")
-  ("rh" "ಱ್")
-  ("l" "ಲ್")
-  ("L" "ಳ್")
-  ("ld" "ಳ್")
-  ("v" "ವ್")
-  ("w" "ವ್")
-  ("sh" "ಶ್")
-  ("Sh" "ಷ್")
-  ("shh" "ಷ್")
-  ("s" "ಸ್")
-  ("h" "ಹ್")
-  ("f" "ೞ್")
-  ("GY" "ಜ್ಞ್")
-  ("dny" "ಜ್ಞ್")
-  ("x" "ಕ್ಷ್"))
-
- (independent
-  ("a" "ಅ")
-  ("aa" "ಆ")
-  ("A" "ಆ")
-  ("i" "ಇ")
-  ("ii" "ಈ")
-  ("I" "ಈ")
-  ("u" "ಉ")
-  ("uu" "ಊ")
-  ("U" "ಊ")
-  ("RRi" "ಋ")
-  ("R^i" "ಋ")
-  ("LLi" "ಌ")
-  ("L^i" "ಌ")
-  ("E" "ಏ")
-  ("e" "ಎ")
-  ("ai" "ಐ")
-  ("O" "ಓ")
-  ("o" "ಒ")
-  ("au" "ಔ")
-  ("RRI" "ೠ")
-  ("R^I" "ೠ")
-  ("LLI" "ೡ")
-  ("L^I" "ೡ")
-  (".n" "ಂ")
-  ("M" "ಂ")
-  ("H" "ಃ")
-  (".h" "್")
-  ("0" "೦")
-  ("1" "೧")
-  ("2" "೨")
-  ("3" "೩")
-  ("4" "೪")
-  ("5" "೫")
-  ("6" "೬")
-  ("7" "೭")
-  ("8" "೮")
-  ("9" "೯")
-  ("#" "್ರ")
-  ("$" "ರ್")
-  ("^" "ತ್ರ")
-  ("*" "ಶ್ರ")
-  ((S-\ ) "‌")
-  ((C-@) "‍"))
-
- (dependent
-  ("a" (delete @-) "")
-  ("aa" (delete @-) "ಾ")
-  ("A" (delete @-) "ಾ")
-  ("i" (delete @-) "ಿ")
-  ("ii" (delete @-) "ೀ")
-  ("I" (delete @-) "ೀ")
-  ("u" (delete @-) "ು")
-  ("uu" (delete @-) "ೂ")
-  ("U" (delete @-) "ೂ")
-  ("RRi" (delete @-) "ೃ")
-  ("R^i" (delete @-) "ೃ")
-  ("LLi" (delete @-) "")
-  ("L^i" (delete @-) "")
-  ("E" (delete @-) "ೇ")
-  ("e" (delete @-) "ೆ")
-  ("ai" (delete @-) "ೈ")
-  ("O" (delete @-) "ೋ")
-  ("o" (delete @-) "ೊ")
-  ("au" (delete @-) "ೌ")
-  ("RRI" (delete @-) "ೄ")
-  ("R^I" (delete @-) "ೄ")
-  ("LLI" (delete @-) "")
-  ("L^I" (delete @-) ""))
-
- (return
-  ((Return)))
-
- (backspace
-  ((BackSpace) (undo))))
-
-
-(state
- (init
-  (starter (pushback 1) (shift intermediate)))
-
- (intermediate
-  (consonant (shift second))
-  (independent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (second
-  (consonant)
-  (dependent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (finish
-  (return)
-  (t (shift init))))
-
-;; Local Variables:
-;; coding: utf-8
-;; mode: lisp
-;; End:
diff --git a/latin-post.mim b/latin-post.mim
deleted file mode 100644 (file)
index 761b2a2..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-;; latin-post.mim -- Latin input method with postfix modifiers
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database, a sub-part of the m17n library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation; either version 2, or (at
-;; your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with the m17n library; see the file COPYING.  If not, write to
-;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; <li> latin-post.mim
-;;;
-;;; Input method for Latin script with postfix modifiers.
-;;; @image html latin-post.png
-;;; @image latex latin-post.eps "Examples" width=\narrowwidth
-
-;; | mark       | postfix | examples
-;; |------------+---------+----------
-;; | acute      |    '    | a' -> á
-;; | grave      |    `    | a` -> à
-;; | circumflex |    ^    | a^ -> â
-;; | diaeresis  |    "    | a" -> ä
-;; | tilde      |    ~    | a~ -> ã
-;; | cedilla    |    ,    | c, -> ç
-;; | ogonek     |    ,    | a, -> ą
-;; | breve      |    ~    | g~ -> ğ
-;; | caron      |    ~    | c~ -> č
-;; | dbl. acute |    :    | o: -> ő
-;; | ring       |    .    | u. -> ů
-;; | dot        |    .    | z. -> ż
-;; | stroke     |    /    | l/ -> ł
-;; | others     | /, etc. | d/ -> ð   t/ -> þ   a/ -> å   o/ -> ø
-;; |            |         | ae/ -> æ  ij -> ij   oe/ -> œ  s/ -> ß
-;; |            |         | ?/ -> ¿   !/ -> ¡   // -> °
-;; |            |         | << -> «   >> -> »   o_ -> º   a_ -> ª
-;; 
-;; Repeating the postfix changes ambiguous combining marks:
-;;  Ex: A~ -> Ã, A~~ -> Ă, A~~~ -> A~
-
-(title "Latin-post")
-
-(map
-  (trans
-   ("!/" "¡")
-   ("!//" "!/")
-   ("//" "°")
-   ("///" "//")
-   ("<<" "\«")
-   ("<<<" "<<")
-   (">>" "\»")
-   (">>>" ">>")
-   ("?/" "¿")
-   ("?//" "?/")
-   ("$/" "£")
-   ("$//" "¤")
-   ("$///" "$/")
-
-   ("A'" "Á")    ("a'" "á")
-   ("A''" "A'")           ("a''" "a'")
-   ("A," "Ą")    ("a," "ą")
-   ("A,," "A,")           ("a,," "a,")
-   ("A-" "Ā")    ("a-" "ā")
-   ("A--" "A-")           ("a--" "a-")
-   ("A/" "Å")    ("a/" "å")
-   ("A//" "A/")           ("a//" "a/")
-   ("A\"" "Ä")           ("a\"" "ä")
-   ("A\"\"" "A\"")        ("a\"\"" "a\"")
-   ("A^" "Â")    ("a^" "â")
-   ("A^^" "A^")           ("a^^" "a^")
-   ("A`" "À")    ("a`" "à")
-   ("A``" "A`")           ("a``" "a`")
-   ("A~" "Ã")    ("a~" "ã")
-   ("A~~" "Ă")           ("a~~" "ă")
-   ("A~~~" "A~")          ("a~~~" "a~")
-   ("AE/" "Æ")           ("ae/" "æ")
-   ("AE//" "Æ/")         ("ae//" "æ/")
-   ("AE///" "AE/")        ("ae///" "ae/")
-                  ("a_" "ª")
-                  ("a__" "a_")
-   ("C'" "Ć")    ("c'" "ć")
-   ("C''" "C'")           ("c''" "c'")
-   ("C," "Ç")    ("c," "ç")
-   ("C,," "C,")           ("c,," "c,")
-   ("C." "Ċ")    ("c." "ċ")
-   ("C.." "C.")           ("c.." "c.")
-   ("C^" "Ĉ")    ("c^" "ĉ")
-   ("C^^" "C^")           ("c^^" "c^")
-   ("C~" "Č")    ("c~" "č")  
-   ("C~~" "C~")           ("c~~" "c~")
-                  ("c/" "¢")
-                  ("c//" "c/")
-   ("D/" "Ð")    ("d/" "ð")
-   ("D//" "Đ")           ("d//" "đ")
-   ("D///" "D/")          ("d///" "d/")
-   ("D~" "Ď")    ("d~" "ď")
-   ("D~~" "D~")           ("d~~" "d~")
-   ("E'" "É")    ("e'" "é")
-   ("E''" "E'")           ("e''" "e'")
-   ("E," "Ę")    ("e," "ę")
-   ("E,," "E,")           ("e,," "e,")
-   ("E-" "Ē")    ("e-" "ē")
-   ("E--" "E-")           ("e--" "e-")
-   ("E." "Ė")    ("e." "ė")
-   ("E.." "E.")           ("e.." "e.")
-   ("E\"" "Ë")           ("e\"" "ë")
-   ("E\"\"" "E\"")        ("e\"\"" "e\"")
-   ("E^" "Ê")    ("e^" "ê")
-   ("E^^" "E^")           ("e^^" "e^")
-   ("E`" "È")    ("e`" "è")
-   ("E``" "E`")           ("e``" "e`")
-   ("E~" "Ě")    ("e~" "ě")
-   ("E~~" "Ĕ")           ("e~~" "ĕ")
-   ("E~~~" "E~")          ("e~~~" "e~")
-                  ("e=" "€")
-                  ("e==" "e=")
-   ("G," "Ģ")    ("g," "ģ")
-   ("G,," "G,")           ("g,," "g,")
-   ("G." "Ġ")    ("g." "ġ")
-   ("G.." "G.")           ("g.." "g.")
-   ("G^" "Ĝ")    ("g^" "ĝ")
-   ("G^^" "G^")           ("g^^" "g^")
-   ("G~" "Ğ")    ("g~" "ğ")
-   ("G~~" "G~")           ("g~~" "g~")
-   ("H/" "Ħ")    ("h/" "ħ")
-   ("H//" "H/")           ("h//" "h/")
-   ("H^" "Ĥ")    ("h^" "ĥ")
-   ("H^^" "H^")           ("h^^" "h^")
-   ("I'" "Í")    ("i'" "í")
-   ("I''" "I'")           ("i''" "i'")
-   ("I," "Į")    ("i," "į")
-   ("I,," "I,")           ("i,," "i,")
-   ("I-" "Ī")    ("i-" "ī")
-   ("I--" "I-")           ("i--" "i-")
-   ("I." "İ")    ("i." "ı")
-   ("I.." "I.")           ("i.." "i.")
-   ("I\"" "Ï")           ("i\"" "ï")
-   ("I\"\"" "I\"")        ("i\"\"" "i\"")
-   ("I^" "Î")    ("i^" "î")
-   ("I^^" "I^")           ("i^^" "i^")
-   ("I`" "Ì")    ("i`" "ì")
-   ("I``" "I`")           ("i``" "i`")
-   ("I~" "Ĩ")    ("i~" "ĩ")
-   ("I~~" "Ĭ")           ("i~~" "ĭ")
-   ("I~~~" "I~")          ("i~~~" "i~")
-   ("IJ/" "IJ")           ("ij/" "ij")
-   ("IJ//" "IJ/")         ("ij//" "ij/")
-   ("IJ///" "IJ/")        ("ij///" "ij/")
-   ("J^" "Ĵ")    ("j^" "ĵ")
-   ("J^^" "J^")           ("j^^" "j^")
-   ("K," "Ķ")    ("k," "ķ")
-   ("K,," "K,")           ("k,," "k,")
-                  ("k/" "ĸ")
-                  ("k//" "k/")
-   ("L'" "Ĺ")    ("l'" "ĺ")
-   ("L''" "L'")           ("l''" "l'")
-   ("L," "Ļ")    ("l," "ļ")
-   ("L,," "L,")           ("l,," "l,")
-   ("L." "Ŀ")    ("l." "ŀ")
-   ("L.." "L.")           ("l.." "l.")
-   ("L/" "Ł")    ("l/" "ł")
-   ("L//" "L/")           ("l//" "l/")
-   ("L~" "Ľ")    ("l~" "ľ")
-   ("L~~" "L~")           ("l~~" "l~")
-   ("N'" "Ń")    ("n'" "ń")
-   ("N''" "N'")           ("n''" "n'")
-   ("N," "Ņ")    ("n," "ņ")
-   ("N,," "N,")           ("n,," "n,")
-   ("N/" "Ŋ")    ("n/" "ŋ")
-   ("N//" "N/")           ("n//" "n/")
-   ("N~" "Ñ")    ("n~" "ñ")
-   ("N~~" "Ň")           ("n~~" "ň")
-   ("N~~~" "N~")          ("n~~~" "n~")
-   ("O'" "Ó")    ("o'" "ó")
-   ("O''" "O'")           ("o''" "o'")
-   ("O-" "Ō")    ("o-" "ō")
-   ("O--" "O-")           ("o--" "o-")
-   ("O/" "Ø")    ("o/" "ø")
-   ("O//" "O/")           ("o//" "o/")
-   ("O:" "Ő")    ("o:" "ő")
-   ("O::" "O:")           ("o::" "o:")
-   ("O\"" "Ö")           ("o\"" "ö")
-   ("O\"\"" "O\"")        ("o\"\"" "o\"")
-   ("O^" "Ô")    ("o^" "ô")
-   ("O^^" "O^")           ("o^^" "o^")
-   ("O`" "Ò")    ("o`" "ò")
-   ("O``" "O`")           ("o``" "o`")
-   ("O~" "Õ")    ("o~" "õ")
-   ("O~~" "Ŏ")           ("o~~" "ŏ")
-   ("O~~~" "O~")          ("o~~~" "o~")
-   ("OE/" "Œ")           ("oe/" "œ")
-   ("OE//" "Œ/")         ("oe//" "œ/")
-   ("OE///" "OE/")        ("oe///" "oe/")
-                  ("o_" "º")
-                  ("o__" "o_")
-   ("R'" "Ŕ")    ("r'" "ŕ")
-   ("R''" "R'")           ("r''" "r'")
-   ("R," "Ŗ")    ("r," "ŗ")
-   ("R,," "R,")           ("r,," "r,")
-   ("R~" "Ř")    ("r~" "ř")
-   ("R~~" "R~")           ("r~~" "r~")
-   ("S'" "Ś")    ("s'" "ś")
-   ("S''" "S'")           ("s''" "s'")
-   ("S," "Ş")    ("s," "ş")
-   ("S,," "S,")           ("s,," "s,")
-   ("S^" "Ŝ")    ("s^" "ŝ")
-   ("S^^" "S^")           ("s^^" "s^")
-   ("S~" "Š")    ("s~" "š")
-   ("S~~" "S~")           ("s~~" "s~")
-                  ("s/" "ß")
-                  ("s//" "s/")
-   ("T," "Ţ")    ("t," "ţ")
-   ("T,," "T,")           ("t,," "t,")
-   ("T/" "Þ")    ("t/" "þ")
-   ("T//" "Ŧ")           ("t//" "ŧ")
-   ("T///" "T/")          ("t///" "t/")
-   ("T~" "Ť")    ("t~" "ť")
-   ("T~~" "T~")           ("t~~" "t~")
-   ("U'" "Ú")    ("u'" "ú")
-   ("U''" "U'")           ("u''" "u'")
-   ("U," "Ų")    ("u," "ų")
-   ("U,," "U,")           ("u,," "u,")
-   ("U-" "Ū")    ("u-" "ū")
-   ("U--" "U-")           ("u--" "u-")
-   ("U/" "Ů")    ("u/" "ů")
-   ("U//" "U/")           ("u//" "u/")
-   ("U:" "Ű")    ("u:" "ű")
-   ("U::" "U:")           ("u::" "u:")
-   ("U\"" "Ü")           ("u\"" "ü")
-   ("U\"\"" "U\"")        ("u\"\"" "u\"")
-   ("U^" "Û")    ("u^" "û")
-   ("U^^" "U^")           ("u^^" "u^")
-   ("U`" "Ù")    ("u`" "ù")
-   ("U``" "U`")           ("u``" "u`")
-   ("U~" "Ũ")    ("u~" "ũ")
-   ("U~~" "Ŭ")           ("u~~" "ŭ")
-   ("U~~~" "U~")          ("u~~~" "u~")
-   ("W^" "Ŵ")    ("w^" "ŵ")
-   ("W^^" "W^")           ("w^^" "w^")
-   ("Y'" "Ý")    ("y'" "ý")
-   ("Y''" "Y'")           ("y''" "y'")
-   ("Y^" "Ŷ")    ("y^" "ŷ")
-   ("Y^^" "Y^")           ("y^^" "y^")
-   ("Y\"" "Ÿ")           ("y\"" "ÿ")
-   ("Y\"\"" "Y\"")        ("y\"\"" "y\"")
-   ("Y=" "¥")
-   ("Y==" "Y=")
-   ("Z'" "Ź")    ("z'" "ź")
-   ("Z''" "Z'")           ("z''" "z'")
-   ("Z." "Ż")    ("z." "ż")
-   ("Z.." "Z.")           ("z.." "z.")
-   ("Z~" "Ž")    ("z~" "ž")
-   ("Z~~" "Z~")           ("z~~" "z~")
-   ))
-
-(state
-  (init
-    (trans)))
diff --git a/latn-post.mim b/latn-post.mim
new file mode 100644 (file)
index 0000000..761b2a2
--- /dev/null
@@ -0,0 +1,269 @@
+;; latin-post.mim -- Latin input method with postfix modifiers
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database, a sub-part of the m17n library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2, or (at
+;; your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with the m17n library; see the file COPYING.  If not, write to
+;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; <li> latin-post.mim
+;;;
+;;; Input method for Latin script with postfix modifiers.
+;;; @image html latin-post.png
+;;; @image latex latin-post.eps "Examples" width=\narrowwidth
+
+;; | mark       | postfix | examples
+;; |------------+---------+----------
+;; | acute      |    '    | a' -> á
+;; | grave      |    `    | a` -> à
+;; | circumflex |    ^    | a^ -> â
+;; | diaeresis  |    "    | a" -> ä
+;; | tilde      |    ~    | a~ -> ã
+;; | cedilla    |    ,    | c, -> ç
+;; | ogonek     |    ,    | a, -> ą
+;; | breve      |    ~    | g~ -> ğ
+;; | caron      |    ~    | c~ -> č
+;; | dbl. acute |    :    | o: -> ő
+;; | ring       |    .    | u. -> ů
+;; | dot        |    .    | z. -> ż
+;; | stroke     |    /    | l/ -> ł
+;; | others     | /, etc. | d/ -> ð   t/ -> þ   a/ -> å   o/ -> ø
+;; |            |         | ae/ -> æ  ij -> ij   oe/ -> œ  s/ -> ß
+;; |            |         | ?/ -> ¿   !/ -> ¡   // -> °
+;; |            |         | << -> «   >> -> »   o_ -> º   a_ -> ª
+;; 
+;; Repeating the postfix changes ambiguous combining marks:
+;;  Ex: A~ -> Ã, A~~ -> Ă, A~~~ -> A~
+
+(title "Latin-post")
+
+(map
+  (trans
+   ("!/" "¡")
+   ("!//" "!/")
+   ("//" "°")
+   ("///" "//")
+   ("<<" "\«")
+   ("<<<" "<<")
+   (">>" "\»")
+   (">>>" ">>")
+   ("?/" "¿")
+   ("?//" "?/")
+   ("$/" "£")
+   ("$//" "¤")
+   ("$///" "$/")
+
+   ("A'" "Á")    ("a'" "á")
+   ("A''" "A'")           ("a''" "a'")
+   ("A," "Ą")    ("a," "ą")
+   ("A,," "A,")           ("a,," "a,")
+   ("A-" "Ā")    ("a-" "ā")
+   ("A--" "A-")           ("a--" "a-")
+   ("A/" "Å")    ("a/" "å")
+   ("A//" "A/")           ("a//" "a/")
+   ("A\"" "Ä")           ("a\"" "ä")
+   ("A\"\"" "A\"")        ("a\"\"" "a\"")
+   ("A^" "Â")    ("a^" "â")
+   ("A^^" "A^")           ("a^^" "a^")
+   ("A`" "À")    ("a`" "à")
+   ("A``" "A`")           ("a``" "a`")
+   ("A~" "Ã")    ("a~" "ã")
+   ("A~~" "Ă")           ("a~~" "ă")
+   ("A~~~" "A~")          ("a~~~" "a~")
+   ("AE/" "Æ")           ("ae/" "æ")
+   ("AE//" "Æ/")         ("ae//" "æ/")
+   ("AE///" "AE/")        ("ae///" "ae/")
+                  ("a_" "ª")
+                  ("a__" "a_")
+   ("C'" "Ć")    ("c'" "ć")
+   ("C''" "C'")           ("c''" "c'")
+   ("C," "Ç")    ("c," "ç")
+   ("C,," "C,")           ("c,," "c,")
+   ("C." "Ċ")    ("c." "ċ")
+   ("C.." "C.")           ("c.." "c.")
+   ("C^" "Ĉ")    ("c^" "ĉ")
+   ("C^^" "C^")           ("c^^" "c^")
+   ("C~" "Č")    ("c~" "č")  
+   ("C~~" "C~")           ("c~~" "c~")
+                  ("c/" "¢")
+                  ("c//" "c/")
+   ("D/" "Ð")    ("d/" "ð")
+   ("D//" "Đ")           ("d//" "đ")
+   ("D///" "D/")          ("d///" "d/")
+   ("D~" "Ď")    ("d~" "ď")
+   ("D~~" "D~")           ("d~~" "d~")
+   ("E'" "É")    ("e'" "é")
+   ("E''" "E'")           ("e''" "e'")
+   ("E," "Ę")    ("e," "ę")
+   ("E,," "E,")           ("e,," "e,")
+   ("E-" "Ē")    ("e-" "ē")
+   ("E--" "E-")           ("e--" "e-")
+   ("E." "Ė")    ("e." "ė")
+   ("E.." "E.")           ("e.." "e.")
+   ("E\"" "Ë")           ("e\"" "ë")
+   ("E\"\"" "E\"")        ("e\"\"" "e\"")
+   ("E^" "Ê")    ("e^" "ê")
+   ("E^^" "E^")           ("e^^" "e^")
+   ("E`" "È")    ("e`" "è")
+   ("E``" "E`")           ("e``" "e`")
+   ("E~" "Ě")    ("e~" "ě")
+   ("E~~" "Ĕ")           ("e~~" "ĕ")
+   ("E~~~" "E~")          ("e~~~" "e~")
+                  ("e=" "€")
+                  ("e==" "e=")
+   ("G," "Ģ")    ("g," "ģ")
+   ("G,," "G,")           ("g,," "g,")
+   ("G." "Ġ")    ("g." "ġ")
+   ("G.." "G.")           ("g.." "g.")
+   ("G^" "Ĝ")    ("g^" "ĝ")
+   ("G^^" "G^")           ("g^^" "g^")
+   ("G~" "Ğ")    ("g~" "ğ")
+   ("G~~" "G~")           ("g~~" "g~")
+   ("H/" "Ħ")    ("h/" "ħ")
+   ("H//" "H/")           ("h//" "h/")
+   ("H^" "Ĥ")    ("h^" "ĥ")
+   ("H^^" "H^")           ("h^^" "h^")
+   ("I'" "Í")    ("i'" "í")
+   ("I''" "I'")           ("i''" "i'")
+   ("I," "Į")    ("i," "į")
+   ("I,," "I,")           ("i,," "i,")
+   ("I-" "Ī")    ("i-" "ī")
+   ("I--" "I-")           ("i--" "i-")
+   ("I." "İ")    ("i." "ı")
+   ("I.." "I.")           ("i.." "i.")
+   ("I\"" "Ï")           ("i\"" "ï")
+   ("I\"\"" "I\"")        ("i\"\"" "i\"")
+   ("I^" "Î")    ("i^" "î")
+   ("I^^" "I^")           ("i^^" "i^")
+   ("I`" "Ì")    ("i`" "ì")
+   ("I``" "I`")           ("i``" "i`")
+   ("I~" "Ĩ")    ("i~" "ĩ")
+   ("I~~" "Ĭ")           ("i~~" "ĭ")
+   ("I~~~" "I~")          ("i~~~" "i~")
+   ("IJ/" "IJ")           ("ij/" "ij")
+   ("IJ//" "IJ/")         ("ij//" "ij/")
+   ("IJ///" "IJ/")        ("ij///" "ij/")
+   ("J^" "Ĵ")    ("j^" "ĵ")
+   ("J^^" "J^")           ("j^^" "j^")
+   ("K," "Ķ")    ("k," "ķ")
+   ("K,," "K,")           ("k,," "k,")
+                  ("k/" "ĸ")
+                  ("k//" "k/")
+   ("L'" "Ĺ")    ("l'" "ĺ")
+   ("L''" "L'")           ("l''" "l'")
+   ("L," "Ļ")    ("l," "ļ")
+   ("L,," "L,")           ("l,," "l,")
+   ("L." "Ŀ")    ("l." "ŀ")
+   ("L.." "L.")           ("l.." "l.")
+   ("L/" "Ł")    ("l/" "ł")
+   ("L//" "L/")           ("l//" "l/")
+   ("L~" "Ľ")    ("l~" "ľ")
+   ("L~~" "L~")           ("l~~" "l~")
+   ("N'" "Ń")    ("n'" "ń")
+   ("N''" "N'")           ("n''" "n'")
+   ("N," "Ņ")    ("n," "ņ")
+   ("N,," "N,")           ("n,," "n,")
+   ("N/" "Ŋ")    ("n/" "ŋ")
+   ("N//" "N/")           ("n//" "n/")
+   ("N~" "Ñ")    ("n~" "ñ")
+   ("N~~" "Ň")           ("n~~" "ň")
+   ("N~~~" "N~")          ("n~~~" "n~")
+   ("O'" "Ó")    ("o'" "ó")
+   ("O''" "O'")           ("o''" "o'")
+   ("O-" "Ō")    ("o-" "ō")
+   ("O--" "O-")           ("o--" "o-")
+   ("O/" "Ø")    ("o/" "ø")
+   ("O//" "O/")           ("o//" "o/")
+   ("O:" "Ő")    ("o:" "ő")
+   ("O::" "O:")           ("o::" "o:")
+   ("O\"" "Ö")           ("o\"" "ö")
+   ("O\"\"" "O\"")        ("o\"\"" "o\"")
+   ("O^" "Ô")    ("o^" "ô")
+   ("O^^" "O^")           ("o^^" "o^")
+   ("O`" "Ò")    ("o`" "ò")
+   ("O``" "O`")           ("o``" "o`")
+   ("O~" "Õ")    ("o~" "õ")
+   ("O~~" "Ŏ")           ("o~~" "ŏ")
+   ("O~~~" "O~")          ("o~~~" "o~")
+   ("OE/" "Œ")           ("oe/" "œ")
+   ("OE//" "Œ/")         ("oe//" "œ/")
+   ("OE///" "OE/")        ("oe///" "oe/")
+                  ("o_" "º")
+                  ("o__" "o_")
+   ("R'" "Ŕ")    ("r'" "ŕ")
+   ("R''" "R'")           ("r''" "r'")
+   ("R," "Ŗ")    ("r," "ŗ")
+   ("R,," "R,")           ("r,," "r,")
+   ("R~" "Ř")    ("r~" "ř")
+   ("R~~" "R~")           ("r~~" "r~")
+   ("S'" "Ś")    ("s'" "ś")
+   ("S''" "S'")           ("s''" "s'")
+   ("S," "Ş")    ("s," "ş")
+   ("S,," "S,")           ("s,," "s,")
+   ("S^" "Ŝ")    ("s^" "ŝ")
+   ("S^^" "S^")           ("s^^" "s^")
+   ("S~" "Š")    ("s~" "š")
+   ("S~~" "S~")           ("s~~" "s~")
+                  ("s/" "ß")
+                  ("s//" "s/")
+   ("T," "Ţ")    ("t," "ţ")
+   ("T,," "T,")           ("t,," "t,")
+   ("T/" "Þ")    ("t/" "þ")
+   ("T//" "Ŧ")           ("t//" "ŧ")
+   ("T///" "T/")          ("t///" "t/")
+   ("T~" "Ť")    ("t~" "ť")
+   ("T~~" "T~")           ("t~~" "t~")
+   ("U'" "Ú")    ("u'" "ú")
+   ("U''" "U'")           ("u''" "u'")
+   ("U," "Ų")    ("u," "ų")
+   ("U,," "U,")           ("u,," "u,")
+   ("U-" "Ū")    ("u-" "ū")
+   ("U--" "U-")           ("u--" "u-")
+   ("U/" "Ů")    ("u/" "ů")
+   ("U//" "U/")           ("u//" "u/")
+   ("U:" "Ű")    ("u:" "ű")
+   ("U::" "U:")           ("u::" "u:")
+   ("U\"" "Ü")           ("u\"" "ü")
+   ("U\"\"" "U\"")        ("u\"\"" "u\"")
+   ("U^" "Û")    ("u^" "û")
+   ("U^^" "U^")           ("u^^" "u^")
+   ("U`" "Ù")    ("u`" "ù")
+   ("U``" "U`")           ("u``" "u`")
+   ("U~" "Ũ")    ("u~" "ũ")
+   ("U~~" "Ŭ")           ("u~~" "ŭ")
+   ("U~~~" "U~")          ("u~~~" "u~")
+   ("W^" "Ŵ")    ("w^" "ŵ")
+   ("W^^" "W^")           ("w^^" "w^")
+   ("Y'" "Ý")    ("y'" "ý")
+   ("Y''" "Y'")           ("y''" "y'")
+   ("Y^" "Ŷ")    ("y^" "ŷ")
+   ("Y^^" "Y^")           ("y^^" "y^")
+   ("Y\"" "Ÿ")           ("y\"" "ÿ")
+   ("Y\"\"" "Y\"")        ("y\"\"" "y\"")
+   ("Y=" "¥")
+   ("Y==" "Y=")
+   ("Z'" "Ź")    ("z'" "ź")
+   ("Z''" "Z'")           ("z''" "z'")
+   ("Z." "Ż")    ("z." "ż")
+   ("Z.." "Z.")           ("z.." "z.")
+   ("Z~" "Ž")    ("z~" "ž")
+   ("Z~~" "Z~")           ("z~~" "z~")
+   ))
+
+(state
+  (init
+    (trans)))
diff --git a/mdb.dir b/mdb.dir
index 10635f2..a7743bb 100644 (file)
--- a/mdb.dir
+++ b/mdb.dir
@@ -89,6 +89,7 @@
 (input-method as itrans "asm-itrans.mim")
 (input-method bn itrans "bng-itrans.mim")
 (input-method bo wylie "bo-wylie.mim")
+(input-method dv phonetic "dv-phonetic.mim")
 (input-method el kbd "el-kbd.mim")
 (input-method en ispell "ispell.mim")
 (input-method ar kbd "ar-kbd.mim")
 (input-method vi viqr "vi-viqr.mim")
 (input-method zh py "zh-py.mim")
 (input-method t latin-post "latin-post.mim")
+(input-method t syrc-phonetic "syrc-phonetic.mim")
 (input-method t unicode "unicode.mim")
 (input-method t rfc1345 "rfc1345.mim")
 ;;; </ul>
diff --git a/ml-itrans.mim b/ml-itrans.mim
new file mode 100644 (file)
index 0000000..3442b28
--- /dev/null
@@ -0,0 +1,179 @@
+;; mlm-itrans.mim -- Malayalam input method with ITRANS method
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> mlm-itrans.mim
+;;;
+;;; Input method for Malayalam script with ITRANS method.  For the
+;;; detail of ITRAN, see the page http://www.aczone.com/itrans/.
+
+(title "ക")
+
+(map
+ (starter
+  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
+  ("0") ("1") ("2") ("3") ("4")
+  ("5") ("6") ("7") ("8") ("9")
+  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
+  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
+  ("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"))
+
+ (consonant
+  ("k" "ക്")
+  ("kh" "ഖ്")
+  ("g" "ഗ്")
+  ("gh" "ഘ്")
+  ("~N" "ങ്")
+  ("N^" "ങ്")
+  ("ch" "ച്")
+  ("Ch" "ഛ്")
+  ("chh" "ഛ്")
+  ("j" "ജ്")
+  ("jh" "ഝ്")
+  ("~n" "ഞ്")
+  ("JN" "ഞ്")
+  ("T" "ട്")
+  ("Th" "ഠ്")
+  ("D" "ഡ്")
+  ("Dh" "ഢ്")
+  ("N" "ണ്")
+  ("t" "ത്")
+  ("th" "ഥ്")
+  ("d" "ദ്")
+  ("dh" "ധ്")
+  ("n" "ന്")
+  ("p" "പ്")
+  ("ph" "ഫ്")
+  ("b" "ബ്")
+  ("bh" "ഭ്")
+  ("m" "മ്")
+  ("y" "യ്")
+  ("r" "ര്")
+  ("rh" "റ്")
+  ("l" "ല്")
+  ("L" "ള്")
+  ("ld" "ള്")
+  ("v" "വ്")
+  ("w" "വ്")
+  ("sh" "ശ്")
+  ("Sh" "ഷ്")
+  ("shh" "ഷ്")
+  ("s" "സ്")
+  ("h" "ഹ്")
+  ("GY" "ജ്ഞ്")
+  ("dny" "ജ്ഞ്")
+  ("x" "ക്ഷ്"))
+
+ (independent
+  ("a" "അ")
+  ("aa" "ആ")
+  ("A" "ആ")
+  ("i" "ഇ")
+  ("ii" "ഈ")
+  ("I" "ഈ")
+  ("u" "ഉ")
+  ("uu" "ഊ")
+  ("U" "ഊ")
+  ("RRi" "ഋ")
+  ("R^i" "ഋ")
+  ("LLi" "ഌ")
+  ("L^i" "ഌ")
+  ("E" "ഏ")
+  ("e" "എ")
+  ("ai" "ഐ")
+  ("O" "ഓ")
+  ("o" "ഒ")
+  ("au" "ഔ")
+  (".n" "ം")
+  ("M" "ം")
+  ("H" "ഃ")
+  (".h" "്")
+  ("0" "൦")
+  ("1" "൧")
+  ("2" "൨")
+  ("3" "൩")
+  ("4" "൪")
+  ("5" "൫")
+  ("6" "൬")
+  ("7" "൭")
+  ("8" "൮")
+  ("9" "൯")
+  ("#" "്ര")
+  ("$" "ര്")
+  ("^" "ത്ര")
+  ("*" "ശ്ര")
+  ((S-\ ) "‌")
+  ((C-@) "‍"))
+
+ (dependent
+  ("a" (delete @-) "")
+  ("aa" (delete @-) "ാ")
+  ("A" (delete @-) "ാ")
+  ("i" (delete @-) "ി")
+  ("ii" (delete @-) "ീ")
+  ("I" (delete @-) "ീ")
+  ("u" (delete @-) "ു")
+  ("uu" (delete @-) "ൂ")
+  ("U" (delete @-) "ൂ")
+  ("RRi" (delete @-) "ൃ")
+  ("R^i" (delete @-) "ൃ")
+  ("LLi" (delete @-) "")
+  ("L^i" (delete @-) "")
+  ("E" (delete @-) "േ")
+  ("e" (delete @-) "െ")
+  ("ai" (delete @-) "ൈ")
+  ("O" (delete @-) "ോ")
+  ("o" (delete @-) "ൊ")
+  ("au" (delete @-) "ൌ"))
+
+ (return
+  ((Return)))
+
+ (backspace
+  ((BackSpace) (undo))))
+
+(state
+ (init
+  (starter (pushback 1) (shift intermediate)))
+
+ (intermediate
+  (consonant (shift second))
+  (independent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (second
+  (consonant)
+  (dependent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (finish
+  (return)
+  (t (shift init))))
+
+;; Local Variables:
+;; coding: utf-8
+;; mode: lisp
+;; End:
diff --git a/mlm-itrans.mim b/mlm-itrans.mim
deleted file mode 100644 (file)
index 3442b28..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-;; mlm-itrans.mim -- Malayalam input method with ITRANS method
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> mlm-itrans.mim
-;;;
-;;; Input method for Malayalam script with ITRANS method.  For the
-;;; detail of ITRAN, see the page http://www.aczone.com/itrans/.
-
-(title "ക")
-
-(map
- (starter
-  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
-  ("0") ("1") ("2") ("3") ("4")
-  ("5") ("6") ("7") ("8") ("9")
-  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
-  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
-  ("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"))
-
- (consonant
-  ("k" "ക്")
-  ("kh" "ഖ്")
-  ("g" "ഗ്")
-  ("gh" "ഘ്")
-  ("~N" "ങ്")
-  ("N^" "ങ്")
-  ("ch" "ച്")
-  ("Ch" "ഛ്")
-  ("chh" "ഛ്")
-  ("j" "ജ്")
-  ("jh" "ഝ്")
-  ("~n" "ഞ്")
-  ("JN" "ഞ്")
-  ("T" "ട്")
-  ("Th" "ഠ്")
-  ("D" "ഡ്")
-  ("Dh" "ഢ്")
-  ("N" "ണ്")
-  ("t" "ത്")
-  ("th" "ഥ്")
-  ("d" "ദ്")
-  ("dh" "ധ്")
-  ("n" "ന്")
-  ("p" "പ്")
-  ("ph" "ഫ്")
-  ("b" "ബ്")
-  ("bh" "ഭ്")
-  ("m" "മ്")
-  ("y" "യ്")
-  ("r" "ര്")
-  ("rh" "റ്")
-  ("l" "ല്")
-  ("L" "ള്")
-  ("ld" "ള്")
-  ("v" "വ്")
-  ("w" "വ്")
-  ("sh" "ശ്")
-  ("Sh" "ഷ്")
-  ("shh" "ഷ്")
-  ("s" "സ്")
-  ("h" "ഹ്")
-  ("GY" "ജ്ഞ്")
-  ("dny" "ജ്ഞ്")
-  ("x" "ക്ഷ്"))
-
- (independent
-  ("a" "അ")
-  ("aa" "ആ")
-  ("A" "ആ")
-  ("i" "ഇ")
-  ("ii" "ഈ")
-  ("I" "ഈ")
-  ("u" "ഉ")
-  ("uu" "ഊ")
-  ("U" "ഊ")
-  ("RRi" "ഋ")
-  ("R^i" "ഋ")
-  ("LLi" "ഌ")
-  ("L^i" "ഌ")
-  ("E" "ഏ")
-  ("e" "എ")
-  ("ai" "ഐ")
-  ("O" "ഓ")
-  ("o" "ഒ")
-  ("au" "ഔ")
-  (".n" "ം")
-  ("M" "ം")
-  ("H" "ഃ")
-  (".h" "്")
-  ("0" "൦")
-  ("1" "൧")
-  ("2" "൨")
-  ("3" "൩")
-  ("4" "൪")
-  ("5" "൫")
-  ("6" "൬")
-  ("7" "൭")
-  ("8" "൮")
-  ("9" "൯")
-  ("#" "്ര")
-  ("$" "ര്")
-  ("^" "ത്ര")
-  ("*" "ശ്ര")
-  ((S-\ ) "‌")
-  ((C-@) "‍"))
-
- (dependent
-  ("a" (delete @-) "")
-  ("aa" (delete @-) "ാ")
-  ("A" (delete @-) "ാ")
-  ("i" (delete @-) "ി")
-  ("ii" (delete @-) "ീ")
-  ("I" (delete @-) "ീ")
-  ("u" (delete @-) "ു")
-  ("uu" (delete @-) "ൂ")
-  ("U" (delete @-) "ൂ")
-  ("RRi" (delete @-) "ൃ")
-  ("R^i" (delete @-) "ൃ")
-  ("LLi" (delete @-) "")
-  ("L^i" (delete @-) "")
-  ("E" (delete @-) "േ")
-  ("e" (delete @-) "െ")
-  ("ai" (delete @-) "ൈ")
-  ("O" (delete @-) "ോ")
-  ("o" (delete @-) "ൊ")
-  ("au" (delete @-) "ൌ"))
-
- (return
-  ((Return)))
-
- (backspace
-  ((BackSpace) (undo))))
-
-(state
- (init
-  (starter (pushback 1) (shift intermediate)))
-
- (intermediate
-  (consonant (shift second))
-  (independent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (second
-  (consonant)
-  (dependent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (finish
-  (return)
-  (t (shift init))))
-
-;; Local Variables:
-;; coding: utf-8
-;; mode: lisp
-;; End:
diff --git a/or-itrans.mim b/or-itrans.mim
new file mode 100644 (file)
index 0000000..825a2b8
--- /dev/null
@@ -0,0 +1,187 @@
+;; ori-itrans.mim -- Oriya input method with ITRANS method
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> ori-itrans.mim
+;;;
+;;; Input method for Oriya script with ITRANS method.  For the detail
+;;; of ITRAN, see the page http://www.aczone.com/itrans/.
+
+(title "କ")
+
+(map
+ (starter
+  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
+  ("0") ("1") ("2") ("3") ("4")
+  ("5") ("6") ("7") ("8") ("9")
+  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
+  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
+  ("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"))
+
+ (consonant
+  ("k" "କ୍")
+  ("kh" "ଖ୍")
+  ("g" "ଗ୍")
+  ("gh" "ଘ୍")
+  ("~N" "ଙ୍")
+  ("N^" "ଙ୍")
+  ("ch" "ଚ୍")
+  ("Ch" "ଛ୍")
+  ("chh" "ଛ୍")
+  ("j" "ଜ୍")
+  ("jh" "ଝ୍")
+  ("~n" "ଞ୍")
+  ("JN" "ଞ୍")
+  ("T" "ଟ୍")
+  ("Th" "ଠ୍")
+  ("D" "ଡ୍")
+  ("Dh" "ଢ୍")
+  ("N" "ଣ୍")
+  ("t" "ତ୍")
+  ("th" "ଥ୍")
+  ("d" "ଦ୍")
+  ("dh" "ଧ୍")
+  ("n" "ନ୍")
+  ("p" "ପ୍")
+  ("ph" "ଫ୍")
+  ("b" "ବ୍")
+  ("bh" "ଭ୍")
+  ("m" "ମ୍")
+  ("y" "ଯ୍")
+  ("r" "ର୍")
+  ("l" "ଲ୍")
+  ("L" "ଳ୍")
+  ("ld" "ଳ୍")
+  ("sh" "ଶ୍")
+  ("Sh" "ଷ୍")
+  ("shh" "ଷ୍")
+  ("s" "ସ୍")
+  ("h" "ହ୍")
+  (".D" "ଡ଼୍")
+  (".Dh" "ଢ଼୍")
+  ("Y" "ୟ୍")
+  ("yh" "ୟ୍")
+  ("GY" "ଜ୍ଞ୍")
+  ("dny" "ଜ୍ଞ୍")
+  ("x" "କ୍ଷ୍"))
+
+ (independent
+  ("a" "ଅ")
+  ("aa" "ଆ")
+  ("A" "ଆ")
+  ("i" "ଇ")
+  ("ii" "ଈ")
+  ("I" "ଈ")
+  ("u" "ଉ")
+  ("uu" "ଊ")
+  ("U" "ଊ")
+  ("RRi" "ଋ")
+  ("R^i" "ଋ")
+  ("LLi" "ଌ")
+  ("L^i" "ଌ")
+  ("e" "ଏ")
+  ("ai" "ଐ")
+  ("o" "ଓ")
+  ("au" "ଔ")
+  ("RRI" "ୠ")
+  ("R^I" "ୠ")
+  ("LLI" "ୡ")
+  ("L^I" "ୡ")
+  (".N" "ଁ")
+  (".n" "ଂ")
+  ("M" "ଂ")
+  ("H" "ଃ")
+  (".a" "ଽ")
+  (".h" "୍")
+  ("0" "୦")
+  ("1" "୧")
+  ("2" "୨")
+  ("3" "୩")
+  ("4" "୪")
+  ("5" "୫")
+  ("6" "୬")
+  ("7" "୭")
+  ("8" "୮")
+  ("9" "୯")
+  ("#" "୍ର")
+  ("$" "ର୍")
+  ("^" "ତ୍ର")
+  ("*" "ଶ୍ର")
+  ("]" "଼")
+  ((S-\ ) "‌")
+  ((C-@) "‍"))
+
+ (dependent
+  ("a" (delete @-) "")
+  ("aa" (delete @-) "ା")
+  ("A" (delete @-) "ା")
+  ("i" (delete @-) "ି")
+  ("ii" (delete @-) "ୀ")
+  ("I" (delete @-) "ୀ")
+  ("u" (delete @-) "ୁ")
+  ("uu" (delete @-) "ୂ")
+  ("U" (delete @-) "ୂ")
+  ("RRi" (delete @-) "ୃ")
+  ("R^i" (delete @-) "ୃ")
+  ("LLi" (delete @-) "")
+  ("L^i" (delete @-) "")
+  ("e" (delete @-) "େ")
+  ("ai" (delete @-) "ୈ")
+  ("o" (delete @-) "ୋ")
+  ("au" (delete @-) "ୌ")
+  ("RRI" (delete @-) "")
+  ("R^I" (delete @-) "")
+  ("LLI" (delete @-) "")
+  ("L^I" (delete @-) ""))
+
+ (return
+  ((Return)))
+
+ (backspace
+  ((BackSpace) (undo))))
+
+(state
+ (init
+  (starter (pushback 1) (shift intermediate)))
+
+ (intermediate
+  (consonant (shift second))
+  (independent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (second
+  (consonant)
+  (dependent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (finish
+  (return)
+  (t (shift init))))
+
+;; Local Variables:
+;; coding: utf-8
+;; mode: lisp
+;; End:
diff --git a/ori-itrans.mim b/ori-itrans.mim
deleted file mode 100644 (file)
index 825a2b8..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-;; ori-itrans.mim -- Oriya input method with ITRANS method
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> ori-itrans.mim
-;;;
-;;; Input method for Oriya script with ITRANS method.  For the detail
-;;; of ITRAN, see the page http://www.aczone.com/itrans/.
-
-(title "କ")
-
-(map
- (starter
-  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
-  ("0") ("1") ("2") ("3") ("4")
-  ("5") ("6") ("7") ("8") ("9")
-  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
-  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
-  ("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"))
-
- (consonant
-  ("k" "କ୍")
-  ("kh" "ଖ୍")
-  ("g" "ଗ୍")
-  ("gh" "ଘ୍")
-  ("~N" "ଙ୍")
-  ("N^" "ଙ୍")
-  ("ch" "ଚ୍")
-  ("Ch" "ଛ୍")
-  ("chh" "ଛ୍")
-  ("j" "ଜ୍")
-  ("jh" "ଝ୍")
-  ("~n" "ଞ୍")
-  ("JN" "ଞ୍")
-  ("T" "ଟ୍")
-  ("Th" "ଠ୍")
-  ("D" "ଡ୍")
-  ("Dh" "ଢ୍")
-  ("N" "ଣ୍")
-  ("t" "ତ୍")
-  ("th" "ଥ୍")
-  ("d" "ଦ୍")
-  ("dh" "ଧ୍")
-  ("n" "ନ୍")
-  ("p" "ପ୍")
-  ("ph" "ଫ୍")
-  ("b" "ବ୍")
-  ("bh" "ଭ୍")
-  ("m" "ମ୍")
-  ("y" "ଯ୍")
-  ("r" "ର୍")
-  ("l" "ଲ୍")
-  ("L" "ଳ୍")
-  ("ld" "ଳ୍")
-  ("sh" "ଶ୍")
-  ("Sh" "ଷ୍")
-  ("shh" "ଷ୍")
-  ("s" "ସ୍")
-  ("h" "ହ୍")
-  (".D" "ଡ଼୍")
-  (".Dh" "ଢ଼୍")
-  ("Y" "ୟ୍")
-  ("yh" "ୟ୍")
-  ("GY" "ଜ୍ଞ୍")
-  ("dny" "ଜ୍ଞ୍")
-  ("x" "କ୍ଷ୍"))
-
- (independent
-  ("a" "ଅ")
-  ("aa" "ଆ")
-  ("A" "ଆ")
-  ("i" "ଇ")
-  ("ii" "ଈ")
-  ("I" "ଈ")
-  ("u" "ଉ")
-  ("uu" "ଊ")
-  ("U" "ଊ")
-  ("RRi" "ଋ")
-  ("R^i" "ଋ")
-  ("LLi" "ଌ")
-  ("L^i" "ଌ")
-  ("e" "ଏ")
-  ("ai" "ଐ")
-  ("o" "ଓ")
-  ("au" "ଔ")
-  ("RRI" "ୠ")
-  ("R^I" "ୠ")
-  ("LLI" "ୡ")
-  ("L^I" "ୡ")
-  (".N" "ଁ")
-  (".n" "ଂ")
-  ("M" "ଂ")
-  ("H" "ଃ")
-  (".a" "ଽ")
-  (".h" "୍")
-  ("0" "୦")
-  ("1" "୧")
-  ("2" "୨")
-  ("3" "୩")
-  ("4" "୪")
-  ("5" "୫")
-  ("6" "୬")
-  ("7" "୭")
-  ("8" "୮")
-  ("9" "୯")
-  ("#" "୍ର")
-  ("$" "ର୍")
-  ("^" "ତ୍ର")
-  ("*" "ଶ୍ର")
-  ("]" "଼")
-  ((S-\ ) "‌")
-  ((C-@) "‍"))
-
- (dependent
-  ("a" (delete @-) "")
-  ("aa" (delete @-) "ା")
-  ("A" (delete @-) "ା")
-  ("i" (delete @-) "ି")
-  ("ii" (delete @-) "ୀ")
-  ("I" (delete @-) "ୀ")
-  ("u" (delete @-) "ୁ")
-  ("uu" (delete @-) "ୂ")
-  ("U" (delete @-) "ୂ")
-  ("RRi" (delete @-) "ୃ")
-  ("R^i" (delete @-) "ୃ")
-  ("LLi" (delete @-) "")
-  ("L^i" (delete @-) "")
-  ("e" (delete @-) "େ")
-  ("ai" (delete @-) "ୈ")
-  ("o" (delete @-) "ୋ")
-  ("au" (delete @-) "ୌ")
-  ("RRI" (delete @-) "")
-  ("R^I" (delete @-) "")
-  ("LLI" (delete @-) "")
-  ("L^I" (delete @-) ""))
-
- (return
-  ((Return)))
-
- (backspace
-  ((BackSpace) (undo))))
-
-(state
- (init
-  (starter (pushback 1) (shift intermediate)))
-
- (intermediate
-  (consonant (shift second))
-  (independent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (second
-  (consonant)
-  (dependent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (finish
-  (return)
-  (t (shift init))))
-
-;; Local Variables:
-;; coding: utf-8
-;; mode: lisp
-;; End:
diff --git a/pa-itrans.mim b/pa-itrans.mim
new file mode 100644 (file)
index 0000000..261ef71
--- /dev/null
@@ -0,0 +1,171 @@
+;; pnj-itrans.mim -- Punjabi input method with ITRANS method
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> pnj-itrans.mim
+;;;
+;;; Input method for Gurmukhi script (Punjabi language) with ITRANS
+;;; method.  For the detail of ITRAN, see the page
+;;; http://www.aczone.com/itrans/.
+
+(title "ਕ")
+
+(map
+ (starter
+  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
+  ("0") ("1") ("2") ("3") ("4")
+  ("5") ("6") ("7") ("8") ("9")
+  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
+  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
+  ("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"))
+
+ (consonant
+  ("k" "ਕ੍")
+  ("kh" "ਖ੍")
+  ("g" "ਗ੍")
+  ("gh" "ਘ੍")
+  ("~N" "ਙ੍")
+  ("N^" "ਙ੍")
+  ("ch" "ਚ੍")
+  ("Ch" "ਛ੍")
+  ("chh" "ਛ੍")
+  ("j" "ਜ੍")
+  ("jh" "ਝ੍")
+  ("~n" "ਞ੍")
+  ("JN" "ਞ੍")
+  ("T" "ਟ੍")
+  ("Th" "ਠ੍")
+  ("D" "ਡ੍")
+  ("Dh" "ਢ੍")
+  ("N" "ਣ੍")
+  ("t" "ਤ੍")
+  ("th" "ਥ੍")
+  ("d" "ਦ੍")
+  ("dh" "ਧ੍")
+  ("n" "ਨ੍")
+  ("p" "ਪ੍")
+  ("ph" "ਫ੍")
+  ("b" "ਬ੍")
+  ("bh" "ਭ੍")
+  ("m" "ਮ੍")
+  ("y" "ਯ੍")
+  ("r" "ਰ੍")
+  ("l" "ਲ੍")
+  ("L" "ਲ਼੍")
+  ("ld" "ਲ਼੍")
+  ("v" "ਵ੍")
+  ("w" "ਵ੍")
+  ("sh" "ਸ਼੍")
+  ("s" "ਸ੍")
+  ("h" "ਹ੍")
+  ("K" "ਖ਼੍")
+  ("G" "ਗ਼੍")
+  ("J" "ਜ਼੍")
+  ("z" "ਜ਼੍")
+  (".D" "ੜ੍")
+  ("f" "ਫ਼੍")
+  ("GY" "ਜ੍ਞ੍")
+  ("dny" "ਜ੍ਞ੍"))
+
+ (independent
+  ("a" "ਅ")
+  ("aa" "ਆ")
+  ("A" "ਆ")
+  ("i" "ਇ")
+  ("ii" "ਈ")
+  ("I" "ਈ")
+  ("u" "ਉ")
+  ("uu" "ਊ")
+  ("U" "ਊ")
+  ("e" "ਏ")
+  ("ai" "ਐ")
+  ("o" "ਓ")
+  ("au" "ਔ")
+  (".n" "ਂ")
+  ("M" "ਂ")
+  (".h" "੍")
+  ("0" "੦")
+  ("1" "੧")
+  ("2" "੨")
+  ("3" "੩")
+  ("4" "੪")
+  ("5" "੫")
+  ("6" "੬")
+  ("7" "੭")
+  ("8" "੮")
+  ("9" "੯")
+  ("#" "੍ਰ")
+  ("$" "ਰ੍")
+  ("^" "ਤ੍ਰ")
+  ("*" "ਸ਼੍ਰ")
+  ("]" "਼")
+  ((S-\ ) "‌")
+  ((C-@) "‍"))
+
+ (dependent
+  ("a" (delete @-) "")
+  ("aa" (delete @-) "ਾ")
+  ("A" (delete @-) "ਾ")
+  ("i" (delete @-) "ਿ")
+  ("ii" (delete @-) "ੀ")
+  ("I" (delete @-) "ੀ")
+  ("u" (delete @-) "ੁ")
+  ("uu" (delete @-) "ੂ")
+  ("U" (delete @-) "ੂ")
+  ("e" (delete @-) "ੇ")
+  ("ai" (delete @-) "ੈ")
+  ("o" (delete @-) "ੋ")
+  ("au" (delete @-) "ੌ"))
+
+ (return
+  ((Return)))
+
+ (backspace
+  ((BackSpace) (undo))))
+
+
+(state
+ (init
+  (starter (pushback 1) (shift intermediate)))
+
+ (intermediate
+  (consonant (shift second))
+  (independent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (second
+  (consonant)
+  (dependent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (finish
+  (return)
+  (t (shift init))))
+
+;; Local Variables:
+;; coding: utf-8
+;; mode: lisp
+;; End:
diff --git a/pnj-itrans.mim b/pnj-itrans.mim
deleted file mode 100644 (file)
index 261ef71..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-;; pnj-itrans.mim -- Punjabi input method with ITRANS method
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> pnj-itrans.mim
-;;;
-;;; Input method for Gurmukhi script (Punjabi language) with ITRANS
-;;; method.  For the detail of ITRAN, see the page
-;;; http://www.aczone.com/itrans/.
-
-(title "ਕ")
-
-(map
- (starter
-  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
-  ("0") ("1") ("2") ("3") ("4")
-  ("5") ("6") ("7") ("8") ("9")
-  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
-  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
-  ("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"))
-
- (consonant
-  ("k" "ਕ੍")
-  ("kh" "ਖ੍")
-  ("g" "ਗ੍")
-  ("gh" "ਘ੍")
-  ("~N" "ਙ੍")
-  ("N^" "ਙ੍")
-  ("ch" "ਚ੍")
-  ("Ch" "ਛ੍")
-  ("chh" "ਛ੍")
-  ("j" "ਜ੍")
-  ("jh" "ਝ੍")
-  ("~n" "ਞ੍")
-  ("JN" "ਞ੍")
-  ("T" "ਟ੍")
-  ("Th" "ਠ੍")
-  ("D" "ਡ੍")
-  ("Dh" "ਢ੍")
-  ("N" "ਣ੍")
-  ("t" "ਤ੍")
-  ("th" "ਥ੍")
-  ("d" "ਦ੍")
-  ("dh" "ਧ੍")
-  ("n" "ਨ੍")
-  ("p" "ਪ੍")
-  ("ph" "ਫ੍")
-  ("b" "ਬ੍")
-  ("bh" "ਭ੍")
-  ("m" "ਮ੍")
-  ("y" "ਯ੍")
-  ("r" "ਰ੍")
-  ("l" "ਲ੍")
-  ("L" "ਲ਼੍")
-  ("ld" "ਲ਼੍")
-  ("v" "ਵ੍")
-  ("w" "ਵ੍")
-  ("sh" "ਸ਼੍")
-  ("s" "ਸ੍")
-  ("h" "ਹ੍")
-  ("K" "ਖ਼੍")
-  ("G" "ਗ਼੍")
-  ("J" "ਜ਼੍")
-  ("z" "ਜ਼੍")
-  (".D" "ੜ੍")
-  ("f" "ਫ਼੍")
-  ("GY" "ਜ੍ਞ੍")
-  ("dny" "ਜ੍ਞ੍"))
-
- (independent
-  ("a" "ਅ")
-  ("aa" "ਆ")
-  ("A" "ਆ")
-  ("i" "ਇ")
-  ("ii" "ਈ")
-  ("I" "ਈ")
-  ("u" "ਉ")
-  ("uu" "ਊ")
-  ("U" "ਊ")
-  ("e" "ਏ")
-  ("ai" "ਐ")
-  ("o" "ਓ")
-  ("au" "ਔ")
-  (".n" "ਂ")
-  ("M" "ਂ")
-  (".h" "੍")
-  ("0" "੦")
-  ("1" "੧")
-  ("2" "੨")
-  ("3" "੩")
-  ("4" "੪")
-  ("5" "੫")
-  ("6" "੬")
-  ("7" "੭")
-  ("8" "੮")
-  ("9" "੯")
-  ("#" "੍ਰ")
-  ("$" "ਰ੍")
-  ("^" "ਤ੍ਰ")
-  ("*" "ਸ਼੍ਰ")
-  ("]" "਼")
-  ((S-\ ) "‌")
-  ((C-@) "‍"))
-
- (dependent
-  ("a" (delete @-) "")
-  ("aa" (delete @-) "ਾ")
-  ("A" (delete @-) "ਾ")
-  ("i" (delete @-) "ਿ")
-  ("ii" (delete @-) "ੀ")
-  ("I" (delete @-) "ੀ")
-  ("u" (delete @-) "ੁ")
-  ("uu" (delete @-) "ੂ")
-  ("U" (delete @-) "ੂ")
-  ("e" (delete @-) "ੇ")
-  ("ai" (delete @-) "ੈ")
-  ("o" (delete @-) "ੋ")
-  ("au" (delete @-) "ੌ"))
-
- (return
-  ((Return)))
-
- (backspace
-  ((BackSpace) (undo))))
-
-
-(state
- (init
-  (starter (pushback 1) (shift intermediate)))
-
- (intermediate
-  (consonant (shift second))
-  (independent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (second
-  (consonant)
-  (dependent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (finish
-  (return)
-  (t (shift init))))
-
-;; Local Variables:
-;; coding: utf-8
-;; mode: lisp
-;; End:
diff --git a/ta-itrans.mim b/ta-itrans.mim
new file mode 100644 (file)
index 0000000..c6be8f6
--- /dev/null
@@ -0,0 +1,155 @@
+;; tml-itrans.mim -- Tamil input method with ITRANS method
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> tml-itrans.mim
+;;;
+;;; Input method for Tamil script with ITRANS method.  For the detail
+;;; of ITRAN, see the page http://www.aczone.com/itrans/.
+
+(title "க")
+
+(map
+ (starter
+  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
+  ("0") ("1") ("2") ("3") ("4")
+  ("5") ("6") ("7") ("8") ("9")
+  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
+  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
+  ("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"))
+
+ (consonant
+  ("k" "க்")
+  ("~N" "ங்")
+  ("N^" "ங்")
+  ("ch" "ச்")
+  ("j" "ஜ்")
+  ("~n" "ஞ்")
+  ("JN" "ஞ்")
+  ("T" "ட்")
+  ("N" "ண்")
+  ("t" "த்")
+  ("n" "ந்")
+  ("nh" "ன்")
+  ("p" "ப்")
+  ("m" "ம்")
+  ("y" "ய்")
+  ("r" "ர்")
+  ("rh" "ற்")
+  ("l" "ல்")
+  ("L" "ள்")
+  ("ld" "ள்")
+  ("v" "வ்")
+  ("w" "வ்")
+  ("Sh" "ஷ்")
+  ("shh" "ஷ்")
+  ("s" "ஸ்")
+  ("h" "ஹ்")
+  ("GY" "ஜ்ஞ்")
+  ("dny" "ஜ்ஞ்")
+  ("x" "க்ஷ்"))
+
+ (independent
+  ("a" "அ")
+  ("aa" "ஆ")
+  ("A" "ஆ")
+  ("i" "இ")
+  ("ii" "ஈ")
+  ("I" "ஈ")
+  ("u" "உ")
+  ("uu" "ஊ")
+  ("U" "ஊ")
+  ("E" "ஏ")
+  ("e" "எ")
+  ("ai" "ஐ")
+  ("O" "ஓ")
+  ("o" "ஒ")
+  ("au" "ஔ")
+  (".n" "ஂ")
+  ("M" "ஂ")
+  ("H" "ஃ")
+  (".h" "்")
+  ("1" "௧")
+  ("2" "௨")
+  ("3" "௩")
+  ("4" "௪")
+  ("5" "௫")
+  ("6" "௬")
+  ("7" "௭")
+  ("8" "௮")
+  ("9" "௯")
+  ("#" "்ர")
+  ("$" "ர்")
+  ("^" "த்ர")
+  ((S-\ ) "‌")
+  ((C-@) "‍"))
+
+ (dependent
+  ("a" (delete @-) "")
+  ("aa" (delete @-) "ா")
+  ("A" (delete @-) "ா")
+  ("i" (delete @-) "ி")
+  ("ii" (delete @-) "ீ")
+  ("I" (delete @-) "ீ")
+  ("u" (delete @-) "ு")
+  ("uu" (delete @-) "ூ")
+  ("U" (delete @-) "ூ")
+  ("E" (delete @-) "ே")
+  ("e" (delete @-) "ெ")
+  ("ai" (delete @-) "ை")
+  ("O" (delete @-) "ோ")
+  ("o" (delete @-) "ொ")
+  ("au" (delete @-) "ௌ"))
+
+ (return
+  ((Return)))
+
+ (backspace
+  ((BackSpace) (undo))))
+
+(state
+ (init
+  (starter (pushback 1) (shift intermediate)))
+
+ (intermediate
+  (consonant (shift second))
+  (independent (shift finish))
+  (backspace)
+  (return (shift init))
+  (nil (shift init)))
+
+ (second
+  (consonant)
+  (dependent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (finish
+  (return)
+  (t (shift init))))
+
+;; Local Variables:
+;; coding: utf-8
+;; mode: lisp
+;; End:
diff --git a/te-itrans.mim b/te-itrans.mim
new file mode 100644 (file)
index 0000000..20fde47
--- /dev/null
@@ -0,0 +1,188 @@
+;; tlg-itrans.mim -- Telugu input method with ITRANS method
+;; Copyright (C) 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; <li> tlg-itrans.mim
+;;;
+;;; Input method for Telugu script with ITRANS method.  For the detail
+;;; of ITRAN, see the page http://www.aczone.com/itrans/.
+
+(title "క")
+
+(map
+ (starter
+  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
+  ("0") ("1") ("2") ("3") ("4")
+  ("5") ("6") ("7") ("8") ("9")
+  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
+  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
+  ("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"))
+
+ (consonant
+  ("k" "క్")
+  ("kh" "ఖ్")
+  ("g" "గ్")
+  ("gh" "ఘ్")
+  ("~N" "ఙ్")
+  ("N^" "ఙ్")
+  ("ch" "చ్")
+  ("Ch" "ఛ్")
+  ("chh" "ఛ్")
+  ("j" "జ్")
+  ("jh" "ఝ్")
+  ("~n" "ఞ్")
+  ("JN" "ఞ్")
+  ("T" "ట్")
+  ("Th" "ఠ్")
+  ("D" "డ్")
+  ("Dh" "ఢ్")
+  ("N" "ణ్")
+  ("t" "త్")
+  ("th" "థ్")
+  ("d" "ద్")
+  ("dh" "ధ్")
+  ("n" "న్")
+  ("p" "ప్")
+  ("ph" "ఫ్")
+  ("b" "బ్")
+  ("bh" "భ్")
+  ("m" "మ్")
+  ("y" "య్")
+  ("r" "ర్")
+  ("rh" "ఱ్")
+  ("l" "ల్")
+  ("L" "ళ్")
+  ("ld" "ళ్")
+  ("v" "వ్")
+  ("w" "వ్")
+  ("sh" "శ్")
+  ("Sh" "ష్")
+  ("shh" "ష్")
+  ("s" "స్")
+  ("h" "హ్")
+  ("GY" "జ్ఞ్")
+  ("dny" "జ్ఞ్")
+  ("x" "క్ష్"))
+
+ (independent
+  ("a" "అ")
+  ("aa" "ఆ")
+  ("A" "ఆ")
+  ("i" "ఇ")
+  ("ii" "ఈ")
+  ("I" "ఈ")
+  ("u" "ఉ")
+  ("uu" "ఊ")
+  ("U" "ఊ")
+  ("RRi" "ఋ")
+  ("R^i" "ఋ")
+  ("LLi" "ఌ")
+  ("L^i" "ఌ")
+  ("E" "ఏ")
+  ("e" "ఎ")
+  ("ai" "ఐ")
+  ("O" "ఓ")
+  ("o" "ఒ")
+  ("au" "ఔ")
+  ("RRI" "ౠ")
+  ("R^I" "ౠ")
+  ("LLI" "ౡ")
+  ("L^I" "ౡ")
+  (".N" "ఁ")
+  (".n" "ం")
+  ("M" "ం")
+  ("H" "ః")
+  (".h" "్")
+  ("0" "౦")
+  ("1" "౧")
+  ("2" "౨")
+  ("3" "౩")
+  ("4" "౪")
+  ("5" "౫")
+  ("6" "౬")
+  ("7" "౭")
+  ("8" "౮")
+  ("9" "౯")
+  ("#" "్ర")
+  ("$" "ర్")
+  ("^" "త్ర")
+  ("*" "శ్ర")
+  ((S-\ ) "‌")
+  ((C-@) "‍"))
+
+ (dependent
+  ("a" (delete @-) "")
+  ("aa" (delete @-) "ా")
+  ("A" (delete @-) "ా")
+  ("i" (delete @-) "ి")
+  ("ii" (delete @-) "ీ")
+  ("I" (delete @-) "ీ")
+  ("u" (delete @-) "ు")
+  ("uu" (delete @-) "ూ")
+  ("U" (delete @-) "ూ")
+  ("RRi" (delete @-) "ృ")
+  ("R^i" (delete @-) "ృ")
+  ("LLi" (delete @-) "")
+  ("L^i" (delete @-) "")
+  ("E" (delete @-) "ే")
+  ("e" (delete @-) "ె")
+  ("ai" (delete @-) "ై")
+  ("O" (delete @-) "ో")
+  ("o" (delete @-) "ొ")
+  ("au" (delete @-) "ౌ")
+  ("RRI" (delete @-) "ౄ")
+  ("R^I" (delete @-) "ౄ")
+  ("LLI" (delete @-) "")
+  ("L^I" (delete @-) ""))
+
+ (return
+  ((Return)))
+
+ (backspace
+  ((BackSpace) (undo))))
+
+(state
+ (init
+  (starter (pushback 1) (shift intermediate)))
+
+ (intermediate
+  (consonant (shift second))
+  (independent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (second
+  (consonant)
+  (dependent (shift finish))
+  (backspace)
+  (return (shift init)))
+
+ (finish
+  (return)
+  (t (shift init))))
+
+;; Local Variables:
+;; coding: utf-8
+;; mode: lisp
+;; End:
diff --git a/tlg-itrans.mim b/tlg-itrans.mim
deleted file mode 100644 (file)
index 20fde47..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-;; tlg-itrans.mim -- Telugu input method with ITRANS method
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> tlg-itrans.mim
-;;;
-;;; Input method for Telugu script with ITRANS method.  For the detail
-;;; of ITRAN, see the page http://www.aczone.com/itrans/.
-
-(title "క")
-
-(map
- (starter
-  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
-  ("0") ("1") ("2") ("3") ("4")
-  ("5") ("6") ("7") ("8") ("9")
-  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
-  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
-  ("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"))
-
- (consonant
-  ("k" "క్")
-  ("kh" "ఖ్")
-  ("g" "గ్")
-  ("gh" "ఘ్")
-  ("~N" "ఙ్")
-  ("N^" "ఙ్")
-  ("ch" "చ్")
-  ("Ch" "ఛ్")
-  ("chh" "ఛ్")
-  ("j" "జ్")
-  ("jh" "ఝ్")
-  ("~n" "ఞ్")
-  ("JN" "ఞ్")
-  ("T" "ట్")
-  ("Th" "ఠ్")
-  ("D" "డ్")
-  ("Dh" "ఢ్")
-  ("N" "ణ్")
-  ("t" "త్")
-  ("th" "థ్")
-  ("d" "ద్")
-  ("dh" "ధ్")
-  ("n" "న్")
-  ("p" "ప్")
-  ("ph" "ఫ్")
-  ("b" "బ్")
-  ("bh" "భ్")
-  ("m" "మ్")
-  ("y" "య్")
-  ("r" "ర్")
-  ("rh" "ఱ్")
-  ("l" "ల్")
-  ("L" "ళ్")
-  ("ld" "ళ్")
-  ("v" "వ్")
-  ("w" "వ్")
-  ("sh" "శ్")
-  ("Sh" "ష్")
-  ("shh" "ష్")
-  ("s" "స్")
-  ("h" "హ్")
-  ("GY" "జ్ఞ్")
-  ("dny" "జ్ఞ్")
-  ("x" "క్ష్"))
-
- (independent
-  ("a" "అ")
-  ("aa" "ఆ")
-  ("A" "ఆ")
-  ("i" "ఇ")
-  ("ii" "ఈ")
-  ("I" "ఈ")
-  ("u" "ఉ")
-  ("uu" "ఊ")
-  ("U" "ఊ")
-  ("RRi" "ఋ")
-  ("R^i" "ఋ")
-  ("LLi" "ఌ")
-  ("L^i" "ఌ")
-  ("E" "ఏ")
-  ("e" "ఎ")
-  ("ai" "ఐ")
-  ("O" "ఓ")
-  ("o" "ఒ")
-  ("au" "ఔ")
-  ("RRI" "ౠ")
-  ("R^I" "ౠ")
-  ("LLI" "ౡ")
-  ("L^I" "ౡ")
-  (".N" "ఁ")
-  (".n" "ం")
-  ("M" "ం")
-  ("H" "ః")
-  (".h" "్")
-  ("0" "౦")
-  ("1" "౧")
-  ("2" "౨")
-  ("3" "౩")
-  ("4" "౪")
-  ("5" "౫")
-  ("6" "౬")
-  ("7" "౭")
-  ("8" "౮")
-  ("9" "౯")
-  ("#" "్ర")
-  ("$" "ర్")
-  ("^" "త్ర")
-  ("*" "శ్ర")
-  ((S-\ ) "‌")
-  ((C-@) "‍"))
-
- (dependent
-  ("a" (delete @-) "")
-  ("aa" (delete @-) "ా")
-  ("A" (delete @-) "ా")
-  ("i" (delete @-) "ి")
-  ("ii" (delete @-) "ీ")
-  ("I" (delete @-) "ీ")
-  ("u" (delete @-) "ు")
-  ("uu" (delete @-) "ూ")
-  ("U" (delete @-) "ూ")
-  ("RRi" (delete @-) "ృ")
-  ("R^i" (delete @-) "ృ")
-  ("LLi" (delete @-) "")
-  ("L^i" (delete @-) "")
-  ("E" (delete @-) "ే")
-  ("e" (delete @-) "ె")
-  ("ai" (delete @-) "ై")
-  ("O" (delete @-) "ో")
-  ("o" (delete @-) "ొ")
-  ("au" (delete @-) "ౌ")
-  ("RRI" (delete @-) "ౄ")
-  ("R^I" (delete @-) "ౄ")
-  ("LLI" (delete @-) "")
-  ("L^I" (delete @-) ""))
-
- (return
-  ((Return)))
-
- (backspace
-  ((BackSpace) (undo))))
-
-(state
- (init
-  (starter (pushback 1) (shift intermediate)))
-
- (intermediate
-  (consonant (shift second))
-  (independent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (second
-  (consonant)
-  (dependent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (finish
-  (return)
-  (t (shift init))))
-
-;; Local Variables:
-;; coding: utf-8
-;; mode: lisp
-;; End:
diff --git a/tml-itrans.mim b/tml-itrans.mim
deleted file mode 100644 (file)
index c6be8f6..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-;; tml-itrans.mim -- Tamil input method with ITRANS method
-;; Copyright (C) 2003, 2004
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H15PRO112
-
-;; This file is part of the m17n database; a sub-part of the m17n
-;; library.
-
-;; The m17n library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public License
-;; as published by the Free Software Foundation; either version 2.1 of
-;; the License, or (at your option) any later version.
-
-;; The m17n library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
-
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with the m17n library; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; <li> tml-itrans.mim
-;;;
-;;; Input method for Tamil script with ITRANS method.  For the detail
-;;; of ITRAN, see the page http://www.aczone.com/itrans/.
-
-(title "க")
-
-(map
- (starter
-  (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
-  ("0") ("1") ("2") ("3") ("4")
-  ("5") ("6") ("7") ("8") ("9")
-  ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
-  ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
-  ("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"))
-
- (consonant
-  ("k" "க்")
-  ("~N" "ங்")
-  ("N^" "ங்")
-  ("ch" "ச்")
-  ("j" "ஜ்")
-  ("~n" "ஞ்")
-  ("JN" "ஞ்")
-  ("T" "ட்")
-  ("N" "ண்")
-  ("t" "த்")
-  ("n" "ந்")
-  ("nh" "ன்")
-  ("p" "ப்")
-  ("m" "ம்")
-  ("y" "ய்")
-  ("r" "ர்")
-  ("rh" "ற்")
-  ("l" "ல்")
-  ("L" "ள்")
-  ("ld" "ள்")
-  ("v" "வ்")
-  ("w" "வ்")
-  ("Sh" "ஷ்")
-  ("shh" "ஷ்")
-  ("s" "ஸ்")
-  ("h" "ஹ்")
-  ("GY" "ஜ்ஞ்")
-  ("dny" "ஜ்ஞ்")
-  ("x" "க்ஷ்"))
-
- (independent
-  ("a" "அ")
-  ("aa" "ஆ")
-  ("A" "ஆ")
-  ("i" "இ")
-  ("ii" "ஈ")
-  ("I" "ஈ")
-  ("u" "உ")
-  ("uu" "ஊ")
-  ("U" "ஊ")
-  ("E" "ஏ")
-  ("e" "எ")
-  ("ai" "ஐ")
-  ("O" "ஓ")
-  ("o" "ஒ")
-  ("au" "ஔ")
-  (".n" "ஂ")
-  ("M" "ஂ")
-  ("H" "ஃ")
-  (".h" "்")
-  ("1" "௧")
-  ("2" "௨")
-  ("3" "௩")
-  ("4" "௪")
-  ("5" "௫")
-  ("6" "௬")
-  ("7" "௭")
-  ("8" "௮")
-  ("9" "௯")
-  ("#" "்ர")
-  ("$" "ர்")
-  ("^" "த்ர")
-  ((S-\ ) "‌")
-  ((C-@) "‍"))
-
- (dependent
-  ("a" (delete @-) "")
-  ("aa" (delete @-) "ா")
-  ("A" (delete @-) "ா")
-  ("i" (delete @-) "ி")
-  ("ii" (delete @-) "ீ")
-  ("I" (delete @-) "ீ")
-  ("u" (delete @-) "ு")
-  ("uu" (delete @-) "ூ")
-  ("U" (delete @-) "ூ")
-  ("E" (delete @-) "ே")
-  ("e" (delete @-) "ெ")
-  ("ai" (delete @-) "ை")
-  ("O" (delete @-) "ோ")
-  ("o" (delete @-) "ொ")
-  ("au" (delete @-) "ௌ"))
-
- (return
-  ((Return)))
-
- (backspace
-  ((BackSpace) (undo))))
-
-(state
- (init
-  (starter (pushback 1) (shift intermediate)))
-
- (intermediate
-  (consonant (shift second))
-  (independent (shift finish))
-  (backspace)
-  (return (shift init))
-  (nil (shift init)))
-
- (second
-  (consonant)
-  (dependent (shift finish))
-  (backspace)
-  (return (shift init)))
-
- (finish
-  (return)
-  (t (shift init))))
-
-;; Local Variables:
-;; coding: utf-8
-;; mode: lisp
-;; End: