--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
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 \
zh-py.mim \
ko-han2.mim \
latin-post.mim \
+ syrc-phonetic.mim \
unicode.mim rfc1345.mim \
ispell.mim
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
(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?"
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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)))
--- /dev/null
+;; 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)))
(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>
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
--- /dev/null
+;; 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:
--- /dev/null
+;; 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:
+++ /dev/null
-;; 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:
+++ /dev/null
-;; 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: