From: ntakahas Date: Fri, 15 Oct 2004 04:45:09 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: REL-1-2-0~62 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=89a8617bdc71f5e2649d374b145a5f4d1f458bde;p=m17n%2Fm17n-db.git *** empty log message *** --- diff --git a/ARAB-OTF.flt b/ARAB-OTF.flt new file mode 100644 index 0000000..1c54011 --- /dev/null +++ b/ARAB-OTF.flt @@ -0,0 +1,223 @@ +;; ARABIC-OTF.flt -- Font Layout Table for Arabic OpenType font +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • ARABIC-OTF.flt +;;; +;;; For Arabic OpenType fonts to draw the Arabic script. + + +;; Step 0: Move Kazakh high hamza. + +(category + ;; p: high hamza carrier (p for positive) + ;; n: high hamza suppressor (n for negative) + ;; x: don't care + (0x0600 0x06FF ?x) + (0x0674 0x0678 ?p) + (0x0643 ?n) + (0x06AF ?n) + (0x06D5 ?n) + (0x200C ?x) + (0x200D ?x) + (0xFB50 0xFDFF ?X) ; Arabic Presentation Froms-A + (0xFE70 0xFEFC ?X) ; Arabic Presentation Froms-B + ) + +(generator + (0 + (cond + ;; If a presentation from is found, draw the whole sequence as is. + (".*X.*" = *) + + (".*p.*" ; If a high hamza is found, + (cond + (".*n.*" ; and a suppressor exists, + rmhamza *) ; then remove the high hamza. + (0 ; Otherwise, move the high + 0x674 rmhamza *))) ; hamza to the beginning. + (0 = *))) ; If no high hamza, do nothing. + + (rmhamza + (cond + ((0x0674) ) + ((0x0675) 0x0627) + ((0x0676) 0x0648) + ((0x0677) 0x06C7) + ((0x0678) 0x0649) + ("." =)))) + +;; Step 1: ccmp + +(category + ;; D: Dual-joining (beh, teh, etc. & zwj) + ;; R: Right-joining (alef, dal, thal, reh, zain) + ;; U: Non-joining (Hamza, etc. & zwnj) + ;; T: Transparent (combining marks) + (0x060C 0x060F ?U) + (0x0610 0x0615 ?T) + (0x061B ?U) + (0x061F ?U) + (0x0621 ?U) + (0x0622 0x0623 ?R) + (0x0624 ?R) + (0x0625 ?R) + (0x0626 ?D) + (0x0627 ?R) + (0x0628 ?D) + (0x0629 ?R) + (0x062A 0x062E ?D) + (0x062F 0x0632 ?R) + (0x0633 0x0647 ?D) + (0x0648 ?R) + (0x0649 0x064A ?D) + (0x064B 0x0658 ?T) + (0x0660 0x066D ?U) + (0x066E 0x066F ?D) + (0x0670 ?T) + (0x0671 0x0673 ?R) + (0x0674 0x0678 ?U) + (0x0679 0x0687 ?D) + (0x0688 0x0699 ?R) + (0x069A 0x06C3 ?D) + (0x06C4 0x06CB ?R) + (0x06CC 0x06CE ?D) + (0x06CF ?R) + (0x06D0 0x06D3 ?D) + (0x06D4 ?U) + (0x06D5 ?R) + (0x06D6 0x06E4 ?T) + (0x06E5 0x06E6 ?U) + (0x06E7 0x06E8 ?T) + (0x06E9 ?U) + (0x06EA 0x06ED ?T) + (0x06EE 0x06EF ?R) + (0x06F0 0x06F9 ?U) + (0x06FA 0x06FC ?D) + (0x06FD 0x06FE ?U) + (0x06FF ?D) + (0x200C ?U) + (0x200D ?D) + (0xFB50 0xFDFF ?X) ; Arabic Presentation Froms-A + (0xFE70 0xFEFC ?X) ; Arabic Presentation Froms-B + ) + +;; (generator +;; (0 +;; otf:arab=ccmp)) + +;; Step 2: Initial, medial, or final. + +(generator + (0 + (cond + (".*X.*" (cond ("[DRUX]T*" < = * >) ("." =)) *) + + ("D.*" + (cond + ("(.)(T*)([DR].*)" + < + (1 otf:arab=init) + (2 = *) + > + (3 join)) + ("(.)(T*)(.*)" ; == (D)(T*)(U.*) + < + (1 otf:arab=isol) + (2 = *) + > + (3 disjoin)))) + + ("([RU])(T*)(.*)" + < + (1 otf:arab=isol) + (2 = *) + > + (3 disjoin)) + + ("(T+)(.*)" + (1 = *) + (2 disjoin)))) + + (join + (cond + ("D.*" + (cond + ("(.)(T*)([DR].*)" + < + (1 otf:arab=medi) + (2 = *) + > + (3 join)) + ("(.)(T*)(.*)" ; == (D)(T*)(U.*) + < + (1 otf:arab=fina) + (2 = *) + > + (3 disjoin)))) + + ("(.)(T*)(.*)" + < + (1 otf:arab=fina) + (2 = *) + > + (3 disjoin)))) + + (disjoin + (cond + ("D.*" + (cond + ("(.)(T*)([DR].*)" + < + (1 otf:arab=init) + (2 = *) + > + (3 join)) + ("(.)(T*)(.*)" ; == (D)(T*)(U.*) + < + (1 otf:arab=isol) + (2 = *) + > + (3 disjoin)))) + + ("(.)(T*)(.*)" ; == ([RU])(T*)(.*) + < + (1 otf:arab=isol) + (2 = *) + > + (3 disjoin))))) + +;; Step 3: Other GSUB features (ligatures, etc.) + +(generator + (0 + otf:arab=rlig,calt,liga,dlig,cswh,mset)) + +;; Step 4: GPOS features. + +(generator + (0 + otf:arab=)) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/ARAB.flt b/ARAB.flt new file mode 100644 index 0000000..c02abd0 --- /dev/null +++ b/ARAB.flt @@ -0,0 +1,555 @@ +;; ARABIC.flt -- Font Layout Table for Arabic font (Unicode encoding) +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • ARABIC.flt +;;; +;;; For Arabic fonts of Unicode encoding to draw Arabic script. + +;; phase 1: Kazakh high hamza +(category + (0x0600 0x06FF ?x) + (0x0675 0x0678 ?p) + (0x0643 ?n) + (0x06AF ?n) + (0x06D5 ?n) + (0x200C ?x) + (0x200D ?x) + (0xFB50 0xFDFF ?x) ; Arabic Presentation Froms-A + (0xFE70 0xFEFC ?x) ; Arabic Presentation Froms-B + ) + +(generator + (0 + (cond + (".*p.*" + (cond + (".*n.*" + rmhamza *) + ("(.)(.*)" + (1 < 0x0674 rmhamza >) + (2 rmhamza *)))) + (0 = *))) + + (rmhamza + (cond + ((0x0675) 0x0627) + ((0x0676) 0x0648) + ((0x0677) 0x06C7) + ((0x0678) 0x0649) + ("." =)))) + +;; phase 2: ligatures +(category + (0x0600 0x06FF ?x) ; general + (0x0622 ?a) ; alef madda + (0x0623 ?b) ; alef hamza above + (0x0625 ?c) ; alef hamza below + (0x0627 ?d) ; alef + (0x0644 ?l) ; lam + (0x064B 0x0655 ?t) ; combinings + (0x0670 ?t) ; combining + (0x06D6 0x06ED ?t) ; combinings + (0x06E5 ?x) + (0x06E6 ?x) + (0x06E9 ?x) + (0x200C ?x) + (0x200D ?x) + (0xFB50 0xFDFF ?x) + (0xFE70 0xFEFC ?x) + ) + +(generator + (0 + (cond + ("l(t*)a(t*)" + 0xFEF5 + (1 = *) + (2 = *)) + ("l(t*)b(t*)" + 0xFEF7 + (1 = *) + (2 = *)) + ("l(t*)c(t*)" + 0xFEF9 + (1 = *) + (2 = *)) + ("l(t*)d(t*)" + 0xFEFB + (1 = *) + (2 = *)) + ("." + =)) + *)) + +;; phase 3: joining +(category + ;; D: Dual-joining (beh, teh, etc. & zwj) + ;; R: Right-joining (alef, dal, thal, reh, zain) + ;; U: Non-joining (Hamza, etc. & zwnj) + ;; T: Transparent (combining marks) + ;; P: Already in Arabic Presentation Form A & B + (0x060C 0x060F ?U) + (0x0610 0x0615 ?T) + (0x061B ?U) + (0x061F ?U) + (0x0621 ?U) + (0x0622 0x0623 ?R) + (0x0624 ?R) + (0x0625 ?R) + (0x0626 ?D) + (0x0627 ?R) + (0x0628 ?D) + (0x0629 ?R) + (0x062A 0x062E ?D) + (0x062F 0x0632 ?R) + (0x0633 0x0647 ?D) + (0x0648 ?R) + (0x0649 0x064A ?D) + (0x064B 0x0658 ?T) + (0x0660 0x066D ?U) + (0x066E 0x066F ?D) + (0x0670 ?T) + (0x0671 0x0673 ?R) + (0x0674 0x0678 ?U) + (0x0679 0x0687 ?D) + (0x0688 0x0699 ?R) + (0x069A 0x06C3 ?D) + (0x06C4 0x06CB ?R) + (0x06CC 0x06CE ?D) + (0x06CF ?R) + (0x06D0 0x06D3 ?D) + (0x06D4 ?U) + (0x06D5 ?R) + (0x06D6 0x06E4 ?T) + (0x06E5 0x06E6 ?U) + (0x06E7 0x06E8 ?T) + (0x06E9 ?U) + (0x06EA 0x06ED ?T) + (0x06EE 0x06EF ?R) + (0x06F0 0x06F9 ?U) + (0x06FA 0x06FC ?D) + (0x06FD 0x06FE ?U) + (0x06FF ?D) + (0xFB50 0xFDFF ?P) + (0xFE70 0xFEFC ?P) + (0xFEF5 ?R) + (0xFEF7 ?R) + (0xFEF9 ?R) + (0xFEFB ?R) + (0x200C ?U) + (0x200D ?D) + ) + +(generator + (0 + (cond + ("PT*" + = combining *) + + ("D[^P]*" + (cond + ("(.)(T*)([DR].*)" + (1 initial) + (2 combining *) + (3 join)) + ("(.)(T*)(.*)" ; == (D)(T*)(U.*) + (1 isolated) + (2 combining *) + (3 disjoin)))) + + ("([RU])(T*)([^P]*)" + (1 isolated) + (2 combining *) + (3 disjoin)) + + ("(T+)([^P]*)" + (1 = *) + (2 disjoin))) + + *) + + (join + (cond + ("D.*" + (cond + ("(.)(T*)([DR].*)" + (1 medial) + (2 combining *) + (3 join)) + ("(.)(T*)(.*)" ; == (D)(T*)(U.*) + (1 final) + (2 combining *) + (3 disjoin)))) + + ("(.)(T*)(.*)" ; == (R)(T*)(.*) + (1 final) + (2 combining *) + (3 disjoin)))) + + (disjoin + (cond + ("D.*" + (cond + ("(.)(T*)([DR].*)" + (1 initial) + (2 combining *) + (3 join)) + ("(.)(T*)(.*)" ; == (D)(T*)(U.*) + (1 isolated) + (2 combining *) + (3 disjoin)))) + + ("(.)(T*)(.*)" ; == ([RU])(T*)(.*) + (1 isolated) + (2 combining *) + (3 disjoin)))) + + (isolated + (cond + ((range 0x060C 0x060F) =) + ((0x061B) =) + ((0x061F) =) + ((0x0621) 0xFE80) + ((0x0622) 0xFE81) + ((0x0623) 0xFE83) + ((0x0624) 0xFE85) + ((0x0625) 0xFE87) + ((0x0626) 0xFE89) + ((0x0627) 0xFE8D) + ((0x0628) 0xFE8F) + ((0x0629) 0xFE93) + ((0x062A) 0xFE95) + ((0x062B) 0xFE99) + ((0x062C) 0xFE9D) + ((0x062D) 0xFEA1) + ((0x062E) 0xFEA5) + ((0x062F) 0xFEA9) + ((0x0630) 0xFEAB) + ((0x0631) 0xFEAD) + ((0x0632) 0xFEAF) + ((0x0633) 0xFEB1) + ((0x0634) 0xFEB5) + ((0x0635) 0xFEB9) + ((0x0636) 0xFEBD) + ((0x0637) 0xFEC1) + ((0x0638) 0xFEC5) + ((0x0639) 0xFEC9) + ((0x0640) 0x0640) + ((0x063A) 0xFECD) + ((0x0641) 0xFED1) + ((0x0642) 0xFED5) + ((0x0643) 0xFED9) + ((0x0644) 0xFEDD) + ((0x0645) 0xFEE1) + ((0x0646) 0xFEE5) + ((0x0647) 0xFEE9) + ((0x0648) 0xFEED) + ((0x0649) 0xFEEF) + ((0x064A) 0xFEF1) + ((range 0x0660 0x066D) =) + ((0x0671) 0xFB50) + ((0x0674) =) + ((0x0677) 0xFBDD) + ((0x0679) 0xFB66) + ((0x067A) 0xFB5E) + ((0x067B) 0xFB52) + ((0x067E) 0xFB56) + ((0x067F) 0xFB62) + ((0x0680) 0xFB5A) + ((0x0683) 0xFB76) + ((0x0684) 0xFB72) + ((0x0686) 0xFB7A) + ((0x0687) 0xFB7E) + ((0x0688) 0xFB88) + ((0x068C) 0xFB84) + ((0x068D) 0xFB82) + ((0x068E) 0xFB86) + ((0x0691) 0xFB8C) + ((0x0698) 0xFB8A) + ((0x06A4) 0xFB6A) + ((0x06A6) 0xFB6E) + ((0x06A9) 0xFB8E) + ((0x06AD) 0xFBD3) + ((0x06AF) 0xFB92) + ((0x06B1) 0xFB9A) + ((0x06B3) 0xFB96) + ((0x06BA) 0xFB9E) + ((0x06BB) 0xFBA0) + ((0x06BE) 0xFBAA) + ((0x06C0) 0xFBA4) + ((0x06C1) 0xFBA6) + ((0x06C5) 0xFBE0) + ((0x06C6) 0xFBD9) + ((0x06C7) 0xFBD7) + ((0x06C8) 0xFBDB) + ((0x06C9) 0xFBE2) + ((0x06CB) 0xFBDE) + ((0x06CC) 0xFBFC) + ((0x06D0) 0xFBE4) + ((0x06D2) 0xFBAE) + ((0x06D3) 0xFBB0) + ((0x06D4) =) + ((0x06D5) 0xFEE9) + ((0x06E5) =) + ((0x06E6) =) + ((0x06E9) =) + ((range 0x06F0 0x06F9) =) + ((0x06FD) =) + ((0x06FE) =) + ((0xFEF5) =) + ((0xFEF7) =) + ((0xFEF9) =) + ((0xFEFB) =) + ((0x200C) =) + ((0x200D) =) + )) + + (final + (cond + ((0x0622) 0xFE82) + ((0x0623) 0xFE84) + ((0x0624) 0xFE86) + ((0x0625) 0xFE88) + ((0x0626) 0xFE8A) + ((0x0627) 0xFE8E) + ((0x0628) 0xFE90) + ((0x0629) 0xFE94) + ((0x062A) 0xFE96) + ((0x062B) 0xFE9A) + ((0x062C) 0xFE9E) + ((0x062D) 0xFEA2) + ((0x062E) 0xFEA6) + ((0x062F) 0xFEAA) + ((0x0630) 0xFEAC) + ((0x0631) 0xFEAE) + ((0x0632) 0xFEB0) + ((0x0633) 0xFEB2) + ((0x0634) 0xFEB6) + ((0x0635) 0xFEBA) + ((0x0636) 0xFEBE) + ((0x0637) 0xFEC2) + ((0x0638) 0xFEC6) + ((0x0639) 0xFECA) + ((0x0640) 0x0640) + ((0x063A) 0xFECE) + ((0x0641) 0xFED2) + ((0x0642) 0xFED6) + ((0x0643) 0xFEDA) + ((0x0644) 0xFEDE) + ((0x0645) 0xFEE2) + ((0x0646) 0xFEE6) + ((0x0647) 0xFEEA) + ((0x0648) 0xFEEE) + ((0x0649) 0xFEF0) + ((0x064A) 0xFEF2) + ((0x0671) 0xFB51) + ((0x0679) 0xFB67) + ((0x067A) 0xFB5F) + ((0x067B) 0xFB52) + ((0x067E) 0xFB57) + ((0x067F) 0xFB63) + ((0x0680) 0xFB5B) + ((0x0683) 0xFB77) + ((0x0684) 0xFB73) + ((0x0686) 0xFB7B) + ((0x0687) 0xFB7F) + ((0x0688) 0xFB89) + ((0x068C) 0xFB85) + ((0x068D) 0xFB83) + ((0x068E) 0xFB87) + ((0x0691) 0xFB8D) + ((0x0698) 0xFB8B) + ((0x06A4) 0xFB6B) + ((0x06A6) 0xFB6F) + ((0x06A9) 0xFB8F) + ((0x06AD) 0xFBD4) + ((0x06AF) 0xFB93) + ((0x06B1) 0xFB9B) + ((0x06B3) 0xFB97) + ((0x06BA) 0xFB9F) + ((0x06BB) 0xFBA1) + ((0x06BE) 0xFBAB) + ((0x06C0) 0xFBA5) + ((0x06C1) 0xFBA7) + ((0x06C5) 0xFBE1) + ((0x06C6) 0xFBDA) + ((0x06C7) 0xFBD8) + ((0x06C8) 0xFBDC) + ((0x06C9) 0xFBE3) + ((0x06CB) 0xFBDF) + ((0x06CC) 0xFBFD) + ((0x06D0) 0xFBE5) + ((0x06D2) 0xFBAF) + ((0x06D3) 0xFBB1) + ((0x06D5) 0xFEEA) + ((0xFEF5) 0xFEF6) + ((0xFEF7) 0xFEF8) + ((0xFEF9) 0xFEFA) + ((0xFEFB) 0xFEFC) + ((0x200C) =) + ((0x200D) =) + )) + + (initial + (cond + ((0x0626) 0xFE8B) + ((0x0628) 0xFE91) + ((0x062A) 0xFE97) + ((0x062B) 0xFE9B) + ((0x062C) 0xFE9F) + ((0x062D) 0xFEA3) + ((0x062E) 0xFEA7) + ((0x0633) 0xFEB3) + ((0x0634) 0xFEB7) + ((0x0635) 0xFEBB) + ((0x0636) 0xFEBF) + ((0x0637) 0xFEC3) + ((0x0638) 0xFEC7) + ((0x0639) 0xFECB) + ((0x0640) 0x0640) + ((0x063A) 0xFECF) + ((0x0641) 0xFED3) + ((0x0642) 0xFED7) + ((0x0643) 0xFEDB) + ((0x0644) 0xFEDF) + ((0x0645) 0xFEE3) + ((0x0646) 0xFEE7) + ((0x0647) 0xFEEB) + ((0x0649) 0xFBE8) + ((0x064A) 0xFEF3) + ((0x0679) 0xFB68) + ((0x067A) 0xFB60) + ((0x067B) 0xFB54) + ((0x067E) 0xFB58) + ((0x067F) 0xFB64) + ((0x0680) 0xFB5C) + ((0x0683) 0xFB78) + ((0x0684) 0xFB74) + ((0x0686) 0xFB7C) + ((0x0687) 0xFB80) + ((0x06A4) 0xFB6C) + ((0x06A6) 0xFB70) + ((0x06A9) 0xFB90) + ((0x06AD) 0xFBD5) + ((0x06AF) 0xFB94) + ((0x06B1) 0xFB9C) + ((0x06B3) 0xFB98) + ((0x06BA) 0xFEE7) + ((0x06BB) 0xFBA2) + ((0x06BE) 0xFBAC) + ((0x06C1) 0xFBA8) + ((0x06CC) 0xFBFE) + ((0x06D0) 0xFBE6) + ((0x200C) =) + ((0x200D) =) + )) + + (medial + (cond + ((0x0626) 0xFE8C) + ((0x0628) 0xFE92) + ((0x062A) 0xFE98) + ((0x062B) 0xFE9C) + ((0x062C) 0xFEA0) + ((0x062D) 0xFEA4) + ((0x062E) 0xFEA8) + ((0x0633) 0xFEB4) + ((0x0634) 0xFEB8) + ((0x0635) 0xFEBC) + ((0x0636) 0xFEC0) + ((0x0637) 0xFEC4) + ((0x0638) 0xFEC8) + ((0x0639) 0xFECC) + ((0x0640) 0x0640) + ((0x063A) 0xFED0) + ((0x0641) 0xFED4) + ((0x0642) 0xFED8) + ((0x0643) 0xFEDC) + ((0x0644) 0xFEE0) + ((0x0645) 0xFEE4) + ((0x0646) 0xFEE8) + ((0x0647) 0xFEEC) + ((0x0649) 0xFBE9) + ((0x064A) 0xFEF4) + ((0x0679) 0xFB69) + ((0x067A) 0xFB61) + ((0x067B) 0xFB55) + ((0x067E) 0xFB59) + ((0x067F) 0xFB65) + ((0x0680) 0xFB5D) + ((0x0683) 0xFB79) + ((0x0684) 0xFB75) + ((0x0686) 0xFB7D) + ((0x0687) 0xFB81) + ((0x06A4) 0xFB6D) + ((0x06A6) 0xFB71) + ((0x06A9) 0xFB91) + ((0x06AD) 0xFBD6) + ((0x06AF) 0xFB95) + ((0x06B1) 0xFB9D) + ((0x06B3) 0xFB99) + ((0x06BA) 0xFEE8) + ((0x06BB) 0xFBA3) + ((0x06BE) 0xFBAD) + ((0x06C1) 0xFBA9) + ((0x06CC) 0xFBFF) + ((0x06D0) 0xFBE7) + ((0x200C) =) + ((0x200D) =) + )) + + (combining + (cond + ((0x0651 0x0650) tc+bc 0x064E tc+bc 0x0651) ; shadda + kasra + ((0x0651 0x064D) tc+bc 0x064B tc+bc 0x0651) ; shadda + kasratan + ((range 0x0610 0x0615) tc+bc =) + ((0x064B) tc+bc =) + ((0x064C) tc+bc =) + ((0x064D) bc-tc =) + ((0x064E) tc+bc =) + ((0x064F) tc+bc =) + ((0x0650) bc-tc =) + ((range 0x0651 0x0654) tc+bc =) + ((0x0655) bc-tc =) + ((0x0656) bc-tc =) + ((0x0657) tc+bc =) + ((0x0658) tc+bc =) + ((0x0670) tc+bc =) + ((range 0x06D6 0x06DC) tc+bc =) + ((range 0x06DF 0x06E2) tc+bc =) + ((0x06E3) bc-tc =) + ((0x06E4) tc+bc =) + ((0x06E7) tc+bc =) + ((0x06E8) tc+bc =) + ((0x06EA) bc-tc =) + ((0x06EB) tc+bc =) + ((0x06EC) tc+bc =) + ((0x06ED) bc-tc =) + ((0x200C) =) + ((0x200D) =) + )) + ) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/ARABIC-OTF.flt b/ARABIC-OTF.flt deleted file mode 100644 index bf37a15..0000000 --- a/ARABIC-OTF.flt +++ /dev/null @@ -1,223 +0,0 @@ -;; ARABIC-OTF.flt -- Font Layout Table for Arabic OpenType font -;; Copyright (C) 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • ARABIC-OTF.flt -;;; -;;; For Arabic OpenType fonts to draw the Arabic script. - - -;; Step 0: Move Kazakh high hamza. - -(category - ;; p: high hamza carrier (p for positive) - ;; n: high hamza suppressor (n for negative) - ;; x: don't care - (0x0600 0x06FF ?x) - (0x0674 0x0678 ?p) - (0x0643 ?n) - (0x06AF ?n) - (0x06D5 ?n) - (0x200C ?x) - (0x200D ?x) - (0xFB50 0xFDFF ?X) ; Arabic Presentation Froms-A - (0xFE70 0xFEFC ?X) ; Arabic Presentation Froms-B - ) - -(generator - (0 - (cond - ;; If a presentation from is found, draw the whole sequence as is. - (".*X.*" = *) - - (".*p.*" ; If a high hamza is found, - (cond - (".*n.*" ; and a suppressor exists, - rmhamza *) ; then remove the high hamza. - (0 ; Otherwise, move the high - 0x674 rmhamza *))) ; hamza to the beginning. - (0 = *))) ; If no high hamza, do nothing. - - (rmhamza - (cond - ((0x0674) ) - ((0x0675) 0x0627) - ((0x0676) 0x0648) - ((0x0677) 0x06C7) - ((0x0678) 0x0649) - ("." =)))) - -;; Step 1: ccmp - -;; (generator -;; (0 -;; otf:arab=ccmp)) - -;; Step 2: Initial, medial, or final. - -(category - ;; D: Dual-joining (beh, teh, etc. & zwj) - ;; R: Right-joining (alef, dal, thal, reh, zain) - ;; U: Non-joining (Hamza, etc. & zwnj) - ;; T: Transparent (combining marks) - (0x060C 0x060F ?U) - (0x0610 0x0615 ?T) - (0x061B ?U) - (0x061F ?U) - (0x0621 ?U) - (0x0622 0x0623 ?R) - (0x0624 ?R) - (0x0625 ?R) - (0x0626 ?D) - (0x0627 ?R) - (0x0628 ?D) - (0x0629 ?R) - (0x062A 0x062E ?D) - (0x062F 0x0632 ?R) - (0x0633 0x0647 ?D) - (0x0648 ?R) - (0x0649 0x064A ?D) - (0x064B 0x0658 ?T) - (0x0660 0x066D ?U) - (0x066E 0x066F ?D) - (0x0670 ?T) - (0x0671 0x0673 ?R) - (0x0674 0x0678 ?U) - (0x0679 0x0687 ?D) - (0x0688 0x0699 ?R) - (0x069A 0x06C3 ?D) - (0x06C4 0x06CB ?R) - (0x06CC 0x06CE ?D) - (0x06CF ?R) - (0x06D0 0x06D3 ?D) - (0x06D4 ?U) - (0x06D5 ?R) - (0x06D6 0x06E4 ?T) - (0x06E5 0x06E6 ?U) - (0x06E7 0x06E8 ?T) - (0x06E9 ?U) - (0x06EA 0x06ED ?T) - (0x06EE 0x06EF ?R) - (0x06F0 0x06F9 ?U) - (0x06FA 0x06FC ?D) - (0x06FD 0x06FE ?U) - (0x06FF ?D) - (0x200C ?U) - (0x200D ?D) - (0xFB50 0xFDFF ?X) ; Arabic Presentation Froms-A - (0xFE70 0xFEFC ?X) ; Arabic Presentation Froms-B - ) - -(generator - (0 - (cond - (".*X.*" (cond ("[DRUX]T*" < = * >) ("." =)) *) - - ("D.*" - (cond - ("(.)(T*)([DR].*)" - < - (1 otf:arab=init) - (2 = *) - > - (3 join)) - ("(.)(T*)(.*)" ; == (D)(T*)(U.*) - < - (1 otf:arab=isol) - (2 = *) - > - (3 disjoin)))) - - ("([RU])(T*)(.*)" - < - (1 otf:arab=isol) - (2 = *) - > - (3 disjoin)) - - ("(T+)(.*)" - (1 = *) - (2 disjoin)))) - - (join - (cond - ("D.*" - (cond - ("(.)(T*)([DR].*)" - < - (1 otf:arab=medi) - (2 = *) - > - (3 join)) - ("(.)(T*)(.*)" ; == (D)(T*)(U.*) - < - (1 otf:arab=fina) - (2 = *) - > - (3 disjoin)))) - - ("(.)(T*)(.*)" - < - (1 otf:arab=fina) - (2 = *) - > - (3 disjoin)))) - - (disjoin - (cond - ("D.*" - (cond - ("(.)(T*)([DR].*)" - < - (1 otf:arab=init) - (2 = *) - > - (3 join)) - ("(.)(T*)(.*)" ; == (D)(T*)(U.*) - < - (1 otf:arab=isol) - (2 = *) - > - (3 disjoin)))) - - ("(.)(T*)(.*)" ; == ([RU])(T*)(.*) - < - (1 otf:arab=isol) - (2 = *) - > - (3 disjoin))))) - -;; Step 3: Other GSUB features (ligatures, etc.) - -(generator - (0 - otf:arab=rlig,calt,liga,dlig,cswh,mset)) - -;; Step 4: GPOS features. - -(generator - (0 - otf:arab=)) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/ARABIC.flt b/ARABIC.flt deleted file mode 100644 index c02abd0..0000000 --- a/ARABIC.flt +++ /dev/null @@ -1,555 +0,0 @@ -;; ARABIC.flt -- Font Layout Table for Arabic font (Unicode encoding) -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • ARABIC.flt -;;; -;;; For Arabic fonts of Unicode encoding to draw Arabic script. - -;; phase 1: Kazakh high hamza -(category - (0x0600 0x06FF ?x) - (0x0675 0x0678 ?p) - (0x0643 ?n) - (0x06AF ?n) - (0x06D5 ?n) - (0x200C ?x) - (0x200D ?x) - (0xFB50 0xFDFF ?x) ; Arabic Presentation Froms-A - (0xFE70 0xFEFC ?x) ; Arabic Presentation Froms-B - ) - -(generator - (0 - (cond - (".*p.*" - (cond - (".*n.*" - rmhamza *) - ("(.)(.*)" - (1 < 0x0674 rmhamza >) - (2 rmhamza *)))) - (0 = *))) - - (rmhamza - (cond - ((0x0675) 0x0627) - ((0x0676) 0x0648) - ((0x0677) 0x06C7) - ((0x0678) 0x0649) - ("." =)))) - -;; phase 2: ligatures -(category - (0x0600 0x06FF ?x) ; general - (0x0622 ?a) ; alef madda - (0x0623 ?b) ; alef hamza above - (0x0625 ?c) ; alef hamza below - (0x0627 ?d) ; alef - (0x0644 ?l) ; lam - (0x064B 0x0655 ?t) ; combinings - (0x0670 ?t) ; combining - (0x06D6 0x06ED ?t) ; combinings - (0x06E5 ?x) - (0x06E6 ?x) - (0x06E9 ?x) - (0x200C ?x) - (0x200D ?x) - (0xFB50 0xFDFF ?x) - (0xFE70 0xFEFC ?x) - ) - -(generator - (0 - (cond - ("l(t*)a(t*)" - 0xFEF5 - (1 = *) - (2 = *)) - ("l(t*)b(t*)" - 0xFEF7 - (1 = *) - (2 = *)) - ("l(t*)c(t*)" - 0xFEF9 - (1 = *) - (2 = *)) - ("l(t*)d(t*)" - 0xFEFB - (1 = *) - (2 = *)) - ("." - =)) - *)) - -;; phase 3: joining -(category - ;; D: Dual-joining (beh, teh, etc. & zwj) - ;; R: Right-joining (alef, dal, thal, reh, zain) - ;; U: Non-joining (Hamza, etc. & zwnj) - ;; T: Transparent (combining marks) - ;; P: Already in Arabic Presentation Form A & B - (0x060C 0x060F ?U) - (0x0610 0x0615 ?T) - (0x061B ?U) - (0x061F ?U) - (0x0621 ?U) - (0x0622 0x0623 ?R) - (0x0624 ?R) - (0x0625 ?R) - (0x0626 ?D) - (0x0627 ?R) - (0x0628 ?D) - (0x0629 ?R) - (0x062A 0x062E ?D) - (0x062F 0x0632 ?R) - (0x0633 0x0647 ?D) - (0x0648 ?R) - (0x0649 0x064A ?D) - (0x064B 0x0658 ?T) - (0x0660 0x066D ?U) - (0x066E 0x066F ?D) - (0x0670 ?T) - (0x0671 0x0673 ?R) - (0x0674 0x0678 ?U) - (0x0679 0x0687 ?D) - (0x0688 0x0699 ?R) - (0x069A 0x06C3 ?D) - (0x06C4 0x06CB ?R) - (0x06CC 0x06CE ?D) - (0x06CF ?R) - (0x06D0 0x06D3 ?D) - (0x06D4 ?U) - (0x06D5 ?R) - (0x06D6 0x06E4 ?T) - (0x06E5 0x06E6 ?U) - (0x06E7 0x06E8 ?T) - (0x06E9 ?U) - (0x06EA 0x06ED ?T) - (0x06EE 0x06EF ?R) - (0x06F0 0x06F9 ?U) - (0x06FA 0x06FC ?D) - (0x06FD 0x06FE ?U) - (0x06FF ?D) - (0xFB50 0xFDFF ?P) - (0xFE70 0xFEFC ?P) - (0xFEF5 ?R) - (0xFEF7 ?R) - (0xFEF9 ?R) - (0xFEFB ?R) - (0x200C ?U) - (0x200D ?D) - ) - -(generator - (0 - (cond - ("PT*" - = combining *) - - ("D[^P]*" - (cond - ("(.)(T*)([DR].*)" - (1 initial) - (2 combining *) - (3 join)) - ("(.)(T*)(.*)" ; == (D)(T*)(U.*) - (1 isolated) - (2 combining *) - (3 disjoin)))) - - ("([RU])(T*)([^P]*)" - (1 isolated) - (2 combining *) - (3 disjoin)) - - ("(T+)([^P]*)" - (1 = *) - (2 disjoin))) - - *) - - (join - (cond - ("D.*" - (cond - ("(.)(T*)([DR].*)" - (1 medial) - (2 combining *) - (3 join)) - ("(.)(T*)(.*)" ; == (D)(T*)(U.*) - (1 final) - (2 combining *) - (3 disjoin)))) - - ("(.)(T*)(.*)" ; == (R)(T*)(.*) - (1 final) - (2 combining *) - (3 disjoin)))) - - (disjoin - (cond - ("D.*" - (cond - ("(.)(T*)([DR].*)" - (1 initial) - (2 combining *) - (3 join)) - ("(.)(T*)(.*)" ; == (D)(T*)(U.*) - (1 isolated) - (2 combining *) - (3 disjoin)))) - - ("(.)(T*)(.*)" ; == ([RU])(T*)(.*) - (1 isolated) - (2 combining *) - (3 disjoin)))) - - (isolated - (cond - ((range 0x060C 0x060F) =) - ((0x061B) =) - ((0x061F) =) - ((0x0621) 0xFE80) - ((0x0622) 0xFE81) - ((0x0623) 0xFE83) - ((0x0624) 0xFE85) - ((0x0625) 0xFE87) - ((0x0626) 0xFE89) - ((0x0627) 0xFE8D) - ((0x0628) 0xFE8F) - ((0x0629) 0xFE93) - ((0x062A) 0xFE95) - ((0x062B) 0xFE99) - ((0x062C) 0xFE9D) - ((0x062D) 0xFEA1) - ((0x062E) 0xFEA5) - ((0x062F) 0xFEA9) - ((0x0630) 0xFEAB) - ((0x0631) 0xFEAD) - ((0x0632) 0xFEAF) - ((0x0633) 0xFEB1) - ((0x0634) 0xFEB5) - ((0x0635) 0xFEB9) - ((0x0636) 0xFEBD) - ((0x0637) 0xFEC1) - ((0x0638) 0xFEC5) - ((0x0639) 0xFEC9) - ((0x0640) 0x0640) - ((0x063A) 0xFECD) - ((0x0641) 0xFED1) - ((0x0642) 0xFED5) - ((0x0643) 0xFED9) - ((0x0644) 0xFEDD) - ((0x0645) 0xFEE1) - ((0x0646) 0xFEE5) - ((0x0647) 0xFEE9) - ((0x0648) 0xFEED) - ((0x0649) 0xFEEF) - ((0x064A) 0xFEF1) - ((range 0x0660 0x066D) =) - ((0x0671) 0xFB50) - ((0x0674) =) - ((0x0677) 0xFBDD) - ((0x0679) 0xFB66) - ((0x067A) 0xFB5E) - ((0x067B) 0xFB52) - ((0x067E) 0xFB56) - ((0x067F) 0xFB62) - ((0x0680) 0xFB5A) - ((0x0683) 0xFB76) - ((0x0684) 0xFB72) - ((0x0686) 0xFB7A) - ((0x0687) 0xFB7E) - ((0x0688) 0xFB88) - ((0x068C) 0xFB84) - ((0x068D) 0xFB82) - ((0x068E) 0xFB86) - ((0x0691) 0xFB8C) - ((0x0698) 0xFB8A) - ((0x06A4) 0xFB6A) - ((0x06A6) 0xFB6E) - ((0x06A9) 0xFB8E) - ((0x06AD) 0xFBD3) - ((0x06AF) 0xFB92) - ((0x06B1) 0xFB9A) - ((0x06B3) 0xFB96) - ((0x06BA) 0xFB9E) - ((0x06BB) 0xFBA0) - ((0x06BE) 0xFBAA) - ((0x06C0) 0xFBA4) - ((0x06C1) 0xFBA6) - ((0x06C5) 0xFBE0) - ((0x06C6) 0xFBD9) - ((0x06C7) 0xFBD7) - ((0x06C8) 0xFBDB) - ((0x06C9) 0xFBE2) - ((0x06CB) 0xFBDE) - ((0x06CC) 0xFBFC) - ((0x06D0) 0xFBE4) - ((0x06D2) 0xFBAE) - ((0x06D3) 0xFBB0) - ((0x06D4) =) - ((0x06D5) 0xFEE9) - ((0x06E5) =) - ((0x06E6) =) - ((0x06E9) =) - ((range 0x06F0 0x06F9) =) - ((0x06FD) =) - ((0x06FE) =) - ((0xFEF5) =) - ((0xFEF7) =) - ((0xFEF9) =) - ((0xFEFB) =) - ((0x200C) =) - ((0x200D) =) - )) - - (final - (cond - ((0x0622) 0xFE82) - ((0x0623) 0xFE84) - ((0x0624) 0xFE86) - ((0x0625) 0xFE88) - ((0x0626) 0xFE8A) - ((0x0627) 0xFE8E) - ((0x0628) 0xFE90) - ((0x0629) 0xFE94) - ((0x062A) 0xFE96) - ((0x062B) 0xFE9A) - ((0x062C) 0xFE9E) - ((0x062D) 0xFEA2) - ((0x062E) 0xFEA6) - ((0x062F) 0xFEAA) - ((0x0630) 0xFEAC) - ((0x0631) 0xFEAE) - ((0x0632) 0xFEB0) - ((0x0633) 0xFEB2) - ((0x0634) 0xFEB6) - ((0x0635) 0xFEBA) - ((0x0636) 0xFEBE) - ((0x0637) 0xFEC2) - ((0x0638) 0xFEC6) - ((0x0639) 0xFECA) - ((0x0640) 0x0640) - ((0x063A) 0xFECE) - ((0x0641) 0xFED2) - ((0x0642) 0xFED6) - ((0x0643) 0xFEDA) - ((0x0644) 0xFEDE) - ((0x0645) 0xFEE2) - ((0x0646) 0xFEE6) - ((0x0647) 0xFEEA) - ((0x0648) 0xFEEE) - ((0x0649) 0xFEF0) - ((0x064A) 0xFEF2) - ((0x0671) 0xFB51) - ((0x0679) 0xFB67) - ((0x067A) 0xFB5F) - ((0x067B) 0xFB52) - ((0x067E) 0xFB57) - ((0x067F) 0xFB63) - ((0x0680) 0xFB5B) - ((0x0683) 0xFB77) - ((0x0684) 0xFB73) - ((0x0686) 0xFB7B) - ((0x0687) 0xFB7F) - ((0x0688) 0xFB89) - ((0x068C) 0xFB85) - ((0x068D) 0xFB83) - ((0x068E) 0xFB87) - ((0x0691) 0xFB8D) - ((0x0698) 0xFB8B) - ((0x06A4) 0xFB6B) - ((0x06A6) 0xFB6F) - ((0x06A9) 0xFB8F) - ((0x06AD) 0xFBD4) - ((0x06AF) 0xFB93) - ((0x06B1) 0xFB9B) - ((0x06B3) 0xFB97) - ((0x06BA) 0xFB9F) - ((0x06BB) 0xFBA1) - ((0x06BE) 0xFBAB) - ((0x06C0) 0xFBA5) - ((0x06C1) 0xFBA7) - ((0x06C5) 0xFBE1) - ((0x06C6) 0xFBDA) - ((0x06C7) 0xFBD8) - ((0x06C8) 0xFBDC) - ((0x06C9) 0xFBE3) - ((0x06CB) 0xFBDF) - ((0x06CC) 0xFBFD) - ((0x06D0) 0xFBE5) - ((0x06D2) 0xFBAF) - ((0x06D3) 0xFBB1) - ((0x06D5) 0xFEEA) - ((0xFEF5) 0xFEF6) - ((0xFEF7) 0xFEF8) - ((0xFEF9) 0xFEFA) - ((0xFEFB) 0xFEFC) - ((0x200C) =) - ((0x200D) =) - )) - - (initial - (cond - ((0x0626) 0xFE8B) - ((0x0628) 0xFE91) - ((0x062A) 0xFE97) - ((0x062B) 0xFE9B) - ((0x062C) 0xFE9F) - ((0x062D) 0xFEA3) - ((0x062E) 0xFEA7) - ((0x0633) 0xFEB3) - ((0x0634) 0xFEB7) - ((0x0635) 0xFEBB) - ((0x0636) 0xFEBF) - ((0x0637) 0xFEC3) - ((0x0638) 0xFEC7) - ((0x0639) 0xFECB) - ((0x0640) 0x0640) - ((0x063A) 0xFECF) - ((0x0641) 0xFED3) - ((0x0642) 0xFED7) - ((0x0643) 0xFEDB) - ((0x0644) 0xFEDF) - ((0x0645) 0xFEE3) - ((0x0646) 0xFEE7) - ((0x0647) 0xFEEB) - ((0x0649) 0xFBE8) - ((0x064A) 0xFEF3) - ((0x0679) 0xFB68) - ((0x067A) 0xFB60) - ((0x067B) 0xFB54) - ((0x067E) 0xFB58) - ((0x067F) 0xFB64) - ((0x0680) 0xFB5C) - ((0x0683) 0xFB78) - ((0x0684) 0xFB74) - ((0x0686) 0xFB7C) - ((0x0687) 0xFB80) - ((0x06A4) 0xFB6C) - ((0x06A6) 0xFB70) - ((0x06A9) 0xFB90) - ((0x06AD) 0xFBD5) - ((0x06AF) 0xFB94) - ((0x06B1) 0xFB9C) - ((0x06B3) 0xFB98) - ((0x06BA) 0xFEE7) - ((0x06BB) 0xFBA2) - ((0x06BE) 0xFBAC) - ((0x06C1) 0xFBA8) - ((0x06CC) 0xFBFE) - ((0x06D0) 0xFBE6) - ((0x200C) =) - ((0x200D) =) - )) - - (medial - (cond - ((0x0626) 0xFE8C) - ((0x0628) 0xFE92) - ((0x062A) 0xFE98) - ((0x062B) 0xFE9C) - ((0x062C) 0xFEA0) - ((0x062D) 0xFEA4) - ((0x062E) 0xFEA8) - ((0x0633) 0xFEB4) - ((0x0634) 0xFEB8) - ((0x0635) 0xFEBC) - ((0x0636) 0xFEC0) - ((0x0637) 0xFEC4) - ((0x0638) 0xFEC8) - ((0x0639) 0xFECC) - ((0x0640) 0x0640) - ((0x063A) 0xFED0) - ((0x0641) 0xFED4) - ((0x0642) 0xFED8) - ((0x0643) 0xFEDC) - ((0x0644) 0xFEE0) - ((0x0645) 0xFEE4) - ((0x0646) 0xFEE8) - ((0x0647) 0xFEEC) - ((0x0649) 0xFBE9) - ((0x064A) 0xFEF4) - ((0x0679) 0xFB69) - ((0x067A) 0xFB61) - ((0x067B) 0xFB55) - ((0x067E) 0xFB59) - ((0x067F) 0xFB65) - ((0x0680) 0xFB5D) - ((0x0683) 0xFB79) - ((0x0684) 0xFB75) - ((0x0686) 0xFB7D) - ((0x0687) 0xFB81) - ((0x06A4) 0xFB6D) - ((0x06A6) 0xFB71) - ((0x06A9) 0xFB91) - ((0x06AD) 0xFBD6) - ((0x06AF) 0xFB95) - ((0x06B1) 0xFB9D) - ((0x06B3) 0xFB99) - ((0x06BA) 0xFEE8) - ((0x06BB) 0xFBA3) - ((0x06BE) 0xFBAD) - ((0x06C1) 0xFBA9) - ((0x06CC) 0xFBFF) - ((0x06D0) 0xFBE7) - ((0x200C) =) - ((0x200D) =) - )) - - (combining - (cond - ((0x0651 0x0650) tc+bc 0x064E tc+bc 0x0651) ; shadda + kasra - ((0x0651 0x064D) tc+bc 0x064B tc+bc 0x0651) ; shadda + kasratan - ((range 0x0610 0x0615) tc+bc =) - ((0x064B) tc+bc =) - ((0x064C) tc+bc =) - ((0x064D) bc-tc =) - ((0x064E) tc+bc =) - ((0x064F) tc+bc =) - ((0x0650) bc-tc =) - ((range 0x0651 0x0654) tc+bc =) - ((0x0655) bc-tc =) - ((0x0656) bc-tc =) - ((0x0657) tc+bc =) - ((0x0658) tc+bc =) - ((0x0670) tc+bc =) - ((range 0x06D6 0x06DC) tc+bc =) - ((range 0x06DF 0x06E2) tc+bc =) - ((0x06E3) bc-tc =) - ((0x06E4) tc+bc =) - ((0x06E7) tc+bc =) - ((0x06E8) tc+bc =) - ((0x06EA) bc-tc =) - ((0x06EB) tc+bc =) - ((0x06EC) tc+bc =) - ((0x06ED) bc-tc =) - ((0x200C) =) - ((0x200D) =) - )) - ) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/BEN-OTF.flt b/BEN-OTF.flt deleted file mode 100644 index 20c9366..0000000 --- a/BEN-OTF.flt +++ /dev/null @@ -1,474 +0,0 @@ -;; BEN-OTF.flt -- Font Layout Table for Bengali OpenType font -;; Copyright (C) 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • BEN-OTF.flt -;;; -;;; For Bengali OpenType fonts to draw the Bengali script. Tested with -;;; MuktiNarrow.ttf -;;; and -;;; LikhanNormal.otf - -(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" - ;; says "it should be - ;; permissible for the Ya-phalla to be consistently formed by "ZWNJ - ;; + VIRAMA + YA". - ("([CRBY]n?N)(H)(Y)" - < | - (1 = *) - (3 =) - (2 =) - | >) - - ;; Case E : No explicit vowel nor modifier. If the syllable ends - ;; with a consonant, analyse it for reordering in the next step. - ;; Otherwise, just identify the syllable without changing anything. - ;;1 23 4 - ("(RH)?(([CRBY]n?H[NJ]?)*[CRBY]n?)(HN|HJ|H)?" - < | - (1 = =) - (2 set-marks) - (4 = *) - | >) - - ;; Case F : Syllables that begin with an independent vowel. An - ;; optional HYp sequence appears when this syllable represents the - ;; sound "a" in English "bat" (see the FAQ above). If it appears, - ;; we reorder the H and Y for the next step. - ("(V)(HYp)?([aA])?" - < | (1 =) (2 ("HY(p)" 0x09AF 0x09CD (1 =))) (3 =) | >) - - ("." =)) - *) - - ;; Set mark #1 (x) at the position where below consonants begin, and - ;; mark #2 (y) at the position to which below and above signs will be - ;; moved. - (set-marks - (cond - ;; Ending with Y. - ;;1 2 3 45 6 - ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*)(Y)" - (1 = *) ; prebase & base - 0x09FE ; mark #1 - (4 = *) ; below consonants - 0x09FF ; mark #2 - (6 =) ; YA - (3 =)) ; moved HASANT - ;; Ending with R or B. - ;;1 2 3 45 - ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*[RB])" - (1 = *) ; prebase & base - 0x09FE ; mark #1 - (4 = *) ; below consonants - (3 =) ; moved HASANT - 0x09FF) ; mark #2 - (".+" - = * - 0x09FE ; mark #1 - 0x09FF))) ; mark #2 - - ;; Split two-part dependent vowel signs for canonicalisation. - (split - (cond - ((0x09CB) 0x09C7 0x09BE) - ((0x09CC) 0x09C7 0x09D7))) - ) - -;; Step 2 : Move Reph and Matra if necessary. From now on, we care -;; only for those syllables that have been identified in Step 1. -(generator - (0 - (cond - ;; Special case: a single consonant and a Halant. - (" (.)xy(H[NJ]?) " - | - 0x09FE - (1 =) - (2 = *) - 0x09FE - |) - - ;; This is the most generic pattern. It follows Cases A, B, C and - ;; E in Step 1. Now Mark #1 is used to indicate the critical part - ;; that requires pre-base substitution in the following steps. - - ;; 1 2 3 4 5 6 7 8 9 10 - (" (RH)?([^ xy]+)x([^ y]*)y(YH)?(m)?(b)?(p)?(A)?(a)?(HN|HJ|H)? " - | - (5 =) ; [Mpre] - ;; Actually, the nukt feature is not necessary for Bengali because - ;; all the necessary Nukta forms are precomposed in the Unicode - ;; standard. Even if a Nukta consonant is given in the form of - ;; the combination of the base consonant and a Nukta sign, we can - ;; safely perform the composition here because it does not affect - ;; surrounding letters in the syllable. The Akhand ligature - ;; operation is also applied here, before applying the half form - ;; operation because the Mukti font generates Akhand ligatures - ;; directly from the "C H C" sequence, not via the half form. - 0x09FE ; begin Cpre & Cbase - (2 otf:beng=nukt,akhn) ; {Cpre + H} + Cbase - 0x09FE ; end Cpre & Cbase - (3 otf:beng=blwf) ; {Cbelow + H} - (6 =) ; [Mbelow] - (1 otf:beng=rphf) ; [Reph] - (8 =) ; [VMabove] - (4 otf:beng=pstf) ; [Cpost + H] - (7 =) ; [Mpost] - (9 =) ; [VMpost] - (10 = *) ; optional HASANT - |) - - ;; Syllables that begin with an independent vowel (following up - ;; Step 1, Case F). If a YH sequence exist, it is changed to the - ;; post-base form. Syllables of this type do not require further - ;; modification. - (" (V)(YH)(.*) " - | - (1 =) - (2 otf:beng=pstf) - (3 = *) - |) - - ;; Ya-phalaa (following up Step 1, Case D). Remove N and change YH - ;; to the post base form. Syllables of this type do not require - ;; further modification. - (" ([CBRY]n?)N(YH) " - | - (1 =) - (2 otf:beng=pstf) - |) - - ("." =)) - *)) - -;; Step 3 : Now only those syllables that contain the pseudo character -;; x require pre-base substition. This is the most complicated part -;; in this FLT. - -;; If the sequence "C1 H C2" makes ligature L12, L12 replaces the -;; original sequence. - -;; To test the availability of such a ligature, we try to generate it -;; using the pre-base substitute feature, then see whether succeeded -;; or not. In the case of failure, the pre-base feature does not -;; change the original sequence. - -;; To create a ligature, the "C1 H" part must be first converted into -;; the half form of C1. Creating the half form of a consonant always -;; succeeds. - -;; ligature(half(C1,H),C2) -;; ==> ligature(C1half,C2) -;; ==> L12 ; success -;; C1half C2 ; fail - -;; If the ligature is not available, the "C1 H" part must be converted -;; into the _Halant_ (not half) form of C1. However, there is no way -;; to reconvert C1half into C1halant nor to revert back to "C1 H". -;; Thus we duplicate the critical part in two different forms so that -;; we can select the appropriate one in the next step. The pseudo -;; character x is used to indicate the boundaries. - -;; ... C1 H C2 ... ==> ... x C1halant C2 x L12 x ... - -;; If the length of the L12 part is one, ligature generation was -;; successful. In this case we wipe out the duplicated C1halant and -;; C2. Otherwise we remove L12. - -;; In very few cases (I found only one in the Mukti font), the "C1 H" -;; part need to be converted into C1halant to make a ligature with C2. -;; So when try to generate a ligature form, we apply the GSUB features -;; "half", "haln" and "pres" in this order. - -(category - ;; C: consonant (excluding B, Y and R) - ;; H: HALANT - ;; N: ZWNJ (ZERO WIDTH NON-JOINER) - ;; J: ZWJ (ZERO WIDTH JOINER) - ;; E: ELSE - ;; - (0x200C ?N) ; ZWNJ - (0x200D ?J) ; ZWJ - (0x0964 0x0965 ?E) ; DANDA, DOUBLE DANDA - (0x0980 0x09FF ?E) ; ELSE - (0x09CD ?H) ; SIGN VIRAMA (HASANT) - (0x0995 ?K) ; LETTER KA - (0x09B7 ?S) ; LETTER SSA - (0x09A3 ?M) ; LETTER NNA - (0x09AE ?M) ; LETTER MA - (0x09FE ?x) ; mark #1 (internal use) - ) - -(generator - (0 - (cond - - ;; One pre-base and base. - ;; 1 23 4 5 6 - (" ([^x ]*)x((.H)([^NJ]))(H)?x([^ ]*) " - | - (1 = *) - 0x09FE ; x - (3 otf:beng=haln) ; C1halant - (4 =) ; C2 - 0x09FE ; x - (2 otf:beng=half,haln,pres) ; ligature result - 0x09FE ; x - (5 =) - (6 = *) - |) - - ;; One pre-base with ZWJ. According to the Unicode FAQ, the half - ;; form is forced in this case. So we fake as if ligature - ;; generation was failed. - (" ([^x ]*)x(.H)J(.)?x([^ ]*) " - | - (1 = *) - 0x09FE ; x - (2 otf:beng=half) ; C1half - (3 =) ; C2 - 0x09FE ; x - 0x09FD ; pseudo result - 0x09FD ; pseudo result - 0x09FE ; x - (4 = *) - |) - - ;; One pre-base possibly with ZWNJ. Similar to above. - (" ([^x ]*)x(.H)N?(.)?x([^ ]*) " - | - (1 = *) - 0x09FE ; x - (2 otf:beng=haln) ; C1halant - (3 =) ; C2 - 0x09FE ; x - 0x09FD ; pseudo result - 0x09FD ; pseudo result - 0x09FE ; x - (4 = *) - |) - - ;; Standalone base. There is nothing more to do. - (" ([^x ]*)x(.)x([^ ]*) " - | - (1 = *) - (2 =) - (3 = *) - |) - - ;; KA-SSA-NNA and KA-SSA-MA are the only pre-base ligatures that - ;; consist of three consonants. - ;; 1 23 4 5 6 7 - (" ([^x ]*)x((KH)(SH)(M))(H)?x([^ ]*) " - | - (1 = *) - 0x09FE ; x - (3 otf:beng=haln) ; KAhalant - (4 otf:beng=haln) ; SSAhalant - (5 =) ; NNA or MA - 0x09FE ; x - (2 otf:beng=half,haln,pres) ; ligature result - 0x09FE ; x - (6 =) - (7 = *) - |) - - ;; Two or more pre-bases plus base. Give up. Convert all - ;; pre-bases into halant form. - ;; 1 23 4 5 - (" ([^x ]*)x(([^x]H[JN]?)+)([^x])?x([^ ]*) " - | - (1 = *) - 0x09FE ; x - (2 force-haln) ; halant forms - (4 =) ; full form - 0x09FE ; x - 0x09FD ; pseudo result - 0x09FD ; pseudo result - 0x09FE ; x - (5 = *) - |) - - ("." =)) - *) - - ;; This is to remove ZWNJ and ZWJ. The half-form-force-effect of ZWJ - ;; is ignored. Sorry. - (force-haln - (cond - ("([^JN]*)[JN](.*)" - (1 otf:beng=haln) - (2 force-haln)) - (".+" - otf:beng=haln))) - ) - -;; Step 4 : Select the appropriate representation. Only those -;; syllables that contain the virtual character x require -;; modification. -(generator - (0 - (cond - ;; Only one glyph in the ligature section (between the second and - ;; the third x). It means a ligature was successfully generated. - ;; C1halant and C2 (between the first and second x) are removed. - (" ([^x ]*)x[^x]+x(.)x([^ ]*) " - | - (1 = *) - (2 =) - (3 = *) - |) - - ;; Otherwise halant and base forms are used. The failed ligature - ;; is removed. - (" ([^x ]*)x([^x]+)x[^x]+x([^ ]*) " - | - (1 = *) - (2 = *) - (3 = *) - |) - - ;; No need to care the other cases. - ("." =)) - *)) - -;; Step 5 : Select appropriate glyph variants for fine adjustments. -;; Now the syllable boundary marks are removed so that the final step -;; can find word boundaries. -(generator - (0 - (cond - (" ([^ ]+) " - (1 otf:beng=blws,abvs,psts,vatu)) - ("." - [ otf:beng=+ ] )) - *) - ) - -;; Step 6 : Word initial substitute. As the syllable boundaries have -;; been eliminated in the previous step, this rule is applied to a run -;; of Bengali glyphs, i.e. word by word. We finally apply the init -;; feature to the word initial gylphs to get the final result. -(generator - (0 - ("(.)(.*)" - (1 otf:beng=init) - (2 = *)))) - -;; Local Variables: -;; mode: emacs-lisp -;; End: diff --git a/BENG-OTF.flt b/BENG-OTF.flt new file mode 100644 index 0000000..20c9366 --- /dev/null +++ b/BENG-OTF.flt @@ -0,0 +1,474 @@ +;; BEN-OTF.flt -- Font Layout Table for Bengali OpenType font +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • BEN-OTF.flt +;;; +;;; For Bengali OpenType fonts to draw the Bengali script. Tested with +;;; MuktiNarrow.ttf +;;; and +;;; LikhanNormal.otf + +(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" + ;; says "it should be + ;; permissible for the Ya-phalla to be consistently formed by "ZWNJ + ;; + VIRAMA + YA". + ("([CRBY]n?N)(H)(Y)" + < | + (1 = *) + (3 =) + (2 =) + | >) + + ;; Case E : No explicit vowel nor modifier. If the syllable ends + ;; with a consonant, analyse it for reordering in the next step. + ;; Otherwise, just identify the syllable without changing anything. + ;;1 23 4 + ("(RH)?(([CRBY]n?H[NJ]?)*[CRBY]n?)(HN|HJ|H)?" + < | + (1 = =) + (2 set-marks) + (4 = *) + | >) + + ;; Case F : Syllables that begin with an independent vowel. An + ;; optional HYp sequence appears when this syllable represents the + ;; sound "a" in English "bat" (see the FAQ above). If it appears, + ;; we reorder the H and Y for the next step. + ("(V)(HYp)?([aA])?" + < | (1 =) (2 ("HY(p)" 0x09AF 0x09CD (1 =))) (3 =) | >) + + ("." =)) + *) + + ;; Set mark #1 (x) at the position where below consonants begin, and + ;; mark #2 (y) at the position to which below and above signs will be + ;; moved. + (set-marks + (cond + ;; Ending with Y. + ;;1 2 3 45 6 + ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*)(Y)" + (1 = *) ; prebase & base + 0x09FE ; mark #1 + (4 = *) ; below consonants + 0x09FF ; mark #2 + (6 =) ; YA + (3 =)) ; moved HASANT + ;; Ending with R or B. + ;;1 2 3 45 + ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*[RB])" + (1 = *) ; prebase & base + 0x09FE ; mark #1 + (4 = *) ; below consonants + (3 =) ; moved HASANT + 0x09FF) ; mark #2 + (".+" + = * + 0x09FE ; mark #1 + 0x09FF))) ; mark #2 + + ;; Split two-part dependent vowel signs for canonicalisation. + (split + (cond + ((0x09CB) 0x09C7 0x09BE) + ((0x09CC) 0x09C7 0x09D7))) + ) + +;; Step 2 : Move Reph and Matra if necessary. From now on, we care +;; only for those syllables that have been identified in Step 1. +(generator + (0 + (cond + ;; Special case: a single consonant and a Halant. + (" (.)xy(H[NJ]?) " + | + 0x09FE + (1 =) + (2 = *) + 0x09FE + |) + + ;; This is the most generic pattern. It follows Cases A, B, C and + ;; E in Step 1. Now Mark #1 is used to indicate the critical part + ;; that requires pre-base substitution in the following steps. + + ;; 1 2 3 4 5 6 7 8 9 10 + (" (RH)?([^ xy]+)x([^ y]*)y(YH)?(m)?(b)?(p)?(A)?(a)?(HN|HJ|H)? " + | + (5 =) ; [Mpre] + ;; Actually, the nukt feature is not necessary for Bengali because + ;; all the necessary Nukta forms are precomposed in the Unicode + ;; standard. Even if a Nukta consonant is given in the form of + ;; the combination of the base consonant and a Nukta sign, we can + ;; safely perform the composition here because it does not affect + ;; surrounding letters in the syllable. The Akhand ligature + ;; operation is also applied here, before applying the half form + ;; operation because the Mukti font generates Akhand ligatures + ;; directly from the "C H C" sequence, not via the half form. + 0x09FE ; begin Cpre & Cbase + (2 otf:beng=nukt,akhn) ; {Cpre + H} + Cbase + 0x09FE ; end Cpre & Cbase + (3 otf:beng=blwf) ; {Cbelow + H} + (6 =) ; [Mbelow] + (1 otf:beng=rphf) ; [Reph] + (8 =) ; [VMabove] + (4 otf:beng=pstf) ; [Cpost + H] + (7 =) ; [Mpost] + (9 =) ; [VMpost] + (10 = *) ; optional HASANT + |) + + ;; Syllables that begin with an independent vowel (following up + ;; Step 1, Case F). If a YH sequence exist, it is changed to the + ;; post-base form. Syllables of this type do not require further + ;; modification. + (" (V)(YH)(.*) " + | + (1 =) + (2 otf:beng=pstf) + (3 = *) + |) + + ;; Ya-phalaa (following up Step 1, Case D). Remove N and change YH + ;; to the post base form. Syllables of this type do not require + ;; further modification. + (" ([CBRY]n?)N(YH) " + | + (1 =) + (2 otf:beng=pstf) + |) + + ("." =)) + *)) + +;; Step 3 : Now only those syllables that contain the pseudo character +;; x require pre-base substition. This is the most complicated part +;; in this FLT. + +;; If the sequence "C1 H C2" makes ligature L12, L12 replaces the +;; original sequence. + +;; To test the availability of such a ligature, we try to generate it +;; using the pre-base substitute feature, then see whether succeeded +;; or not. In the case of failure, the pre-base feature does not +;; change the original sequence. + +;; To create a ligature, the "C1 H" part must be first converted into +;; the half form of C1. Creating the half form of a consonant always +;; succeeds. + +;; ligature(half(C1,H),C2) +;; ==> ligature(C1half,C2) +;; ==> L12 ; success +;; C1half C2 ; fail + +;; If the ligature is not available, the "C1 H" part must be converted +;; into the _Halant_ (not half) form of C1. However, there is no way +;; to reconvert C1half into C1halant nor to revert back to "C1 H". +;; Thus we duplicate the critical part in two different forms so that +;; we can select the appropriate one in the next step. The pseudo +;; character x is used to indicate the boundaries. + +;; ... C1 H C2 ... ==> ... x C1halant C2 x L12 x ... + +;; If the length of the L12 part is one, ligature generation was +;; successful. In this case we wipe out the duplicated C1halant and +;; C2. Otherwise we remove L12. + +;; In very few cases (I found only one in the Mukti font), the "C1 H" +;; part need to be converted into C1halant to make a ligature with C2. +;; So when try to generate a ligature form, we apply the GSUB features +;; "half", "haln" and "pres" in this order. + +(category + ;; C: consonant (excluding B, Y and R) + ;; H: HALANT + ;; N: ZWNJ (ZERO WIDTH NON-JOINER) + ;; J: ZWJ (ZERO WIDTH JOINER) + ;; E: ELSE + ;; + (0x200C ?N) ; ZWNJ + (0x200D ?J) ; ZWJ + (0x0964 0x0965 ?E) ; DANDA, DOUBLE DANDA + (0x0980 0x09FF ?E) ; ELSE + (0x09CD ?H) ; SIGN VIRAMA (HASANT) + (0x0995 ?K) ; LETTER KA + (0x09B7 ?S) ; LETTER SSA + (0x09A3 ?M) ; LETTER NNA + (0x09AE ?M) ; LETTER MA + (0x09FE ?x) ; mark #1 (internal use) + ) + +(generator + (0 + (cond + + ;; One pre-base and base. + ;; 1 23 4 5 6 + (" ([^x ]*)x((.H)([^NJ]))(H)?x([^ ]*) " + | + (1 = *) + 0x09FE ; x + (3 otf:beng=haln) ; C1halant + (4 =) ; C2 + 0x09FE ; x + (2 otf:beng=half,haln,pres) ; ligature result + 0x09FE ; x + (5 =) + (6 = *) + |) + + ;; One pre-base with ZWJ. According to the Unicode FAQ, the half + ;; form is forced in this case. So we fake as if ligature + ;; generation was failed. + (" ([^x ]*)x(.H)J(.)?x([^ ]*) " + | + (1 = *) + 0x09FE ; x + (2 otf:beng=half) ; C1half + (3 =) ; C2 + 0x09FE ; x + 0x09FD ; pseudo result + 0x09FD ; pseudo result + 0x09FE ; x + (4 = *) + |) + + ;; One pre-base possibly with ZWNJ. Similar to above. + (" ([^x ]*)x(.H)N?(.)?x([^ ]*) " + | + (1 = *) + 0x09FE ; x + (2 otf:beng=haln) ; C1halant + (3 =) ; C2 + 0x09FE ; x + 0x09FD ; pseudo result + 0x09FD ; pseudo result + 0x09FE ; x + (4 = *) + |) + + ;; Standalone base. There is nothing more to do. + (" ([^x ]*)x(.)x([^ ]*) " + | + (1 = *) + (2 =) + (3 = *) + |) + + ;; KA-SSA-NNA and KA-SSA-MA are the only pre-base ligatures that + ;; consist of three consonants. + ;; 1 23 4 5 6 7 + (" ([^x ]*)x((KH)(SH)(M))(H)?x([^ ]*) " + | + (1 = *) + 0x09FE ; x + (3 otf:beng=haln) ; KAhalant + (4 otf:beng=haln) ; SSAhalant + (5 =) ; NNA or MA + 0x09FE ; x + (2 otf:beng=half,haln,pres) ; ligature result + 0x09FE ; x + (6 =) + (7 = *) + |) + + ;; Two or more pre-bases plus base. Give up. Convert all + ;; pre-bases into halant form. + ;; 1 23 4 5 + (" ([^x ]*)x(([^x]H[JN]?)+)([^x])?x([^ ]*) " + | + (1 = *) + 0x09FE ; x + (2 force-haln) ; halant forms + (4 =) ; full form + 0x09FE ; x + 0x09FD ; pseudo result + 0x09FD ; pseudo result + 0x09FE ; x + (5 = *) + |) + + ("." =)) + *) + + ;; This is to remove ZWNJ and ZWJ. The half-form-force-effect of ZWJ + ;; is ignored. Sorry. + (force-haln + (cond + ("([^JN]*)[JN](.*)" + (1 otf:beng=haln) + (2 force-haln)) + (".+" + otf:beng=haln))) + ) + +;; Step 4 : Select the appropriate representation. Only those +;; syllables that contain the virtual character x require +;; modification. +(generator + (0 + (cond + ;; Only one glyph in the ligature section (between the second and + ;; the third x). It means a ligature was successfully generated. + ;; C1halant and C2 (between the first and second x) are removed. + (" ([^x ]*)x[^x]+x(.)x([^ ]*) " + | + (1 = *) + (2 =) + (3 = *) + |) + + ;; Otherwise halant and base forms are used. The failed ligature + ;; is removed. + (" ([^x ]*)x([^x]+)x[^x]+x([^ ]*) " + | + (1 = *) + (2 = *) + (3 = *) + |) + + ;; No need to care the other cases. + ("." =)) + *)) + +;; Step 5 : Select appropriate glyph variants for fine adjustments. +;; Now the syllable boundary marks are removed so that the final step +;; can find word boundaries. +(generator + (0 + (cond + (" ([^ ]+) " + (1 otf:beng=blws,abvs,psts,vatu)) + ("." + [ otf:beng=+ ] )) + *) + ) + +;; Step 6 : Word initial substitute. As the syllable boundaries have +;; been eliminated in the previous step, this rule is applied to a run +;; of Bengali glyphs, i.e. word by word. We finally apply the init +;; feature to the word initial gylphs to get the final result. +(generator + (0 + ("(.)(.*)" + (1 otf:beng=init) + (2 = *)))) + +;; Local Variables: +;; mode: emacs-lisp +;; End: diff --git a/DEV-CDAC.flt b/DEV-CDAC.flt deleted file mode 100644 index 848a880..0000000 --- a/DEV-CDAC.flt +++ /dev/null @@ -1,437 +0,0 @@ -;; DEV-CDAC.flt -- Font Layout Table for Devanagari (C-DAC font) -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • DEV-CDAC.flt -;;; -;;; For the font DVYG0ntt.ttf (developed by C-DAC, encoding is ISFOC) -;;; to draw Devanagari script. The font is available at: -;;; - -(category - ;; A: ANUSVARA or CANDRABINDU - ;; C: CONSONANT (except for R) - ;; R: LETTER RA - ;; V: VOWEL INDEPENDENT - ;; N: NUKTA - ;; H: HALANT - ;; M: MATRA (VOWEL DEPENDENT, except for I) - ;; I: VOWEL SIGN I - ;; S: STRESS or TONE - ;; E: ELSE - (0x0900 ?E) - (0x0901 0x0902 ?A) ; CANDRABINDU and ANUSVARA - (0x0903 ?E) ; SIGN VISARGA - (0x0905 0x0914 ?V) ; A .. AU - (0x0915 0x0939 ?C) ; KA .. HA - (0x0930 ?R) ; RA - (0x093C ?N) ; NUKTA - (0x093D ?E) ; AVAGRAHA - (0x093E 0x094C ?M) ; VOWEL SIGN AA .. AU - (0x093F ?I) ; VOWEL SIGN I - (0x094D ?H) ; SIGN VIRAMA (HARANT) - (0x0950 ?E) ; OM - (0x0951 0x954 ?S) ; UDATTA .. ACUTE - (0x0958 0x095E ?C) ; LETTER QA .. YYA - (0x0960 0x0961 ?V) ; LETTER VOCALIC RR and LL - (0x0962 0x0963 ?M) ; VOWEL SIGN VOCALIC L and LL - (0x0964 0x0970 ?E) ; DANDA .. ABBREVIATION SIGN - ) - -(generator - (0 - (cond - ("VA?S?" - < | vowel * | >) - ("([RC]H)*[RC](H|[IM]?A?S?)?" - < | - (cond - ("RH.*" ;; with preceding RA HARANT - (cond - ("(RH)([^I]*)(I)(A?S?)" ; with I - (3 vowel-sign-I) - (2 consonant *) - (1 preceding-r) - (4 post-modifier)) - ("(RH)([^M]*)(M)(A?S?)" ; with M - (2 consonant *) - (3 matra) - (1 preceding-r) - (4 post-modifier)) - ("(RH)(.*)(H)$" ; with last HARANT - (2 consonant *) - (1 preceding-r) - (3 harant)) - ("(RH)([^AS]*)(.*)" ; otherwise - (2 consonant *) - (1 preceding-r) - (3 post-modifier)))) - ;; without preceding RA HARANT - ("([^I]*)(I)(A?S?)" ; with I - (2 vowel-sign-I) - (1 consonant *) - (3 post-modifier)) - ("([^M]*)(M)(A?S?)" ; with M - (1 consonant *) - (2 matra) - (3 post-modifier)) - ("(.*)(H)$" ; with last HARANT - (1 consonant *) - (2 harant)) - ("([^AS]*)(.*)" ; otherwise - (1 consonant *) - (3 post-modifier)) - (".*" - consonant *)) - | > ) - ("." - independent)) - *) - - (vowel - (cond - ((0x0905) 0x2B) - ((0x0906) 0x2B 0xC9) - ((0x0907) 0x3C) - ((0x0908 0x0901) 0x3C 0xC7 0xC6) - ((0x0908) 0x3C 0xC7) - ((0x0909) 0x3D) - ((0x090A) 0x3E 0xF0) - ((0x090B) 0x40 0xF1) - ((0x090D 0x0901) 0x42 0xC4) - ((0x090D 0x0902) 0x42 0xC4) - ((0x090D) 0x42 0xEC) - ((0x090E 0x0901) 0x42 0xE0 0xC6) - ((0x090E) 0x42 0xE0) - ((0x090F) 0x42) - ((0x0910 0x0901) 0x42 0xE4 0xC6) - ((0x0910) 0x42 0xE4) - ((0x0911 0x0901) 0x2B 0xC9 0xC4) - ((0x0911 0x0902) 0x2B 0xC9 0xC4) - ((0x0911) 0x2B 0xC9 0xEC) - ((0x0912 0x0901) 0x2B 0xC9 0xE0 0xC6) - ((0x0912) 0x2B 0xC9 0xE0) - ((0x0913 0x0901) 0x2B 0xC9 0xE4 0xC6) - ((0x0913) 0x2B 0xC9 0xE4) - ((0x0914 0x0901) 0x2B 0xC9 0xE8 0xC6) - ((0x0914) 0x2B 0xC9 0xE8) - ((0x0960) 0x41 0xF1))) - - (vowel-sign-I - ((0x093F) 0xCA)) - - (preceding-r - ((0x0930 0x094D) 0xC7)) - - (post-modifier - (cond - ((0x0901) 0xC4) - ((0x0902) 0xC6) - ((0x0951) 0x27) - ((0x0952) bc.tc 0x2D))) - - (harant - ((0x094D) 0xC2)) - - (consonant - (cond - ((0x0915 0x094D 0x0924) 0x48 0xF2) - ((0x0915 0x094D 0x0930) 0x47 0xF2) - ((0x0915 0x094D 0x0937 0x094D) 0x49) - ((0x0915 0x094D 0x0937) 0x49 0xC9) - ((0x0915 0x094D) 0x43) - ((0x0915) 0x45 0xF2) - ((0x0916 0x094D 0x0930 0x094D) 0x4C) - ((0x0916 0x094D 0x0930) 0x4C 0xC9) - ((0x0916 0x094D) 0x4A) - ((0x0916) 0x4A 0xC9) - ((0x0917 0x094D 0x0930 0x094D) 0x4F) - ((0x0917 0x094D 0x0930) 0x4F 0xC9) - ((0x0917 0x094D) 0x4D) - ((0x0917) 0x4D 0xC9) - ((0x0918 0x094D 0x0930 0x094D) 0x51) - ((0x0918 0x094D 0x0930) 0x51 0xC9) - ((0x0918 0x094D) 0x50) - ((0x0918) 0x50 0xC9) - ((0x0919) 0x52 0xF3) - ((0x091A 0x094D 0x0930 0x094D) 0x54) - ((0x091A 0x094D 0x0930) 0x54 0xC9) - ((0x091A 0x094D) 0x53) - ((0x091A) 0x53 0xC9) - ((0x091B) 0x55 0xF4) - ((0x091C 0x094D 0x091E 0x094D) 0x59) - ((0x091C 0x094D 0x091E) 0x59 0xC9) - ((0x091C 0x094D 0x0930 0x094D) 0x58) - ((0x091C 0x094D 0x0930) 0x58 0xC9) - ((0x091C 0x094D) 0x56) - ((0x091C) 0x56 0xC9) - ((0x091D 0x094D 0x0930 0x094D) 0x5B) - ((0x091D 0x094D 0x0930) 0x5B 0xC9) - ((0x091D 0x094D) 0x5A) - ((0x091D) 0x5A 0xC9) - ((0x091E 0x094D) 0x5C) - ((0x091E) 0x5C 0xC9) - ((0x091F 0x094D 0x091F) 0x5E 0xF5) - ((0x091F 0x094D 0x0920) 0x5F 0xF5) - ((0x091F) 0x5D 0xF5) - ((0x0920 0x094D 0x0920) 0x61 0xF6) - ((0x0920) 0x60 0xF6) - ((0x0921 0x094D 0x0921) 0x64 0xF7) - ((0x0921 0x094D 0x0922) 0x65 0xF7) - ((0x0921) 0x62 0xF7) - ((0x0922) 0x66 0xF8) - ((0x0923 0x094D) 0x68) - ((0x0923) 0x68 0xC9) - ((0x0924 0x094D 0x0924 0x094D) 0x6B) - ((0x0924 0x094D 0x0924) 0x6B 0xC9) - ((0x0924 0x094D 0x0930 0x094D) 0x6A) - ((0x0924 0x094D 0x0930) 0x6A 0xC9) - ((0x0924 0x094D) 0x69) - ((0x0924) 0x69 0xC9) - ((0x0925 0x094D 0x0930 0x094D) 0x6D) - ((0x0925 0x094D 0x0930) 0x6D 0xC9) - ((0x0925 0x094D) 0x6C) - ((0x0925) 0x6C 0xC9) - ((0x0926 0x0943) 0x6F 0xF9) - ((0x0926 0x094D 0x0926) 0x71 0xF9) - ((0x0926 0x094D 0x0927) 0x72 0xF9) - ((0x0926 0x094D 0x092E) 0x73) - ((0x0926 0x094D 0x092F) 0x74) - ((0x0926 0x094D 0x0930) 0x70 0xF9) - ((0x0926 0x094D 0x0935) 0x75 0xF9) - ((0x0926) 0x6E 0xF9) - ((0x0927 0x094D 0x0930 0x094D) 0x77) - ((0x0927 0x094D 0x0930) 0x77 0xC9) - ((0x0927 0x094D) 0x76) - ((0x0927) 0x76 0xC9) - ((0x0928 0x094D 0x0928 0x094D) 0x7A) - ((0x0928 0x094D 0x0928) 0x7A 0xC9) - ((0x0928 0x094D 0x0930 0x094D) 0x79 0xC9) - ((0x0928 0x094D 0x0930) 0x79 0xC9) - ((0x0928 0x094D) 0x78) - ((0x0928) 0x78 0xC9) - ((0x0929) 0x78 0xC3 0xC9) - ((0x092A 0x094D 0x0930 0x094D) 0x7C) - ((0x092A 0x094D 0x0930) 0x7C 0xC9) - ((0x092A 0x094D) 0x7B) - ((0x092A) 0x7B 0xC9) - ((0x092B 0x094D 0x0930) 0xA3 0xFB) - ((0x092B 0x094D) 0x7D) - ((0x092B) 0xA1 0xFB) - ((0x092C 0x094D 0x0930 0x094D) 0xA5) - ((0x092C 0x094D 0x0930) 0xA5 0xC9) - ((0x092C 0x094D) 0xA4) - ((0x092C) 0xA4 0xC9) - ((0x092D 0x094D 0x0930 0x094D) 0xA7) - ((0x092D 0x094D 0x0930) 0xA7 0xC9) - ((0x092D 0x094D) 0xA6) - ((0x092D) 0xA6 0xC9) - ((0x092E 0x094D 0x0930 0x094D) 0xA9) - ((0x092E 0x094D 0x0930) 0xA9 0xC9) - ((0x092E 0x094D) 0xA8) - ((0x092E) 0xA8 0xC9) - ((0x092F 0x094D 0x0930 0x094D) 0xAB) - ((0x092F 0x094D 0x0930) 0xAB 0xC9) - ((0x092F 0x094D) 0xAA) - ((0x092F) 0xAA 0xC9) - ((0x0930 0x0941) 0xAF 0xFB) - ((0x0930 0x0942) 0xB0 0xFC) - ((0x0930) 0xAE 0xF7) - ((0x0931 0x094D) 0xAD) - ((0x0931) 0xAE 0xC3 0xF7) - ((0x0932 0x094D) 0xB1) - ((0x0932) 0xB1 0xC9) - ((0x0933 0x094D) 0xB2) - ((0x0933) 0xB3) - ((0x0934 0x094D) 0xB2 0xC3) - ((0x0934) 0xB3 0xC3) - ((0x0935 0x094D 0x0930 0x094D) 0xB5) - ((0x0935 0x094D 0x0930) 0xB5 0xC9) - ((0x0935 0x094D) 0xB4) - ((0x0935) 0xB4 0xC9) - ((0x0936 0x094D 0x0930 0x094D) 0xB8) - ((0x0936 0x094D 0x0930) 0xB8 0xC9) - ((0x0936 0x094D 0x0935 0x094D) 0xB7) - ((0x0936 0x094D 0x0935) 0xB7 0xC9) - ((0x0936 0x094D) 0xB6) - ((0x0936) 0xB6 0xC9) - ((0x0937 0x094D) 0xB9) - ((0x0937) 0xB9 0xC9) - ((0x0938 0x094D 0x0930 0x094D) 0xBB) - ((0x0938 0x094D 0x0930) 0xBB 0xC9) - ((0x0938 0x094D) 0xBA) - ((0x0938) 0xBA 0xC9) - ((0x0939 0x0943) 0xBE) - ((0x0939 0x094D 0x092E) 0xC0) - ((0x0939 0x094D 0x092F) 0xC1) - ((0x0939 0x094D 0x0930) 0xBF) - ((0x0939 0x094D) 0xBC) - ((0x0939) 0xBD) - ((0x094D 0x092F) 0xAC) - ((0x094D 0x0930) 0xC5) - ((0x0958 0x094D) 0x44) - ((0x0958) 0x46 0xF2 0xF3) - ((0x0959 0x094D) 0x4B) - ((0x0959) 0x4B 0xC9) - ((0x095A 0x094D) 0x4E) - ((0x095A) 0x4E 0xC9) - ((0x095B 0x094D) 0x57) - ((0x095B) 0x57 0xC9) - ((0x095C) 0x63 0xF7) - ((0x095D) 0x67 0xF8) - ((0x095E 0x094D) 0x7E) - ((0x095E) 0xA2 0xFB) - ((0x095F) 0xAA 0xC3 0xC9) - ((0x094D) 0xC2))) - - (matra - (cond - ((0x093E) 0xC9) - ((0x093F 0x0901) 0xCA 0xC6) - ((0x093F) 0xCA) - ((0x0940 0x0901) 0xD2 0xC6) - ((0x0940) 0xD2) - ((0x0941) 0xD6) - ((0x0942) 0xDA) - ((0x0943) 0xDE) - ((0x0944) 0xDF) - ((0x0945) 0xEC) - ((0x0946 0x0901) 0xE0 0xC6) - ((0x0946) 0xE0) - ((0x0947 0x0901) 0xE4 0xC6) - ((0x0947) 0xE4) - ((0x0948 0x0901) 0xE8 0xC6) - ((0x0948) 0xE8) - ((0x0949 0x0901) 0xC9 0xC4) - ((0x0949 0x0902) 0xC9 0xC4) - ((0x0949) 0xC9 0xEC) - ((0x094A 0x0901) 0xC9 0xE0 0xC6) - ((0x094A) 0xC9 0xE0) - ((0x094B 0x0901) 0xC9 0xE4 0xC6) - ((0x094B) 0xC9 0xE4) - ((0x094C 0x0901) 0xC9 0xE8 0xC6) - ((0x094C) 0xC9 0xE8))) - - (independent - (cond - ((0x0900) 0x23 0xC7) ; fake!! - ((0x0903) 0x26) - ((0x093C) 0xC3) - ((0x093D) 0x25) - ((0x0950) 0x24) ;new - ((0x0951) 0x27) ;new - ((0x0964) 0x2A) - ((0x0965) 0x2A 0x2A) - ((0x0966) 0x30) - ((0x0967) 0x31) - ((0x0968) 0x32) - ((0x0969) 0x33) - ((0x096A) 0x34) - ((0x096B) 0x35) - ((0x096C) 0x36) - ((0x096D) 0x37) - ((0x096E) 0x38) - ((0x096F) 0x39) - ((0x094D) 0x23 Bc>10Bl 0xC2) - ((0x093F) 0xCA Bc>10Bl 0x23) - ((0x0940) 0x23 0xD2) - ))) - -(category - ;; C: CONSONANTS - ;; I: VOWEL SIGN I - ;; R: RIGHT MODIFIER - ;; S: SPACING - ;; E: ELSE - ;; - (0x00 0xFF ?E) - (0x3C 0xC1 ?C) - (0xC9 ?R) - (0xCA 0xD1 ?I) - (0xD2 0xD5 ?R) - (0xF0 0xFE ?S)) - -(generator - (0 - (cond - (" ([^ ]*) " - (1 - (cond - ("(I[^C]*)(CC[^R]*)(R.*)" - (1 rule-i-wide = *) - (2 rule-else = *)) - ("(I[^C]*)(CC[^S]*)(S)(.*)" - (1 rule-i-wide = *) - (2 = *) - (4 rule-else = *) - (3 = *)) - ("([^R]*)(R).*" - (0 rule-else = *)) - ("([^S]*)(S)(.*)" - (1 rule-else = *) - (3 rule-else = *) - (2 = *)) - (".*" = *)))) - ("[^ ]*" - = *)) - *) - - (rule-i-wide - (cond - ((0xCA 0xC6) 0xCF) - ((0xCA 0xC7 0xC6) 0xD1) - ((0xCA 0xC7) 0xD0) - ((0xCA) 0xCE))) - - (rule-else - (cond - ((0xC3 0xD6) 0xD7) - ((0xC3 0xDA) 0xDB) - ((0xC5 0xD6) 0xD8) - ((0xC5 0xDA) 0xDC) - ((0xC7 0xC4) 0xC8) - ((0xC7 0xC6) 0xC8) - ((0xCA 0xC6) 0xCB) - ((0xCA 0xC7 0xC6) 0xCD) - ((0xCA 0xC7) 0xCC) - ((0xD2 0xC6) 0xD3) - ((0xD2 0xC7 0xC6) 0xD5) - ((0xD2 0xC7) 0xD4) - ((0xE0 0xC6) 0xE1) - ((0xE0 0xC7 0xC6) 0xE3) - ((0xE0 0xC7) 0xE2) - ((0xE4 0xC6) 0xE5) - ((0xE4 0xC7 0xC6) 0xE7) - ((0xE4 0xC7) 0xE6) - ((0xE8 0xC6) 0xE9) - ((0xE8 0xC7 0xC6) 0xEB) - ((0xE8 0xC7) 0xEA) - ((0xEC 0xC6) 0xED) - ((0xEC 0xC7 0xC6) 0xEF) - ((0xEC 0xC7) 0xEE)))) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/DEV-OTF.flt b/DEV-OTF.flt deleted file mode 100644 index cf426ba..0000000 --- a/DEV-OTF.flt +++ /dev/null @@ -1,172 +0,0 @@ -;; DEV-OTF.flt -- Font Layout Table for Devanagari OpenType font -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • DEV-OTF.flt -;;; -;;; For Devanagari OpenType fonts to draw the Devanagari script. - -(category - ;; C: consonant (except for R) - ;; R: consonant RA - ;; n: NUKTA - ;; H: HALANT - ;; m: MATRA (pre) - ;; u: MATRA (above) - ;; b: MATRA (below) - ;; p: MATRA (post) - ;; A: vowel modifier (above) - ;; a: vowel modifier (post) - ;; S: stress sign (above) - ;; s: stress sign (below) - ;; V: independent vowel - ;; N: ZWNJ (ZERO WIDTH NON-JOINER) - ;; J: ZWJ (ZERO WIDTH JOINER) - ;; E: ELSE - ;; - (#x0900 #x097F ?E) ; ELSE - (#x0901 ?A) ; SIGN CANDRABINDU (above) - (#x0902 ?A) ; SIGN ANUSVARA (above) - (#x0903 ?a) ; SIGN VISARGA (post) - (#x0905 #x0914 ?V) ; LETTER A .. LETTER AU - (#x0915 #x0939 ?C) ; LETTER KA .. LETTER HA - (#x0930 ?R) ; LETTER RA - (#x093C ?n) ; SIGN NUKTA - (#x093D ?E) ; SIGN AVAGRAHA - (#x093E #x094C ?p) ; VOWEL SIGN (post) - (#x093F ?m) ; VOWEL SIGN I (pre) - (#x0941 #x0944 ?b) ; VOWEL SIGN (below) - (#x0945 #x0948 ?u) ; VOWEL SIGN (above) - (#x094D ?H) ; SIGN VIRAMA (HALANT) - (#x0950 ?E) ; OM - (#x0951 #x0954 ?S) ; STRESS SIGN or TONE MARK (above) - (#x0952 ?s) ; STRESS SIGN or TONE MARK (below) - (#x0958 #x095E ?C) ; LETTER QA .. LETTER YYA - (#x0960 ?V) ; LETTER VOCALIC RR - (#x0961 ?V) ; LETTER VOCALIC LL - (#x0962 #x0963 ?b) ; VOWEL SIGN (below) - (#x0964 #x0970 ?E) ; DANDA .. ABBREVIATION SIGN - (#x200C ?N) ; ZWNJ - (#x200D ?J) ; ZWJ - (#x097D ?x) ; internally used tag to indicate Reph - (#x097E ?y) ; internally used tag to indicate Mpost - (#x097F ?z) ; internally used tag to indicate Cbase - ) - -;; The first stage is to extract a syllable and re-order characters in -;; it. -(generator - (0 - (cond - ;; If [CR]H is followed by ZWNJ/ZWJ, move ZWNJ/ZWJ to the head so - ;; that the later stages find it quickly. - ("([CR]n?H)([NJ])" - < | (2 =) (1 = *) | > ) - - ;; A syllable starting with RH (Reph) and ending with a vowel - ;; and/or a vowel modifier. - ("(RH)(([CR]n?H)*[CR]n?)([mubp][Aa]?[Ss]?|[Aa][Ss]?|[Ss])" - < | (1 #x097D = =) (2 move-base-Halant) (4 reorder-post-base) | >) - - ;; A syllable starting with RH (Reph) and ending without a vowel - ;; nor a vowel modifier. - ("(RH)(([CR]n?H)*[CR]n?)(H)?" - < | (1 #x097D = =) (2 move-base-Halant) (4 =) | >) - - ;; A syllable starting with the other consonant and ending with a - ;; vowel and/or a vowel modifier. - ("(([CR]n?H)*[CR]n?)([mubp][Aa]?[Ss]?|[Aa][Ss]?|[Ss])" - < | (1 move-base-Halant) (3 reorder-post-base) | >) - - ;; A syllable starting with the other consonant and ending without - ;; a vowel nor a vowel modifier. - ("(([CR]n?H)*[CR]n?)(H)?" - < | (1 move-base-Halant) (3 =) | >) - - ;; A syllable starting with an independent vowel. - ("V[Aa]?[Ss]?" - < | = * | > ) - - ("." =)) - *) - - ;; Move Halant on a base consonant to the tail. - (move-base-Halant - (cond - ("(([CR]n?H)*[CR]n?)(H)(R)" - (1 = *) - (4 =) - (3 =)) - (".*" - = *))) - - ;; Re-order post modifiers. - (reorder-post-base - ;; 12 3 4 5 67 8 9 10 - ("((m)|(u)|(b)|(p))?((A)|(a))?((S)|(s))?$" - (2 =) (4 =) (10 =) (3 =) (5 =) - #x097E - (7 =) (9 =) (8)))) - -;; The second stage is to reorder Reph and Mpre. -(generator - (0 - (cond - (" [NJ]([^ ]*) " - = *) - (" (x(..))([CRnH]*) " - | (3 = *) (2 otf:deva=rphf) |) - (" (x(..))([CRnH]*)(m?)([^y]*)y([^ ]*) " - | (4 =) (3 = *) (5 = *) (2 otf:deva=rphf) (6 = *) |) - (" ([CRnH][CRnH]*) " - = *) - (" ([CRnH][CRnH]*)(m?)([^y]*)y([^ ]*) " - | (2 =) (1 = *) (3 = *) (4 = *) |) - ("." =)) - *)) - -;; The third stage is to drive OTF tables. For the moment, we use -;; the default LangSys, and try all GSUB/GPOS features except for the -;; sequence followed by ZWNJ in which case try "nukt" and "haln" -;; features only. -(generator - (0 - (cond - (" N([^ ]*) " - (1 otf:deva=nukt,haln)) - - (" J([^ ]*) " - (1 otf:deva)) - - (" ([^ ]*)(CH) " - (1 otf:deva=~rphf,*) (2 otf:deva=haln)) - - (" ([^ ]*) " - (1 otf:deva=~rphf,*)) - - ("." - \[ otf:deva=+ \] )) - *)) - -;; Local Variables: -;; mode: emacs-lisp -;; End: diff --git a/DEVA-CDAC.flt b/DEVA-CDAC.flt new file mode 100644 index 0000000..848a880 --- /dev/null +++ b/DEVA-CDAC.flt @@ -0,0 +1,437 @@ +;; DEV-CDAC.flt -- Font Layout Table for Devanagari (C-DAC font) +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • DEV-CDAC.flt +;;; +;;; For the font DVYG0ntt.ttf (developed by C-DAC, encoding is ISFOC) +;;; to draw Devanagari script. The font is available at: +;;; + +(category + ;; A: ANUSVARA or CANDRABINDU + ;; C: CONSONANT (except for R) + ;; R: LETTER RA + ;; V: VOWEL INDEPENDENT + ;; N: NUKTA + ;; H: HALANT + ;; M: MATRA (VOWEL DEPENDENT, except for I) + ;; I: VOWEL SIGN I + ;; S: STRESS or TONE + ;; E: ELSE + (0x0900 ?E) + (0x0901 0x0902 ?A) ; CANDRABINDU and ANUSVARA + (0x0903 ?E) ; SIGN VISARGA + (0x0905 0x0914 ?V) ; A .. AU + (0x0915 0x0939 ?C) ; KA .. HA + (0x0930 ?R) ; RA + (0x093C ?N) ; NUKTA + (0x093D ?E) ; AVAGRAHA + (0x093E 0x094C ?M) ; VOWEL SIGN AA .. AU + (0x093F ?I) ; VOWEL SIGN I + (0x094D ?H) ; SIGN VIRAMA (HARANT) + (0x0950 ?E) ; OM + (0x0951 0x954 ?S) ; UDATTA .. ACUTE + (0x0958 0x095E ?C) ; LETTER QA .. YYA + (0x0960 0x0961 ?V) ; LETTER VOCALIC RR and LL + (0x0962 0x0963 ?M) ; VOWEL SIGN VOCALIC L and LL + (0x0964 0x0970 ?E) ; DANDA .. ABBREVIATION SIGN + ) + +(generator + (0 + (cond + ("VA?S?" + < | vowel * | >) + ("([RC]H)*[RC](H|[IM]?A?S?)?" + < | + (cond + ("RH.*" ;; with preceding RA HARANT + (cond + ("(RH)([^I]*)(I)(A?S?)" ; with I + (3 vowel-sign-I) + (2 consonant *) + (1 preceding-r) + (4 post-modifier)) + ("(RH)([^M]*)(M)(A?S?)" ; with M + (2 consonant *) + (3 matra) + (1 preceding-r) + (4 post-modifier)) + ("(RH)(.*)(H)$" ; with last HARANT + (2 consonant *) + (1 preceding-r) + (3 harant)) + ("(RH)([^AS]*)(.*)" ; otherwise + (2 consonant *) + (1 preceding-r) + (3 post-modifier)))) + ;; without preceding RA HARANT + ("([^I]*)(I)(A?S?)" ; with I + (2 vowel-sign-I) + (1 consonant *) + (3 post-modifier)) + ("([^M]*)(M)(A?S?)" ; with M + (1 consonant *) + (2 matra) + (3 post-modifier)) + ("(.*)(H)$" ; with last HARANT + (1 consonant *) + (2 harant)) + ("([^AS]*)(.*)" ; otherwise + (1 consonant *) + (3 post-modifier)) + (".*" + consonant *)) + | > ) + ("." + independent)) + *) + + (vowel + (cond + ((0x0905) 0x2B) + ((0x0906) 0x2B 0xC9) + ((0x0907) 0x3C) + ((0x0908 0x0901) 0x3C 0xC7 0xC6) + ((0x0908) 0x3C 0xC7) + ((0x0909) 0x3D) + ((0x090A) 0x3E 0xF0) + ((0x090B) 0x40 0xF1) + ((0x090D 0x0901) 0x42 0xC4) + ((0x090D 0x0902) 0x42 0xC4) + ((0x090D) 0x42 0xEC) + ((0x090E 0x0901) 0x42 0xE0 0xC6) + ((0x090E) 0x42 0xE0) + ((0x090F) 0x42) + ((0x0910 0x0901) 0x42 0xE4 0xC6) + ((0x0910) 0x42 0xE4) + ((0x0911 0x0901) 0x2B 0xC9 0xC4) + ((0x0911 0x0902) 0x2B 0xC9 0xC4) + ((0x0911) 0x2B 0xC9 0xEC) + ((0x0912 0x0901) 0x2B 0xC9 0xE0 0xC6) + ((0x0912) 0x2B 0xC9 0xE0) + ((0x0913 0x0901) 0x2B 0xC9 0xE4 0xC6) + ((0x0913) 0x2B 0xC9 0xE4) + ((0x0914 0x0901) 0x2B 0xC9 0xE8 0xC6) + ((0x0914) 0x2B 0xC9 0xE8) + ((0x0960) 0x41 0xF1))) + + (vowel-sign-I + ((0x093F) 0xCA)) + + (preceding-r + ((0x0930 0x094D) 0xC7)) + + (post-modifier + (cond + ((0x0901) 0xC4) + ((0x0902) 0xC6) + ((0x0951) 0x27) + ((0x0952) bc.tc 0x2D))) + + (harant + ((0x094D) 0xC2)) + + (consonant + (cond + ((0x0915 0x094D 0x0924) 0x48 0xF2) + ((0x0915 0x094D 0x0930) 0x47 0xF2) + ((0x0915 0x094D 0x0937 0x094D) 0x49) + ((0x0915 0x094D 0x0937) 0x49 0xC9) + ((0x0915 0x094D) 0x43) + ((0x0915) 0x45 0xF2) + ((0x0916 0x094D 0x0930 0x094D) 0x4C) + ((0x0916 0x094D 0x0930) 0x4C 0xC9) + ((0x0916 0x094D) 0x4A) + ((0x0916) 0x4A 0xC9) + ((0x0917 0x094D 0x0930 0x094D) 0x4F) + ((0x0917 0x094D 0x0930) 0x4F 0xC9) + ((0x0917 0x094D) 0x4D) + ((0x0917) 0x4D 0xC9) + ((0x0918 0x094D 0x0930 0x094D) 0x51) + ((0x0918 0x094D 0x0930) 0x51 0xC9) + ((0x0918 0x094D) 0x50) + ((0x0918) 0x50 0xC9) + ((0x0919) 0x52 0xF3) + ((0x091A 0x094D 0x0930 0x094D) 0x54) + ((0x091A 0x094D 0x0930) 0x54 0xC9) + ((0x091A 0x094D) 0x53) + ((0x091A) 0x53 0xC9) + ((0x091B) 0x55 0xF4) + ((0x091C 0x094D 0x091E 0x094D) 0x59) + ((0x091C 0x094D 0x091E) 0x59 0xC9) + ((0x091C 0x094D 0x0930 0x094D) 0x58) + ((0x091C 0x094D 0x0930) 0x58 0xC9) + ((0x091C 0x094D) 0x56) + ((0x091C) 0x56 0xC9) + ((0x091D 0x094D 0x0930 0x094D) 0x5B) + ((0x091D 0x094D 0x0930) 0x5B 0xC9) + ((0x091D 0x094D) 0x5A) + ((0x091D) 0x5A 0xC9) + ((0x091E 0x094D) 0x5C) + ((0x091E) 0x5C 0xC9) + ((0x091F 0x094D 0x091F) 0x5E 0xF5) + ((0x091F 0x094D 0x0920) 0x5F 0xF5) + ((0x091F) 0x5D 0xF5) + ((0x0920 0x094D 0x0920) 0x61 0xF6) + ((0x0920) 0x60 0xF6) + ((0x0921 0x094D 0x0921) 0x64 0xF7) + ((0x0921 0x094D 0x0922) 0x65 0xF7) + ((0x0921) 0x62 0xF7) + ((0x0922) 0x66 0xF8) + ((0x0923 0x094D) 0x68) + ((0x0923) 0x68 0xC9) + ((0x0924 0x094D 0x0924 0x094D) 0x6B) + ((0x0924 0x094D 0x0924) 0x6B 0xC9) + ((0x0924 0x094D 0x0930 0x094D) 0x6A) + ((0x0924 0x094D 0x0930) 0x6A 0xC9) + ((0x0924 0x094D) 0x69) + ((0x0924) 0x69 0xC9) + ((0x0925 0x094D 0x0930 0x094D) 0x6D) + ((0x0925 0x094D 0x0930) 0x6D 0xC9) + ((0x0925 0x094D) 0x6C) + ((0x0925) 0x6C 0xC9) + ((0x0926 0x0943) 0x6F 0xF9) + ((0x0926 0x094D 0x0926) 0x71 0xF9) + ((0x0926 0x094D 0x0927) 0x72 0xF9) + ((0x0926 0x094D 0x092E) 0x73) + ((0x0926 0x094D 0x092F) 0x74) + ((0x0926 0x094D 0x0930) 0x70 0xF9) + ((0x0926 0x094D 0x0935) 0x75 0xF9) + ((0x0926) 0x6E 0xF9) + ((0x0927 0x094D 0x0930 0x094D) 0x77) + ((0x0927 0x094D 0x0930) 0x77 0xC9) + ((0x0927 0x094D) 0x76) + ((0x0927) 0x76 0xC9) + ((0x0928 0x094D 0x0928 0x094D) 0x7A) + ((0x0928 0x094D 0x0928) 0x7A 0xC9) + ((0x0928 0x094D 0x0930 0x094D) 0x79 0xC9) + ((0x0928 0x094D 0x0930) 0x79 0xC9) + ((0x0928 0x094D) 0x78) + ((0x0928) 0x78 0xC9) + ((0x0929) 0x78 0xC3 0xC9) + ((0x092A 0x094D 0x0930 0x094D) 0x7C) + ((0x092A 0x094D 0x0930) 0x7C 0xC9) + ((0x092A 0x094D) 0x7B) + ((0x092A) 0x7B 0xC9) + ((0x092B 0x094D 0x0930) 0xA3 0xFB) + ((0x092B 0x094D) 0x7D) + ((0x092B) 0xA1 0xFB) + ((0x092C 0x094D 0x0930 0x094D) 0xA5) + ((0x092C 0x094D 0x0930) 0xA5 0xC9) + ((0x092C 0x094D) 0xA4) + ((0x092C) 0xA4 0xC9) + ((0x092D 0x094D 0x0930 0x094D) 0xA7) + ((0x092D 0x094D 0x0930) 0xA7 0xC9) + ((0x092D 0x094D) 0xA6) + ((0x092D) 0xA6 0xC9) + ((0x092E 0x094D 0x0930 0x094D) 0xA9) + ((0x092E 0x094D 0x0930) 0xA9 0xC9) + ((0x092E 0x094D) 0xA8) + ((0x092E) 0xA8 0xC9) + ((0x092F 0x094D 0x0930 0x094D) 0xAB) + ((0x092F 0x094D 0x0930) 0xAB 0xC9) + ((0x092F 0x094D) 0xAA) + ((0x092F) 0xAA 0xC9) + ((0x0930 0x0941) 0xAF 0xFB) + ((0x0930 0x0942) 0xB0 0xFC) + ((0x0930) 0xAE 0xF7) + ((0x0931 0x094D) 0xAD) + ((0x0931) 0xAE 0xC3 0xF7) + ((0x0932 0x094D) 0xB1) + ((0x0932) 0xB1 0xC9) + ((0x0933 0x094D) 0xB2) + ((0x0933) 0xB3) + ((0x0934 0x094D) 0xB2 0xC3) + ((0x0934) 0xB3 0xC3) + ((0x0935 0x094D 0x0930 0x094D) 0xB5) + ((0x0935 0x094D 0x0930) 0xB5 0xC9) + ((0x0935 0x094D) 0xB4) + ((0x0935) 0xB4 0xC9) + ((0x0936 0x094D 0x0930 0x094D) 0xB8) + ((0x0936 0x094D 0x0930) 0xB8 0xC9) + ((0x0936 0x094D 0x0935 0x094D) 0xB7) + ((0x0936 0x094D 0x0935) 0xB7 0xC9) + ((0x0936 0x094D) 0xB6) + ((0x0936) 0xB6 0xC9) + ((0x0937 0x094D) 0xB9) + ((0x0937) 0xB9 0xC9) + ((0x0938 0x094D 0x0930 0x094D) 0xBB) + ((0x0938 0x094D 0x0930) 0xBB 0xC9) + ((0x0938 0x094D) 0xBA) + ((0x0938) 0xBA 0xC9) + ((0x0939 0x0943) 0xBE) + ((0x0939 0x094D 0x092E) 0xC0) + ((0x0939 0x094D 0x092F) 0xC1) + ((0x0939 0x094D 0x0930) 0xBF) + ((0x0939 0x094D) 0xBC) + ((0x0939) 0xBD) + ((0x094D 0x092F) 0xAC) + ((0x094D 0x0930) 0xC5) + ((0x0958 0x094D) 0x44) + ((0x0958) 0x46 0xF2 0xF3) + ((0x0959 0x094D) 0x4B) + ((0x0959) 0x4B 0xC9) + ((0x095A 0x094D) 0x4E) + ((0x095A) 0x4E 0xC9) + ((0x095B 0x094D) 0x57) + ((0x095B) 0x57 0xC9) + ((0x095C) 0x63 0xF7) + ((0x095D) 0x67 0xF8) + ((0x095E 0x094D) 0x7E) + ((0x095E) 0xA2 0xFB) + ((0x095F) 0xAA 0xC3 0xC9) + ((0x094D) 0xC2))) + + (matra + (cond + ((0x093E) 0xC9) + ((0x093F 0x0901) 0xCA 0xC6) + ((0x093F) 0xCA) + ((0x0940 0x0901) 0xD2 0xC6) + ((0x0940) 0xD2) + ((0x0941) 0xD6) + ((0x0942) 0xDA) + ((0x0943) 0xDE) + ((0x0944) 0xDF) + ((0x0945) 0xEC) + ((0x0946 0x0901) 0xE0 0xC6) + ((0x0946) 0xE0) + ((0x0947 0x0901) 0xE4 0xC6) + ((0x0947) 0xE4) + ((0x0948 0x0901) 0xE8 0xC6) + ((0x0948) 0xE8) + ((0x0949 0x0901) 0xC9 0xC4) + ((0x0949 0x0902) 0xC9 0xC4) + ((0x0949) 0xC9 0xEC) + ((0x094A 0x0901) 0xC9 0xE0 0xC6) + ((0x094A) 0xC9 0xE0) + ((0x094B 0x0901) 0xC9 0xE4 0xC6) + ((0x094B) 0xC9 0xE4) + ((0x094C 0x0901) 0xC9 0xE8 0xC6) + ((0x094C) 0xC9 0xE8))) + + (independent + (cond + ((0x0900) 0x23 0xC7) ; fake!! + ((0x0903) 0x26) + ((0x093C) 0xC3) + ((0x093D) 0x25) + ((0x0950) 0x24) ;new + ((0x0951) 0x27) ;new + ((0x0964) 0x2A) + ((0x0965) 0x2A 0x2A) + ((0x0966) 0x30) + ((0x0967) 0x31) + ((0x0968) 0x32) + ((0x0969) 0x33) + ((0x096A) 0x34) + ((0x096B) 0x35) + ((0x096C) 0x36) + ((0x096D) 0x37) + ((0x096E) 0x38) + ((0x096F) 0x39) + ((0x094D) 0x23 Bc>10Bl 0xC2) + ((0x093F) 0xCA Bc>10Bl 0x23) + ((0x0940) 0x23 0xD2) + ))) + +(category + ;; C: CONSONANTS + ;; I: VOWEL SIGN I + ;; R: RIGHT MODIFIER + ;; S: SPACING + ;; E: ELSE + ;; + (0x00 0xFF ?E) + (0x3C 0xC1 ?C) + (0xC9 ?R) + (0xCA 0xD1 ?I) + (0xD2 0xD5 ?R) + (0xF0 0xFE ?S)) + +(generator + (0 + (cond + (" ([^ ]*) " + (1 + (cond + ("(I[^C]*)(CC[^R]*)(R.*)" + (1 rule-i-wide = *) + (2 rule-else = *)) + ("(I[^C]*)(CC[^S]*)(S)(.*)" + (1 rule-i-wide = *) + (2 = *) + (4 rule-else = *) + (3 = *)) + ("([^R]*)(R).*" + (0 rule-else = *)) + ("([^S]*)(S)(.*)" + (1 rule-else = *) + (3 rule-else = *) + (2 = *)) + (".*" = *)))) + ("[^ ]*" + = *)) + *) + + (rule-i-wide + (cond + ((0xCA 0xC6) 0xCF) + ((0xCA 0xC7 0xC6) 0xD1) + ((0xCA 0xC7) 0xD0) + ((0xCA) 0xCE))) + + (rule-else + (cond + ((0xC3 0xD6) 0xD7) + ((0xC3 0xDA) 0xDB) + ((0xC5 0xD6) 0xD8) + ((0xC5 0xDA) 0xDC) + ((0xC7 0xC4) 0xC8) + ((0xC7 0xC6) 0xC8) + ((0xCA 0xC6) 0xCB) + ((0xCA 0xC7 0xC6) 0xCD) + ((0xCA 0xC7) 0xCC) + ((0xD2 0xC6) 0xD3) + ((0xD2 0xC7 0xC6) 0xD5) + ((0xD2 0xC7) 0xD4) + ((0xE0 0xC6) 0xE1) + ((0xE0 0xC7 0xC6) 0xE3) + ((0xE0 0xC7) 0xE2) + ((0xE4 0xC6) 0xE5) + ((0xE4 0xC7 0xC6) 0xE7) + ((0xE4 0xC7) 0xE6) + ((0xE8 0xC6) 0xE9) + ((0xE8 0xC7 0xC6) 0xEB) + ((0xE8 0xC7) 0xEA) + ((0xEC 0xC6) 0xED) + ((0xEC 0xC7 0xC6) 0xEF) + ((0xEC 0xC7) 0xEE)))) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/DEVA-OTF.flt b/DEVA-OTF.flt new file mode 100644 index 0000000..cf426ba --- /dev/null +++ b/DEVA-OTF.flt @@ -0,0 +1,172 @@ +;; DEV-OTF.flt -- Font Layout Table for Devanagari OpenType font +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • DEV-OTF.flt +;;; +;;; For Devanagari OpenType fonts to draw the Devanagari script. + +(category + ;; C: consonant (except for R) + ;; R: consonant RA + ;; n: NUKTA + ;; H: HALANT + ;; m: MATRA (pre) + ;; u: MATRA (above) + ;; b: MATRA (below) + ;; p: MATRA (post) + ;; A: vowel modifier (above) + ;; a: vowel modifier (post) + ;; S: stress sign (above) + ;; s: stress sign (below) + ;; V: independent vowel + ;; N: ZWNJ (ZERO WIDTH NON-JOINER) + ;; J: ZWJ (ZERO WIDTH JOINER) + ;; E: ELSE + ;; + (#x0900 #x097F ?E) ; ELSE + (#x0901 ?A) ; SIGN CANDRABINDU (above) + (#x0902 ?A) ; SIGN ANUSVARA (above) + (#x0903 ?a) ; SIGN VISARGA (post) + (#x0905 #x0914 ?V) ; LETTER A .. LETTER AU + (#x0915 #x0939 ?C) ; LETTER KA .. LETTER HA + (#x0930 ?R) ; LETTER RA + (#x093C ?n) ; SIGN NUKTA + (#x093D ?E) ; SIGN AVAGRAHA + (#x093E #x094C ?p) ; VOWEL SIGN (post) + (#x093F ?m) ; VOWEL SIGN I (pre) + (#x0941 #x0944 ?b) ; VOWEL SIGN (below) + (#x0945 #x0948 ?u) ; VOWEL SIGN (above) + (#x094D ?H) ; SIGN VIRAMA (HALANT) + (#x0950 ?E) ; OM + (#x0951 #x0954 ?S) ; STRESS SIGN or TONE MARK (above) + (#x0952 ?s) ; STRESS SIGN or TONE MARK (below) + (#x0958 #x095E ?C) ; LETTER QA .. LETTER YYA + (#x0960 ?V) ; LETTER VOCALIC RR + (#x0961 ?V) ; LETTER VOCALIC LL + (#x0962 #x0963 ?b) ; VOWEL SIGN (below) + (#x0964 #x0970 ?E) ; DANDA .. ABBREVIATION SIGN + (#x200C ?N) ; ZWNJ + (#x200D ?J) ; ZWJ + (#x097D ?x) ; internally used tag to indicate Reph + (#x097E ?y) ; internally used tag to indicate Mpost + (#x097F ?z) ; internally used tag to indicate Cbase + ) + +;; The first stage is to extract a syllable and re-order characters in +;; it. +(generator + (0 + (cond + ;; If [CR]H is followed by ZWNJ/ZWJ, move ZWNJ/ZWJ to the head so + ;; that the later stages find it quickly. + ("([CR]n?H)([NJ])" + < | (2 =) (1 = *) | > ) + + ;; A syllable starting with RH (Reph) and ending with a vowel + ;; and/or a vowel modifier. + ("(RH)(([CR]n?H)*[CR]n?)([mubp][Aa]?[Ss]?|[Aa][Ss]?|[Ss])" + < | (1 #x097D = =) (2 move-base-Halant) (4 reorder-post-base) | >) + + ;; A syllable starting with RH (Reph) and ending without a vowel + ;; nor a vowel modifier. + ("(RH)(([CR]n?H)*[CR]n?)(H)?" + < | (1 #x097D = =) (2 move-base-Halant) (4 =) | >) + + ;; A syllable starting with the other consonant and ending with a + ;; vowel and/or a vowel modifier. + ("(([CR]n?H)*[CR]n?)([mubp][Aa]?[Ss]?|[Aa][Ss]?|[Ss])" + < | (1 move-base-Halant) (3 reorder-post-base) | >) + + ;; A syllable starting with the other consonant and ending without + ;; a vowel nor a vowel modifier. + ("(([CR]n?H)*[CR]n?)(H)?" + < | (1 move-base-Halant) (3 =) | >) + + ;; A syllable starting with an independent vowel. + ("V[Aa]?[Ss]?" + < | = * | > ) + + ("." =)) + *) + + ;; Move Halant on a base consonant to the tail. + (move-base-Halant + (cond + ("(([CR]n?H)*[CR]n?)(H)(R)" + (1 = *) + (4 =) + (3 =)) + (".*" + = *))) + + ;; Re-order post modifiers. + (reorder-post-base + ;; 12 3 4 5 67 8 9 10 + ("((m)|(u)|(b)|(p))?((A)|(a))?((S)|(s))?$" + (2 =) (4 =) (10 =) (3 =) (5 =) + #x097E + (7 =) (9 =) (8)))) + +;; The second stage is to reorder Reph and Mpre. +(generator + (0 + (cond + (" [NJ]([^ ]*) " + = *) + (" (x(..))([CRnH]*) " + | (3 = *) (2 otf:deva=rphf) |) + (" (x(..))([CRnH]*)(m?)([^y]*)y([^ ]*) " + | (4 =) (3 = *) (5 = *) (2 otf:deva=rphf) (6 = *) |) + (" ([CRnH][CRnH]*) " + = *) + (" ([CRnH][CRnH]*)(m?)([^y]*)y([^ ]*) " + | (2 =) (1 = *) (3 = *) (4 = *) |) + ("." =)) + *)) + +;; The third stage is to drive OTF tables. For the moment, we use +;; the default LangSys, and try all GSUB/GPOS features except for the +;; sequence followed by ZWNJ in which case try "nukt" and "haln" +;; features only. +(generator + (0 + (cond + (" N([^ ]*) " + (1 otf:deva=nukt,haln)) + + (" J([^ ]*) " + (1 otf:deva)) + + (" ([^ ]*)(CH) " + (1 otf:deva=~rphf,*) (2 otf:deva=haln)) + + (" ([^ ]*) " + (1 otf:deva=~rphf,*)) + + ("." + \[ otf:deva=+ \] )) + *)) + +;; Local Variables: +;; mode: emacs-lisp +;; End: diff --git a/GUJ-OTF.flt b/GUJ-OTF.flt deleted file mode 100644 index ea82498..0000000 --- a/GUJ-OTF.flt +++ /dev/null @@ -1,169 +0,0 @@ -;; GUJ-OTF.flt -- Font Layout Table for Gujarati OpenType fonts -;; Copyright (C) 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • GUJ-OTF.flt -;;; -;;; For Gujarati OpenType fonts to draw the Gujarati script. -;;; Tested with padmaa-Medium-1.5.ttf - -(category - ;; C: general consonant - ;; R: RA - ;; V: independent vowel - ;; H: HALANT - ;; m: MATRA (pre) - ;; u: MATRA (above) - ;; b: MATRA (below) - ;; p: MATRA (post) - ;; A: vowel modifier (above) - ;; a: vowel modifier (post) - ;; N: ZWNJ (ZERO WIDTH NON-JOINER) - ;; J: ZWJ (ZERO WIDTH JOINER) - ;; E: ELSE - ;; - (0x200C ?N) ; ZWNJ - (0x200D ?J) ; ZWJ - (0x0964 ?E) ; DANDA - (0x0965 ?E) ; DOUBLE DANDA - (0x0A80 0x0AFF ?E) ; ELSE - (0x0A81 ?A) ; SIGN CANDRABINDU - (0x0A82 ?A) ; SIGN ANUSVARA - (0x0A83 ?a) ; SIGN VISARGA - (0x0A85 0x0A94 ?V) ; LETTER AA .. LETTER AU - (0x0A95 0x0AB9 ?C) ; LETTER KA .. LETTER HA - (0x0AB0 ?R) ; LETTER RA - (0x0ABC ?n) ; SIGN NUKTA - (0x0ABE ?p) ; VOWEL SIGN AA (post) - (0x0ABF ?m) ; VOWEL SIGN I (pre) - (0x0AC0 ?p) ; VOWEL SIGN II (post) - (0x0AC1 0x0AC4 ?b) ; VOWEL SIGN U, UU, R, RR (below) - (0x0AC5 0x0AC8 ?u) ; VOWEL SIGN CANDRA E, E, AI (above) - (0x0AC9 0x0ACC ?p) ; VOWEL SIGN CANDRA O, O, AU (post) - (0x0ACD ?H) ; SIGN VIRAMA (HALANT) - (0x0AE0 0x0AE1 ?V) ; LETTER VOCALIC RR, LL - (0x0AE2 0x0AE3 ?b) ; VOWEL SIGN VOCALIC RR, LL (below) - (0x0AFF ?X) ; internal use - ) - -;; Step 1 : Syllable identification, Reph and base consonant movements. -(generator - (0 - (cond - ;; A syllable ending with a vowel sign and/or a vowel modifier. - ("(([CR]n?H)*[CR]n?)([mubp][Aa]?|[Aa])" - < | (1 move-reph-vattu) (3 = *) | >) - - ;; Forced Halant or half form. - ("(([CR]n?H)*[CR]n?)(H[NJ])" - < | (1 move-reph-vattu) (3 = =) | >) - - ;; A syllable without a vowel sign nor a vowel modifier. - ("([CR]n?H)*[CR]n?H?" - < | move-reph-vattu | >) - - ;; A syllable starting with an independent vowel. - ("V[Aa]?" - < | = * | >) - - ("." =)) - *) - - ;; Move the leading RH and the Halant on the base consonant to - ;; appropriate positions. - ;; 0x0AFF indicates the destination of below-, above-, post Matras. - (move-reph-vattu - (cond - ;; Ending with Halnt. Immitate a forced Halant form. - ("(.*)(H)$" - (1 move-reph-vattu) (2 =) 0x200C) - - ;; Both Reph and Vattu. - ;;1 23 4 5 - ("(RH)(([CR]n?H)*[CR]n?)(H)(R)$" - (2 = *) (5 =) (4 =) 0x0AFF (1 = =)) - - ;; A special case of above. - ("(RH)(R)$" - (2 =) 0x0AFF (1 = =)) - - ;; Reph but no Vattu. - ("(RH)(([CR]n?H)*Cn?)$" - (2 = *) 0x0AFF (1 = =)) - - ;; No Reph but Vattu. - ("(Cn?(H[CR]n?)*)(H)(R)$" - (1 = *) (4 =) (3 =) 0x0AFF) - - ;; Neither Reph nor Vattu. - (".*" - = * 0x0AFF)))) - -;; Step 2 : Matra movements and OTF forms. -(generator - (0 - (cond - ;; 1 2 3 4 5 6 - (" (RH)?([^X ]*)X(RH)?(m)?([bup])?([Aa])? " - | - (4 =) - (1 otf:gujr=~rphf,~blwf,*) - (2 otf:gujr=~rphf,*) - (5 =) - (3 otf:gujr=rphf) - (6 =) - |) - - (" (RH)?([^X ]*)X(RH)?(HJ) " - | - (1 = =) - (2 otf:gujr=~rphf) - (3 otf:gujr=rphf) - (4 = =) - |) - - (" (RH)?([^X ]*)X(RH)?(H)N " - | - (1 otf:gujr=~rphf,~blwf,*) - (2 otf:gujr=~rphf,*) - (3 otf:gujr=rphf) - (4 =) - |) - - ("." =)) - *)) - -;; Step 3 : OTF substitutions and positionings. -(generator - (0 - (cond - (" (.*)J " - (1 otf:gujr=~rphf,~blwf,*)) - (" ([^ ]*) " - (1 otf:gujr=~rphf,~blwf,~half,~haln,*)) - ("." - [ otf:gujr=+ ])) - *)) - -;; Local Variables: -;; mode: emacs-lisp -;; End: diff --git a/GUJR-OTF.flt b/GUJR-OTF.flt new file mode 100644 index 0000000..ea82498 --- /dev/null +++ b/GUJR-OTF.flt @@ -0,0 +1,169 @@ +;; GUJ-OTF.flt -- Font Layout Table for Gujarati OpenType fonts +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • GUJ-OTF.flt +;;; +;;; For Gujarati OpenType fonts to draw the Gujarati script. +;;; Tested with padmaa-Medium-1.5.ttf + +(category + ;; C: general consonant + ;; R: RA + ;; V: independent vowel + ;; H: HALANT + ;; m: MATRA (pre) + ;; u: MATRA (above) + ;; b: MATRA (below) + ;; p: MATRA (post) + ;; A: vowel modifier (above) + ;; a: vowel modifier (post) + ;; N: ZWNJ (ZERO WIDTH NON-JOINER) + ;; J: ZWJ (ZERO WIDTH JOINER) + ;; E: ELSE + ;; + (0x200C ?N) ; ZWNJ + (0x200D ?J) ; ZWJ + (0x0964 ?E) ; DANDA + (0x0965 ?E) ; DOUBLE DANDA + (0x0A80 0x0AFF ?E) ; ELSE + (0x0A81 ?A) ; SIGN CANDRABINDU + (0x0A82 ?A) ; SIGN ANUSVARA + (0x0A83 ?a) ; SIGN VISARGA + (0x0A85 0x0A94 ?V) ; LETTER AA .. LETTER AU + (0x0A95 0x0AB9 ?C) ; LETTER KA .. LETTER HA + (0x0AB0 ?R) ; LETTER RA + (0x0ABC ?n) ; SIGN NUKTA + (0x0ABE ?p) ; VOWEL SIGN AA (post) + (0x0ABF ?m) ; VOWEL SIGN I (pre) + (0x0AC0 ?p) ; VOWEL SIGN II (post) + (0x0AC1 0x0AC4 ?b) ; VOWEL SIGN U, UU, R, RR (below) + (0x0AC5 0x0AC8 ?u) ; VOWEL SIGN CANDRA E, E, AI (above) + (0x0AC9 0x0ACC ?p) ; VOWEL SIGN CANDRA O, O, AU (post) + (0x0ACD ?H) ; SIGN VIRAMA (HALANT) + (0x0AE0 0x0AE1 ?V) ; LETTER VOCALIC RR, LL + (0x0AE2 0x0AE3 ?b) ; VOWEL SIGN VOCALIC RR, LL (below) + (0x0AFF ?X) ; internal use + ) + +;; Step 1 : Syllable identification, Reph and base consonant movements. +(generator + (0 + (cond + ;; A syllable ending with a vowel sign and/or a vowel modifier. + ("(([CR]n?H)*[CR]n?)([mubp][Aa]?|[Aa])" + < | (1 move-reph-vattu) (3 = *) | >) + + ;; Forced Halant or half form. + ("(([CR]n?H)*[CR]n?)(H[NJ])" + < | (1 move-reph-vattu) (3 = =) | >) + + ;; A syllable without a vowel sign nor a vowel modifier. + ("([CR]n?H)*[CR]n?H?" + < | move-reph-vattu | >) + + ;; A syllable starting with an independent vowel. + ("V[Aa]?" + < | = * | >) + + ("." =)) + *) + + ;; Move the leading RH and the Halant on the base consonant to + ;; appropriate positions. + ;; 0x0AFF indicates the destination of below-, above-, post Matras. + (move-reph-vattu + (cond + ;; Ending with Halnt. Immitate a forced Halant form. + ("(.*)(H)$" + (1 move-reph-vattu) (2 =) 0x200C) + + ;; Both Reph and Vattu. + ;;1 23 4 5 + ("(RH)(([CR]n?H)*[CR]n?)(H)(R)$" + (2 = *) (5 =) (4 =) 0x0AFF (1 = =)) + + ;; A special case of above. + ("(RH)(R)$" + (2 =) 0x0AFF (1 = =)) + + ;; Reph but no Vattu. + ("(RH)(([CR]n?H)*Cn?)$" + (2 = *) 0x0AFF (1 = =)) + + ;; No Reph but Vattu. + ("(Cn?(H[CR]n?)*)(H)(R)$" + (1 = *) (4 =) (3 =) 0x0AFF) + + ;; Neither Reph nor Vattu. + (".*" + = * 0x0AFF)))) + +;; Step 2 : Matra movements and OTF forms. +(generator + (0 + (cond + ;; 1 2 3 4 5 6 + (" (RH)?([^X ]*)X(RH)?(m)?([bup])?([Aa])? " + | + (4 =) + (1 otf:gujr=~rphf,~blwf,*) + (2 otf:gujr=~rphf,*) + (5 =) + (3 otf:gujr=rphf) + (6 =) + |) + + (" (RH)?([^X ]*)X(RH)?(HJ) " + | + (1 = =) + (2 otf:gujr=~rphf) + (3 otf:gujr=rphf) + (4 = =) + |) + + (" (RH)?([^X ]*)X(RH)?(H)N " + | + (1 otf:gujr=~rphf,~blwf,*) + (2 otf:gujr=~rphf,*) + (3 otf:gujr=rphf) + (4 =) + |) + + ("." =)) + *)) + +;; Step 3 : OTF substitutions and positionings. +(generator + (0 + (cond + (" (.*)J " + (1 otf:gujr=~rphf,~blwf,*)) + (" ([^ ]*) " + (1 otf:gujr=~rphf,~blwf,~half,~haln,*)) + ("." + [ otf:gujr=+ ])) + *)) + +;; Local Variables: +;; mode: emacs-lisp +;; End: diff --git a/GUR-OTF.flt b/GUR-OTF.flt deleted file mode 100644 index e55eef5..0000000 --- a/GUR-OTF.flt +++ /dev/null @@ -1,141 +0,0 @@ -;; GUR-OTF.flt -- Font Layout Table for Gurmukhi OpenType fonts -;; Copyright (C) 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • GUR-OTF.flt -;;; -;;; For Gurmukhi OpenType fonts to draw the Punjabi script. -;;; Designed for saab.otf (version 0.91). -;;; - -(category - ;; C: general consonant - ;; Y: post-base consonat (YA) - ;; R: below-base consonat (RA, VA, HA) - ;; n: NUKTA - ;; H: HALANT - ;; m: MATRA (pre) - ;; u: MATRA (above) - ;; b: MATRA (below) - ;; p: MATRA (post) - ;; A: vowel modifier (above) - ;; a: vowel modifier (post) - ;; V: independent vowel - ;; N: ZWNJ (ZERO WIDTH NON-JOINER) - ;; J: ZWJ (ZERO WIDTH JOINER) - ;; E: ELSE - ;; - (0x200C ?N) ; ZWNJ - (0x200D ?J) ; ZWJ - (0x0964 ?E) ; DANDA - (0x0965 ?E) ; DOUBLE DANDA - (0x0A00 0x0A7F ?E) ; ELSE - (0x0A01 ?A) ; SIGN ADAK BINDI (above) - (0x0A02 ?A) ; SIGN BINDI (above) - (0x0A03 ?a) ; SIGN VISARGA (post) - (0x0A05 0x0A14 ?V) ; LETTER A .. LETTER AU - (0x0A15 0x0A38 ?C) ; LETTER KA .. LETTER SA - (0x0A2F ?Y) ; LETTER YA - (0x0A30 ?R) ; LETTER RA - (0x0A35 ?R) ; LETTER VA - (0x0A39 ?R) ; LETTER HA - (0x0A3C ?n) ; SIGN NUKTA - (0x0A3E ?p) ; VOWEL SIGN AA (post) - (0x0A3F ?m) ; VOWEL SIGN I (pre) - (0x0A40 ?p) ; VOWEL SIGN II (post) - (0x0A41 ?b) ; VOWEL SIGN U (below) - (0x0A42 ?b) ; VOWEL SIGN UU (below) - (0x0A47 ?u) ; VOWEL SIGN EE (above) - (0x0A48 ?u) ; VOWEL SIGN AI (above) - (0x0A4B ?u) ; VOWEL SIGN OO (above) - (0x0A4C ?u) ; VOWEL SIGN AU (above) - (0x0A4D ?H) ; SIGN VIRAMA (HALANT) - (0x0A59 0x0A5E ?C) ; LETTER KHHA .. LETTER FA - (0x0A70 ?A) ; TIPPI (above) - (0x0A7F ?X) ; internal use - ) - -;; Step 1 : Syllable identification and Halant movement. -(generator - (0 - (cond - ;; A syllable ending with a vowel sign and/or a vowel modifier. - ("(([CRY]n?H)*[CRY]n?)([mubp][Aa]?|[Aa])" - < | (1 move-base-Halant) (3 =) | >) - - ;; A syllable without a vowel sign nor a vowel modifier. - ("(([CRY]n?H)*[CRY]n?)(H)?" - < | move-base-Halant | >) - - ;; A syllable starting with an independent vowel. - ("V[Aa]?" - < | = * | > ) - - ("." =)) - *) - - ;; Move Halant on the base consonant to the tail. - ;; 0x0A7F indicates the position for above- or below Matra. - (move-base-Halant - (cond - ("(([CRY]n?H)*[CRY]n?)(H)(Y)$" - (1 = *) - 0x0A7F - (4 =) - (3 =)) - ("(([CRY]n?H)*[CRY]n?)(H)(R)$" - (1 = *) - (4 =) - (3 =) - 0x0A7F) - ("([CRY]n?H)*[CRY]n?H$" - = * 0x200C) - (".*" - = * 0x0A7F)))) - -;; Step 2 : Move Matra. -(generator - (0 - (cond - ;; 1 2 3 4 5 6 - (" ([CRYnH]*)X(YH)?(m)?([ub])?(p)?([Aa])? " - | (3 =) (1 = *) (4 =) (2 = =) (5 =) (6 =) |) - ("." =)) - *)) - -;; Step 3 : Drive OTF tables. -(generator - (0 - (cond - (" ([^ ]*H)N " - (1 otf:guru=nukt)) - (" ([^ ]*) " - (1 otf:guru=nukt,vatu,pstf,abvs,blws)) - ((0x0A71) - otf:guru) - ("." - [ otf:guru=+ ] )) - *)) - -;; Local Variables: -;; mode: emacs-lisp -;; End: diff --git a/GURU-OTF.flt b/GURU-OTF.flt new file mode 100644 index 0000000..e55eef5 --- /dev/null +++ b/GURU-OTF.flt @@ -0,0 +1,141 @@ +;; GUR-OTF.flt -- Font Layout Table for Gurmukhi OpenType fonts +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • GUR-OTF.flt +;;; +;;; For Gurmukhi OpenType fonts to draw the Punjabi script. +;;; Designed for saab.otf (version 0.91). +;;; + +(category + ;; C: general consonant + ;; Y: post-base consonat (YA) + ;; R: below-base consonat (RA, VA, HA) + ;; n: NUKTA + ;; H: HALANT + ;; m: MATRA (pre) + ;; u: MATRA (above) + ;; b: MATRA (below) + ;; p: MATRA (post) + ;; A: vowel modifier (above) + ;; a: vowel modifier (post) + ;; V: independent vowel + ;; N: ZWNJ (ZERO WIDTH NON-JOINER) + ;; J: ZWJ (ZERO WIDTH JOINER) + ;; E: ELSE + ;; + (0x200C ?N) ; ZWNJ + (0x200D ?J) ; ZWJ + (0x0964 ?E) ; DANDA + (0x0965 ?E) ; DOUBLE DANDA + (0x0A00 0x0A7F ?E) ; ELSE + (0x0A01 ?A) ; SIGN ADAK BINDI (above) + (0x0A02 ?A) ; SIGN BINDI (above) + (0x0A03 ?a) ; SIGN VISARGA (post) + (0x0A05 0x0A14 ?V) ; LETTER A .. LETTER AU + (0x0A15 0x0A38 ?C) ; LETTER KA .. LETTER SA + (0x0A2F ?Y) ; LETTER YA + (0x0A30 ?R) ; LETTER RA + (0x0A35 ?R) ; LETTER VA + (0x0A39 ?R) ; LETTER HA + (0x0A3C ?n) ; SIGN NUKTA + (0x0A3E ?p) ; VOWEL SIGN AA (post) + (0x0A3F ?m) ; VOWEL SIGN I (pre) + (0x0A40 ?p) ; VOWEL SIGN II (post) + (0x0A41 ?b) ; VOWEL SIGN U (below) + (0x0A42 ?b) ; VOWEL SIGN UU (below) + (0x0A47 ?u) ; VOWEL SIGN EE (above) + (0x0A48 ?u) ; VOWEL SIGN AI (above) + (0x0A4B ?u) ; VOWEL SIGN OO (above) + (0x0A4C ?u) ; VOWEL SIGN AU (above) + (0x0A4D ?H) ; SIGN VIRAMA (HALANT) + (0x0A59 0x0A5E ?C) ; LETTER KHHA .. LETTER FA + (0x0A70 ?A) ; TIPPI (above) + (0x0A7F ?X) ; internal use + ) + +;; Step 1 : Syllable identification and Halant movement. +(generator + (0 + (cond + ;; A syllable ending with a vowel sign and/or a vowel modifier. + ("(([CRY]n?H)*[CRY]n?)([mubp][Aa]?|[Aa])" + < | (1 move-base-Halant) (3 =) | >) + + ;; A syllable without a vowel sign nor a vowel modifier. + ("(([CRY]n?H)*[CRY]n?)(H)?" + < | move-base-Halant | >) + + ;; A syllable starting with an independent vowel. + ("V[Aa]?" + < | = * | > ) + + ("." =)) + *) + + ;; Move Halant on the base consonant to the tail. + ;; 0x0A7F indicates the position for above- or below Matra. + (move-base-Halant + (cond + ("(([CRY]n?H)*[CRY]n?)(H)(Y)$" + (1 = *) + 0x0A7F + (4 =) + (3 =)) + ("(([CRY]n?H)*[CRY]n?)(H)(R)$" + (1 = *) + (4 =) + (3 =) + 0x0A7F) + ("([CRY]n?H)*[CRY]n?H$" + = * 0x200C) + (".*" + = * 0x0A7F)))) + +;; Step 2 : Move Matra. +(generator + (0 + (cond + ;; 1 2 3 4 5 6 + (" ([CRYnH]*)X(YH)?(m)?([ub])?(p)?([Aa])? " + | (3 =) (1 = *) (4 =) (2 = =) (5 =) (6 =) |) + ("." =)) + *)) + +;; Step 3 : Drive OTF tables. +(generator + (0 + (cond + (" ([^ ]*H)N " + (1 otf:guru=nukt)) + (" ([^ ]*) " + (1 otf:guru=nukt,vatu,pstf,abvs,blws)) + ((0x0A71) + otf:guru) + ("." + [ otf:guru=+ ] )) + *)) + +;; Local Variables: +;; mode: emacs-lisp +;; End: diff --git a/HEBR-FF.flt b/HEBR-FF.flt new file mode 100644 index 0000000..da988c1 --- /dev/null +++ b/HEBR-FF.flt @@ -0,0 +1,98 @@ +;; HEBREW-FF.flt -- Font Layout Table for Hebrew fonts (Unicode encoding) +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • HEBREW-FF.flt +;;; +;;; For Hebrew fonts of Unicode encoding to draw the Hebrew script. +;;; This is for such fonts that do not require an explicit combining +;;; code because accents and points have negative lbearing. + +(category + (0x0590 0x05ff ?h) ; hebrew + ) + +(generator + (0 + (cond + ((0x05d9 0x05b4) 0xfb1d) + ((0x05e9 0x05c1) 0xfb2a) + ((0x05e9 0x05c2) 0xfb2b) + ((0x05e9 0x05bc 0x05c1) 0xfb2c) + ((0x05e9 0x05bc 0x05c2) 0xfb2d) + ((0x05d0 0x05b7) 0xfb2e) + ((0x05d0 0x05b8) 0xfb2f) + ((0x05d0 0x05bc) 0xfb30) + ((0x05d1 0x05bc) 0xfb31) + ((0x05d2 0x05bc) 0xfb32) + ((0x05d3 0x05bc) 0xfb33) + ((0x05d4 0x05bc) 0xfb34) + ((0x05d5 0x05bc) 0xfb35) + ((0x05d6 0x05bc) 0xfb36) + ((0x05d8 0x05bc) 0xfb38) + ((0x05d9 0x05bc) 0xfb39) + ((0x05da 0x05bc) 0xfb3a) + ((0x05db 0x05bc) 0xfb3b) + ((0x05dc 0x05bc) 0xfb3c) + ((0x05de 0x05bc) 0xfb3e) + ((0x05e0 0x05bc) 0xfb40) + ((0x05e1 0x05bc) 0xfb41) + ((0x05e3 0x05bc) 0xfb43) + ((0x05e4 0x05bc) 0xfb44) + ((0x05e6 0x05bc) 0xfb46) + ((0x05e7 0x05bc) 0xfb47) + ((0x05e8 0x05bc) 0xfb48) + ((0x05e9 0x05bc) 0xfb49) + ((0x05ea 0x05bc) 0xfb4a) + ((0x05d5 0x05b9) 0xfb4b) + ((0x05d1 0x05bf) 0xfb4c) + ((0x05db 0x05bf) 0xfb4d) + ((0x05e4 0x05bf) 0xfb4e) + ;; The font FreeSerif.ttf does not have this glyph?!? + ;; ((0x05b0) 0x05b4 Bc-13Bc 0x05b4) + ("." =)) + *)) + +(category + (0x0590 0x05af ?p) ; accents + (0x05d0 0x05ff ?h) ; letters + (0xfb1d 0xfb4e ?h) ; presentation forms + (0x05b0 0x05c4 ?p) ; points + (0x05be ?h) ; punctuation + (0x05c0 ?h) ; punctuation + (0x05c3 ?h) ; punctuation + ) + +(generator + (0 + (cond + ("(h)(p+)" + < + = * + >) + ("." = *)) + *) + ) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/HEBR.flt b/HEBR.flt new file mode 100644 index 0000000..d1458a2 --- /dev/null +++ b/HEBR.flt @@ -0,0 +1,97 @@ +;; HEBREW.flt -- Font Layout Table for Hebrew font (Unicode encoding) +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • HEBREW.flt +;;; +;;; For Hebrew fonts of Unicode encoding to draw Hebrew script. This +;;; is for such a font that requires explicit combining code to draw +;;; accents and points. + +(category + (0x0590 0x05ff ?h) ; hebrew + ) + +(generator + (0 + (cond + ((0x05d9 0x05b4) 0xfb1d) + ((0x05e9 0x05c1) 0xfb2a) + ((0x05e9 0x05c2) 0xfb2b) + ((0x05e9 0x05bc 0x05c1) 0xfb2c) + ((0x05e9 0x05bc 0x05c2) 0xfb2d) + ((0x05d0 0x05b7) 0xfb2e) + ((0x05d0 0x05b8) 0xfb2f) + ((0x05d0 0x05bc) 0xfb30) + ((0x05d1 0x05bc) 0xfb31) + ((0x05d2 0x05bc) 0xfb32) + ((0x05d3 0x05bc) 0xfb33) + ((0x05d4 0x05bc) 0xfb34) + ((0x05d5 0x05bc) 0xfb35) + ((0x05d6 0x05bc) 0xfb36) + ((0x05d8 0x05bc) 0xfb38) + ((0x05d9 0x05bc) 0xfb39) + ((0x05da 0x05bc) 0xfb3a) + ((0x05db 0x05bc) 0xfb3b) + ((0x05dc 0x05bc) 0xfb3c) + ((0x05de 0x05bc) 0xfb3e) + ((0x05e0 0x05bc) 0xfb40) + ((0x05e1 0x05bc) 0xfb41) + ((0x05e3 0x05bc) 0xfb43) + ((0x05e4 0x05bc) 0xfb44) + ((0x05e6 0x05bc) 0xfb46) + ((0x05e7 0x05bc) 0xfb47) + ((0x05e8 0x05bc) 0xfb48) + ((0x05e9 0x05bc) 0xfb49) + ((0x05ea 0x05bc) 0xfb4a) + ((0x05d5 0x05b9) 0xfb4b) + ((0x05d1 0x05bf) 0xfb4c) + ((0x05db 0x05bf) 0xfb4d) + ((0x05e4 0x05bf) 0xfb4e) + ("." =)) + *)) + +(category + (0x0590 0x05af ?p) ; accents + (0x05d0 0x05ff ?h) ; letters + (0xfb1d 0xfb4e ?h) ; presentation forms + (0x05b0 0x05c4 ?p) ; points + (0x05be ?h) ; punctuation + (0x05c0 ?h) ; punctuation + (0x05c3 ?h) ; punctuation + ) + +(generator + (0 + (cond + ("(h)(p+)" + < + (1 =) + (2 ("." Bc.Bc =) *) + >) + ("." = *)) + *) + ) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/HEBREW-FF.flt b/HEBREW-FF.flt deleted file mode 100644 index da988c1..0000000 --- a/HEBREW-FF.flt +++ /dev/null @@ -1,98 +0,0 @@ -;; HEBREW-FF.flt -- Font Layout Table for Hebrew fonts (Unicode encoding) -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • HEBREW-FF.flt -;;; -;;; For Hebrew fonts of Unicode encoding to draw the Hebrew script. -;;; This is for such fonts that do not require an explicit combining -;;; code because accents and points have negative lbearing. - -(category - (0x0590 0x05ff ?h) ; hebrew - ) - -(generator - (0 - (cond - ((0x05d9 0x05b4) 0xfb1d) - ((0x05e9 0x05c1) 0xfb2a) - ((0x05e9 0x05c2) 0xfb2b) - ((0x05e9 0x05bc 0x05c1) 0xfb2c) - ((0x05e9 0x05bc 0x05c2) 0xfb2d) - ((0x05d0 0x05b7) 0xfb2e) - ((0x05d0 0x05b8) 0xfb2f) - ((0x05d0 0x05bc) 0xfb30) - ((0x05d1 0x05bc) 0xfb31) - ((0x05d2 0x05bc) 0xfb32) - ((0x05d3 0x05bc) 0xfb33) - ((0x05d4 0x05bc) 0xfb34) - ((0x05d5 0x05bc) 0xfb35) - ((0x05d6 0x05bc) 0xfb36) - ((0x05d8 0x05bc) 0xfb38) - ((0x05d9 0x05bc) 0xfb39) - ((0x05da 0x05bc) 0xfb3a) - ((0x05db 0x05bc) 0xfb3b) - ((0x05dc 0x05bc) 0xfb3c) - ((0x05de 0x05bc) 0xfb3e) - ((0x05e0 0x05bc) 0xfb40) - ((0x05e1 0x05bc) 0xfb41) - ((0x05e3 0x05bc) 0xfb43) - ((0x05e4 0x05bc) 0xfb44) - ((0x05e6 0x05bc) 0xfb46) - ((0x05e7 0x05bc) 0xfb47) - ((0x05e8 0x05bc) 0xfb48) - ((0x05e9 0x05bc) 0xfb49) - ((0x05ea 0x05bc) 0xfb4a) - ((0x05d5 0x05b9) 0xfb4b) - ((0x05d1 0x05bf) 0xfb4c) - ((0x05db 0x05bf) 0xfb4d) - ((0x05e4 0x05bf) 0xfb4e) - ;; The font FreeSerif.ttf does not have this glyph?!? - ;; ((0x05b0) 0x05b4 Bc-13Bc 0x05b4) - ("." =)) - *)) - -(category - (0x0590 0x05af ?p) ; accents - (0x05d0 0x05ff ?h) ; letters - (0xfb1d 0xfb4e ?h) ; presentation forms - (0x05b0 0x05c4 ?p) ; points - (0x05be ?h) ; punctuation - (0x05c0 ?h) ; punctuation - (0x05c3 ?h) ; punctuation - ) - -(generator - (0 - (cond - ("(h)(p+)" - < - = * - >) - ("." = *)) - *) - ) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/HEBREW.flt b/HEBREW.flt deleted file mode 100644 index d1458a2..0000000 --- a/HEBREW.flt +++ /dev/null @@ -1,97 +0,0 @@ -;; HEBREW.flt -- Font Layout Table for Hebrew font (Unicode encoding) -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • HEBREW.flt -;;; -;;; For Hebrew fonts of Unicode encoding to draw Hebrew script. This -;;; is for such a font that requires explicit combining code to draw -;;; accents and points. - -(category - (0x0590 0x05ff ?h) ; hebrew - ) - -(generator - (0 - (cond - ((0x05d9 0x05b4) 0xfb1d) - ((0x05e9 0x05c1) 0xfb2a) - ((0x05e9 0x05c2) 0xfb2b) - ((0x05e9 0x05bc 0x05c1) 0xfb2c) - ((0x05e9 0x05bc 0x05c2) 0xfb2d) - ((0x05d0 0x05b7) 0xfb2e) - ((0x05d0 0x05b8) 0xfb2f) - ((0x05d0 0x05bc) 0xfb30) - ((0x05d1 0x05bc) 0xfb31) - ((0x05d2 0x05bc) 0xfb32) - ((0x05d3 0x05bc) 0xfb33) - ((0x05d4 0x05bc) 0xfb34) - ((0x05d5 0x05bc) 0xfb35) - ((0x05d6 0x05bc) 0xfb36) - ((0x05d8 0x05bc) 0xfb38) - ((0x05d9 0x05bc) 0xfb39) - ((0x05da 0x05bc) 0xfb3a) - ((0x05db 0x05bc) 0xfb3b) - ((0x05dc 0x05bc) 0xfb3c) - ((0x05de 0x05bc) 0xfb3e) - ((0x05e0 0x05bc) 0xfb40) - ((0x05e1 0x05bc) 0xfb41) - ((0x05e3 0x05bc) 0xfb43) - ((0x05e4 0x05bc) 0xfb44) - ((0x05e6 0x05bc) 0xfb46) - ((0x05e7 0x05bc) 0xfb47) - ((0x05e8 0x05bc) 0xfb48) - ((0x05e9 0x05bc) 0xfb49) - ((0x05ea 0x05bc) 0xfb4a) - ((0x05d5 0x05b9) 0xfb4b) - ((0x05d1 0x05bf) 0xfb4c) - ((0x05db 0x05bf) 0xfb4d) - ((0x05e4 0x05bf) 0xfb4e) - ("." =)) - *)) - -(category - (0x0590 0x05af ?p) ; accents - (0x05d0 0x05ff ?h) ; letters - (0xfb1d 0xfb4e ?h) ; presentation forms - (0x05b0 0x05c4 ?p) ; points - (0x05be ?h) ; punctuation - (0x05c0 ?h) ; punctuation - (0x05c3 ?h) ; punctuation - ) - -(generator - (0 - (cond - ("(h)(p+)" - < - (1 =) - (2 ("." Bc.Bc =) *) - >) - ("." = *)) - *) - ) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/KAN-OTF.flt b/KAN-OTF.flt deleted file mode 100644 index 073c3a9..0000000 --- a/KAN-OTF.flt +++ /dev/null @@ -1,167 +0,0 @@ -;; KAN-OTF.flt -- Font Layout Table for Kannada OpenType fonts -;; Copyright (C) 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • KAN-OTF.flt -;;; -;;; For Kannada OpenType fonts to draw Kannada. -;;; Designed for Sampige.ttf - -(category - ;; C: general consonant - ;; R: no below-base consonat (RRA, NNNA, LLLA) - ;; r: RA - ;; H: HALANT - ;; u: MATRA (above) - ;; p: MATRA (post) - ;; t: MATRA (two-part) - ;; T: MATRA (three-part) - ;; a: vowel modifier (post) - ;; V: independent vowel - ;; N: ZWNJ (ZERO WIDTH NON-JOINER) - ;; J: ZWJ (ZERO WIDTH JOINER) - ;; E: ELSE - ;; - (0x200C ?N) ; ZWNJ - (0x200D ?J) ; ZWJ - (0x0964 ?E) ; DANDA - (0x0965 ?E) ; DOUBLE DANDA - (0x0C80 0x0CFF ?E) ; ELSE - (0x0C82 ?a) ; SIGN ANUSVARA - (0x0C83 ?a) ; SIGN VISARGA - (0x0C85 0x0C94 ?V) ; LETTER A .. LETTER AU - (0x0C95 0x0CB9 ?C) ; LETTER KA .. LETTER HA - (0x0CB0 ?r) ; LETTER RA - (0x0CBC ?n) ; SIGN NUKTA - (0x0CBD ?E) ; SIGN AVAGRAHA - (0x0CBE ?p) ; VOWEL SIGN AA (post) - (0x0CBF ?u) ; VOWEL SIGN I (above) - (0x0CC0 ?t) ; VOWEL SIGN II (two-part) - (0x0CC1 0x0CC4 ?p) ; VOWEL SIGN U, UU, R, RR (post) - (0x0CC6 ?u) ; VOWEL SIGN E (above) - (0x0CC7 0x0CCA ?t) ; VOWEL SIGN EE, AI, O (two-part) - (0x0CCB ?T) ; VOWEL SIGN OO (three-part) - (0x0CCC ?u) ; VOWEL SIGN AU (above) - (0x0CCD ?H) ; SIGN VIRAMA (HALANT) - (0x0CD5 ?l) ; LENGTH MARK (length post) - (0x0CD6 ?l) ; AI LENGTH MARK (length post) - (0x0CDE ?C) ; LETTER FA (LLLA) - (0x0CE0 0x0CE1 ?V) ; LETTER VOCALIC RR, LL - (0x0CFD ?Z) ; internal use - (0x0CFE ?Y) ; internal use - (0x0CFF ?X) ; internal use - ) - -;; Step 1 : Syllable identification and Halant movement. -(generator - (0 - (cond - ;; A syllable containing a three-part vowel sign. - ("([CRr](H[Cr])*)(T)(a)?" - < | (1 move-base-Halant) (3 0x0CC6 0x0CC2 0x0CD5) (4 =) | >) - - ;; A syllable containing a two-part vowel sign. - ("([CRr](H[Cr])*)(t)(a)?" - < | (1 move-base-Halant) (3 two-part) (4 =) | >) - - ;; A syllable ending with vowel signs and/or a vowel modifier. - ("([CRr](H[Cr])*)([upl]+a?|a)" - < | (1 move-base-Halant) (3 = *) | >) - - ;; Forced Halant form. - ("((RH)?([Cr]H)*)([Cr]H)N" - < | (1 move-base-Halant) | > - < | (4 move-base-Halant) | >) - - ;; Forced Half form. - ("((RH)?([Cr]H)*)([Cr]H)J" - < | (1 move-base-Halant) > - < | (4 otf:knda=blwf) | >) - - ;; A syllable without a vowel sign nor a vowel modifier. - ("[CRr](H[Cr])*H?" - < | move-base-Halant | >) - - ;; A syllable starting with an independent vowel. - ("Va?" - < | = * | > ) - - ("." =)) - *) - - ;; Move Halant on the base consonant to the tail if the syllable ends - ;; with a consonant. - ;; A leading 0x0CFF means Halant movement. - ;; A leading 0x0CFE means a syllable ending with a Halant. - ;; A leading 0x0CFD means Halant & Reph movements. - (move-base-Halant - (cond - (".*H$" - 0x0CFE = *) - ("(rH)(.)$" - 0x0CFD (2 =) (1 = =)) - ("(rH)(.)(H)(.*)" - 0x0CFD (2 =) (4 = *) (3 =) (1 = =)) - ("(.)(H)(.*)" - 0x0CFF (1 =) (3 = *) (2 =)) - (".*" - = *))) - - ;; Divide a two-part Matra into elements. - (two-part - (cond - ((0x0CC0) 0x0CBF 0x0CD5) - ((0x0CC7) 0x0CC6 0x0CD5) - ((0x0CC8) 0x0CC6 0x0CD6) - ((0x0CCA) 0x0CC6 0x0CC2))) - ) - -;; Step 2 : Move Matra if applicable. -;; The base consonant in a Halant-ending syllable is changed into Halant form. -(generator - (0 - (cond - ;; 1 2 3 4 5 6 7 - (" Z(.)([CrH]*)(rH)(u)?(p)?(l*)(a)? " - | (1 =) (4 =) (5 =) (2 = *) (6 = *) (3 otf:knda=rphf) (7 =) |) - ;; 1 2 3 4 5 6 - (" X(.)([CrH]*)(u)?(p)?(l*)(a)? " - | (1 =) (3 =) (4 =) (2 = *) (5 = *) (6 =) |) - (" Y(..)([^ ]*) " - ;; Sampige.ttf lacks the haln feature, so "otf:knda=haln" does not work. - | (1 otf:knda=~rphf,~blwf,*) (2 = *) |) - ("." =)) - *)) - -;; Step 3 : Drive OTF tables. -(generator - (0 - (cond - (" ([^ ]*) " - (1 otf:knda=~rphf,*)) - ("." - [ otf:knda=+ ])) - *)) - -;; Local Variables: -;; mode: emacs-lisp -;; End: diff --git a/KHMER-ANLONG.flt b/KHMER-ANLONG.flt deleted file mode 100644 index cf3d816..0000000 --- a/KHMER-ANLONG.flt +++ /dev/null @@ -1,272 +0,0 @@ -;; KHMER-ANLONG.flt -- Font Layout Table for Khmer (Anlong font) -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • KHMER-ANLONG.flt -;;; -;;; For the font ANLONG.TTF to draw Khmer script. The font is -;;; available at: -;;; - -(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-) - ((0x179E) < 0x9B cr-) - ((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) - ((0x17C0) < 0xCD 0x20 Br) - ((range 0x17C1 0x17C3) 0xCD) - ((0x17C4) < 0xCD 0x20 Br) - ((0x17C5) < 0xCD 0x20 Br) - ((0x17C6) 0xD1) - ((0x17C7) 0xD3) - ((0x17C8) 0x3A) - ((0x17C9) 0xF6) - ((range 0x17CA 0x17CB) 0xF4) - ((0x17CC) 0xF8) - ((0x17CD) 0xF7) - ((0x17CE) < 0x20 tc+80bc 0x2B >) - ((range 0x17CF 0x17D0) 0xF9) - ((0x17D1) < 0x20 tc+80bc 0x5F >) - ((0x17D2) < 0x20 bc-tc 0x5E >) - ((0x17D3) 0xD1) - ((range 0x17D4 0x17D5) 0xFC) - ((0x17D6) 0xFB) - ((0x17D7) 0xFE) - ((0x17D8) < 0xFC 0xA6 0xFC >) - ((0x17D9) < 0x30 cr<10cl 0xD2 >) - ((0x17DA) 0x8D) - ((0x17DB) < 0xFF br->10tl 0xC3 >) - ((0x17DC) 0x53) - ((range 0x17E0 0x17E9) 0x30))) - - (conjunct - (cond - ((0x1780) br-tl 0xD4) - ((0x1781) br-tl 0xD5) - ((0x1782) br-tl 0xD6) - ((0x1783) Br.Bl 0xD7) - ((0x1784) br-tl 0xD8) - ((0x1785) br-tl 0xD9) - ((0x1786) br-tl 0xDA) - ((0x1787) br-tl 0xDB) - ((0x1788) Br.Bl 0xDC) - ((0x1789) br-tl 0xDE) - ((0x178A) br-tl 0xE3) - ((0x178B) br-tl 0xDF) - ((0x178C) br-tl 0xE0) - ((0x178D) Br.Bl 0xE1) - ((0x178E) br-tl 0xE2) - ((0x178F) br-tl 0xE3) - ((0x1790) br-tl 0xE4) - ((0x1791) br-tl 0xE5) - ((0x1792) br-tl 0xE6) - ((0x1793) br-tl 0xE7) - ((0x1794) Br.Bl 0xE8) - ((0x1795) br-tl 0xE9) - ((0x1796) br-tl 0xEA) - ((0x1797) br-tl 0xEB) - ((0x1798) br-tl 0xEC) - ((0x1799) Br.Bl 0xED) - ((0x179A) Bl+Bc 0xEE) - ((0x179B) br-tl 0xEF) - ((0x179C) br-tl 0xF0) - ((0x179D) br-tl 0xD6 br.bl 0xFA) - ((0x179E) Br.Bl 0xE8 br.bl 0xFA) - ((0x179F) Br.Bl 0xF1) - ((0x17A0) br-tl 0xF2) - ((0x17A2) br-tl 0xF3) - ((0x17A7) br-tl 0xD5 br.bl 0xC4) ; ugly compromise - ((0x17AB) br-tl 0xA1) ; ugly compromise - ((0x17AF) br-tl 0xB4))) ; ugly compromise - - (vowel-and-sign - (cond - ((0x17B6) Br-Bl 0xBA) - ((0x17B7) tr+bl 0xBB) - ((0x17B8) tr+bl 0xBD) - ((0x17B9) tr+bl 0xBF) - ((0x17BA) tr+bl 0xC1) - ((0x17BB) br+tr 0xC3) - ((0x17BC) br-tl 0xC5) - ((0x17BD) br-tl 0xC7) - ((0x17BE) tr+bl 0xBD Bl.Br 0xCD) - ((0x17BF) Br.Bl 0xC9 Bl.Br 0xCD) - ((0x17C0) Br.Bl 0xCB Bl.Br 0xCD) - ((0x17C1) Bl.Br 0xCD) - ((0x17C2) Bl.Br 0xCE) - ((0x17C3) Bl.Br 0xCF) - ((0x17C4) Bl.Br 0xCD Br.Bl 0xBA) - ((0x17C5) Bl.Br 0xCD Br.Bl 0xD0) - ((0x17C6) tr+bl 0xD1) - ((0x17C7) Br.Bl 0xD3) - ((0x17C8) Br.Bl 0x3A) - ((0x17C9) tr+bl 0xF6) - ((0x17CA) tr+bl 0xF4) - ((0x17CB) tr+bl 0xF5) - ((0x17CC) tr+bl 0xF8) - ((0x17CD) tr+bl 0xF7) - ((0x17CE) tr+>br 0x2B) - ((0x17CF) tr+bl 0xF9) - ((0x17D0) tr+bl 0xFA)))) - -(category - ;; WIDTH HEIGHT DEPTH - ;; N: normal normal normal - ;; T: normal high normal - ;; W: wide normal normal - ;; n: normal normal deep - ;; w: wide normal deep - ;; V: right part of KHMER VOWEL SIGN YA and IE - ;; x: separator - (0x00 0xFF ?N) - (0x00 ?x) - (0x85 ?W) - (0x89 ?T) - (0x8A 0x8B ?W) - (0x8C ?w) - (0x91 0x92 ?T) - (0x93 0x94 ?W) - (0x97 ?T) - (0x9F ?T) - (0xA4 ?W) - (0xA6 ?W) - (0xA8 0xA9 ?W) - (0xAA ?w) - (0xAC ?T) - (0xAD ?w) - (0xAF ?T) - (0xB0 0xB3 ?n) - (0xB5 ?n) - (0xB6 0xB7 ?T) - (0xB8 ?w) - (0xC9 ?V) - (0xCB ?V) - (0xD7 ?w) - (0xDC 0xDE ?w) - (0xE1 0xE2 ?w) - (0xE8 ?w) - (0xED ?w) - (0xF1 ?w)) - -(generator - (0 - (cond - (" ([^ x]*)x(V)([^ ]*) " - < (1 = *) (2 (cond ((0xC9) 0xCA) ((0xCB) 0xCC))) (3 = *) >) - (" ([^ x]*)x([^ ]*) " - < (1 = *) (2 = *) >) - (" (T[^V]*)(V)([^ ]*) " - < (1 = *) (2 (cond ((0xC9) Br.Bl 0xCA) ((0xCB) Br.Bl 0xCC))) (3 = *) >) - (" ([wn])(V)([^ ]*) " - < (1 = *) (2 (cond ((0xC9) 0xCA) ((0xCB) 0xCC))) (3 = *) >) - (" ([^ ]*) " - < (1 = *) >) - ("." - =)) - *)) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/KHMER-MULE.flt b/KHMER-MULE.flt deleted file mode 100644 index cc3cb3f..0000000 --- a/KHMER-MULE.flt +++ /dev/null @@ -1,201 +0,0 @@ -;; KHMER-MULE.flt -- Font Layout Table for Khmer (mule font) -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • KHMER-MULE.flt -;;; -;;; For Khmer fonts of mule encoding to draw Khmer script. The font is -;;; available at: - -(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) Bl20bc =) - ("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) - ("[^ ]*" = *)) - *) - - (deep-YA-IE - ((range 0x04 0x05) Br.Bc 0x24)) - - (high-deep-YA-IE - ((range 0x04 0x05) Br.Bc 0x34)) - - (high-YA-IE - ((range 0x04 0x05) Br.bc 0x14))) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/KHMR-ANLONG.flt b/KHMR-ANLONG.flt new file mode 100644 index 0000000..cf3d816 --- /dev/null +++ b/KHMR-ANLONG.flt @@ -0,0 +1,272 @@ +;; KHMER-ANLONG.flt -- Font Layout Table for Khmer (Anlong font) +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • KHMER-ANLONG.flt +;;; +;;; For the font ANLONG.TTF to draw Khmer script. The font is +;;; available at: +;;; + +(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-) + ((0x179E) < 0x9B cr-) + ((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) + ((0x17C0) < 0xCD 0x20 Br) + ((range 0x17C1 0x17C3) 0xCD) + ((0x17C4) < 0xCD 0x20 Br) + ((0x17C5) < 0xCD 0x20 Br) + ((0x17C6) 0xD1) + ((0x17C7) 0xD3) + ((0x17C8) 0x3A) + ((0x17C9) 0xF6) + ((range 0x17CA 0x17CB) 0xF4) + ((0x17CC) 0xF8) + ((0x17CD) 0xF7) + ((0x17CE) < 0x20 tc+80bc 0x2B >) + ((range 0x17CF 0x17D0) 0xF9) + ((0x17D1) < 0x20 tc+80bc 0x5F >) + ((0x17D2) < 0x20 bc-tc 0x5E >) + ((0x17D3) 0xD1) + ((range 0x17D4 0x17D5) 0xFC) + ((0x17D6) 0xFB) + ((0x17D7) 0xFE) + ((0x17D8) < 0xFC 0xA6 0xFC >) + ((0x17D9) < 0x30 cr<10cl 0xD2 >) + ((0x17DA) 0x8D) + ((0x17DB) < 0xFF br->10tl 0xC3 >) + ((0x17DC) 0x53) + ((range 0x17E0 0x17E9) 0x30))) + + (conjunct + (cond + ((0x1780) br-tl 0xD4) + ((0x1781) br-tl 0xD5) + ((0x1782) br-tl 0xD6) + ((0x1783) Br.Bl 0xD7) + ((0x1784) br-tl 0xD8) + ((0x1785) br-tl 0xD9) + ((0x1786) br-tl 0xDA) + ((0x1787) br-tl 0xDB) + ((0x1788) Br.Bl 0xDC) + ((0x1789) br-tl 0xDE) + ((0x178A) br-tl 0xE3) + ((0x178B) br-tl 0xDF) + ((0x178C) br-tl 0xE0) + ((0x178D) Br.Bl 0xE1) + ((0x178E) br-tl 0xE2) + ((0x178F) br-tl 0xE3) + ((0x1790) br-tl 0xE4) + ((0x1791) br-tl 0xE5) + ((0x1792) br-tl 0xE6) + ((0x1793) br-tl 0xE7) + ((0x1794) Br.Bl 0xE8) + ((0x1795) br-tl 0xE9) + ((0x1796) br-tl 0xEA) + ((0x1797) br-tl 0xEB) + ((0x1798) br-tl 0xEC) + ((0x1799) Br.Bl 0xED) + ((0x179A) Bl+Bc 0xEE) + ((0x179B) br-tl 0xEF) + ((0x179C) br-tl 0xF0) + ((0x179D) br-tl 0xD6 br.bl 0xFA) + ((0x179E) Br.Bl 0xE8 br.bl 0xFA) + ((0x179F) Br.Bl 0xF1) + ((0x17A0) br-tl 0xF2) + ((0x17A2) br-tl 0xF3) + ((0x17A7) br-tl 0xD5 br.bl 0xC4) ; ugly compromise + ((0x17AB) br-tl 0xA1) ; ugly compromise + ((0x17AF) br-tl 0xB4))) ; ugly compromise + + (vowel-and-sign + (cond + ((0x17B6) Br-Bl 0xBA) + ((0x17B7) tr+bl 0xBB) + ((0x17B8) tr+bl 0xBD) + ((0x17B9) tr+bl 0xBF) + ((0x17BA) tr+bl 0xC1) + ((0x17BB) br+tr 0xC3) + ((0x17BC) br-tl 0xC5) + ((0x17BD) br-tl 0xC7) + ((0x17BE) tr+bl 0xBD Bl.Br 0xCD) + ((0x17BF) Br.Bl 0xC9 Bl.Br 0xCD) + ((0x17C0) Br.Bl 0xCB Bl.Br 0xCD) + ((0x17C1) Bl.Br 0xCD) + ((0x17C2) Bl.Br 0xCE) + ((0x17C3) Bl.Br 0xCF) + ((0x17C4) Bl.Br 0xCD Br.Bl 0xBA) + ((0x17C5) Bl.Br 0xCD Br.Bl 0xD0) + ((0x17C6) tr+bl 0xD1) + ((0x17C7) Br.Bl 0xD3) + ((0x17C8) Br.Bl 0x3A) + ((0x17C9) tr+bl 0xF6) + ((0x17CA) tr+bl 0xF4) + ((0x17CB) tr+bl 0xF5) + ((0x17CC) tr+bl 0xF8) + ((0x17CD) tr+bl 0xF7) + ((0x17CE) tr+>br 0x2B) + ((0x17CF) tr+bl 0xF9) + ((0x17D0) tr+bl 0xFA)))) + +(category + ;; WIDTH HEIGHT DEPTH + ;; N: normal normal normal + ;; T: normal high normal + ;; W: wide normal normal + ;; n: normal normal deep + ;; w: wide normal deep + ;; V: right part of KHMER VOWEL SIGN YA and IE + ;; x: separator + (0x00 0xFF ?N) + (0x00 ?x) + (0x85 ?W) + (0x89 ?T) + (0x8A 0x8B ?W) + (0x8C ?w) + (0x91 0x92 ?T) + (0x93 0x94 ?W) + (0x97 ?T) + (0x9F ?T) + (0xA4 ?W) + (0xA6 ?W) + (0xA8 0xA9 ?W) + (0xAA ?w) + (0xAC ?T) + (0xAD ?w) + (0xAF ?T) + (0xB0 0xB3 ?n) + (0xB5 ?n) + (0xB6 0xB7 ?T) + (0xB8 ?w) + (0xC9 ?V) + (0xCB ?V) + (0xD7 ?w) + (0xDC 0xDE ?w) + (0xE1 0xE2 ?w) + (0xE8 ?w) + (0xED ?w) + (0xF1 ?w)) + +(generator + (0 + (cond + (" ([^ x]*)x(V)([^ ]*) " + < (1 = *) (2 (cond ((0xC9) 0xCA) ((0xCB) 0xCC))) (3 = *) >) + (" ([^ x]*)x([^ ]*) " + < (1 = *) (2 = *) >) + (" (T[^V]*)(V)([^ ]*) " + < (1 = *) (2 (cond ((0xC9) Br.Bl 0xCA) ((0xCB) Br.Bl 0xCC))) (3 = *) >) + (" ([wn])(V)([^ ]*) " + < (1 = *) (2 (cond ((0xC9) 0xCA) ((0xCB) 0xCC))) (3 = *) >) + (" ([^ ]*) " + < (1 = *) >) + ("." + =)) + *)) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/KHMR-MULE.flt b/KHMR-MULE.flt new file mode 100644 index 0000000..cc3cb3f --- /dev/null +++ b/KHMR-MULE.flt @@ -0,0 +1,201 @@ +;; KHMER-MULE.flt -- Font Layout Table for Khmer (mule font) +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • KHMER-MULE.flt +;;; +;;; For Khmer fonts of mule encoding to draw Khmer script. The font is +;;; available at: + +(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) Bl20bc =) + ("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) + ("[^ ]*" = *)) + *) + + (deep-YA-IE + ((range 0x04 0x05) Br.Bc 0x24)) + + (high-deep-YA-IE + ((range 0x04 0x05) Br.Bc 0x34)) + + (high-YA-IE + ((range 0x04 0x05) Br.bc 0x14))) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/KNDA-OTF.flt b/KNDA-OTF.flt new file mode 100644 index 0000000..073c3a9 --- /dev/null +++ b/KNDA-OTF.flt @@ -0,0 +1,167 @@ +;; KAN-OTF.flt -- Font Layout Table for Kannada OpenType fonts +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • KAN-OTF.flt +;;; +;;; For Kannada OpenType fonts to draw Kannada. +;;; Designed for Sampige.ttf + +(category + ;; C: general consonant + ;; R: no below-base consonat (RRA, NNNA, LLLA) + ;; r: RA + ;; H: HALANT + ;; u: MATRA (above) + ;; p: MATRA (post) + ;; t: MATRA (two-part) + ;; T: MATRA (three-part) + ;; a: vowel modifier (post) + ;; V: independent vowel + ;; N: ZWNJ (ZERO WIDTH NON-JOINER) + ;; J: ZWJ (ZERO WIDTH JOINER) + ;; E: ELSE + ;; + (0x200C ?N) ; ZWNJ + (0x200D ?J) ; ZWJ + (0x0964 ?E) ; DANDA + (0x0965 ?E) ; DOUBLE DANDA + (0x0C80 0x0CFF ?E) ; ELSE + (0x0C82 ?a) ; SIGN ANUSVARA + (0x0C83 ?a) ; SIGN VISARGA + (0x0C85 0x0C94 ?V) ; LETTER A .. LETTER AU + (0x0C95 0x0CB9 ?C) ; LETTER KA .. LETTER HA + (0x0CB0 ?r) ; LETTER RA + (0x0CBC ?n) ; SIGN NUKTA + (0x0CBD ?E) ; SIGN AVAGRAHA + (0x0CBE ?p) ; VOWEL SIGN AA (post) + (0x0CBF ?u) ; VOWEL SIGN I (above) + (0x0CC0 ?t) ; VOWEL SIGN II (two-part) + (0x0CC1 0x0CC4 ?p) ; VOWEL SIGN U, UU, R, RR (post) + (0x0CC6 ?u) ; VOWEL SIGN E (above) + (0x0CC7 0x0CCA ?t) ; VOWEL SIGN EE, AI, O (two-part) + (0x0CCB ?T) ; VOWEL SIGN OO (three-part) + (0x0CCC ?u) ; VOWEL SIGN AU (above) + (0x0CCD ?H) ; SIGN VIRAMA (HALANT) + (0x0CD5 ?l) ; LENGTH MARK (length post) + (0x0CD6 ?l) ; AI LENGTH MARK (length post) + (0x0CDE ?C) ; LETTER FA (LLLA) + (0x0CE0 0x0CE1 ?V) ; LETTER VOCALIC RR, LL + (0x0CFD ?Z) ; internal use + (0x0CFE ?Y) ; internal use + (0x0CFF ?X) ; internal use + ) + +;; Step 1 : Syllable identification and Halant movement. +(generator + (0 + (cond + ;; A syllable containing a three-part vowel sign. + ("([CRr](H[Cr])*)(T)(a)?" + < | (1 move-base-Halant) (3 0x0CC6 0x0CC2 0x0CD5) (4 =) | >) + + ;; A syllable containing a two-part vowel sign. + ("([CRr](H[Cr])*)(t)(a)?" + < | (1 move-base-Halant) (3 two-part) (4 =) | >) + + ;; A syllable ending with vowel signs and/or a vowel modifier. + ("([CRr](H[Cr])*)([upl]+a?|a)" + < | (1 move-base-Halant) (3 = *) | >) + + ;; Forced Halant form. + ("((RH)?([Cr]H)*)([Cr]H)N" + < | (1 move-base-Halant) | > + < | (4 move-base-Halant) | >) + + ;; Forced Half form. + ("((RH)?([Cr]H)*)([Cr]H)J" + < | (1 move-base-Halant) > + < | (4 otf:knda=blwf) | >) + + ;; A syllable without a vowel sign nor a vowel modifier. + ("[CRr](H[Cr])*H?" + < | move-base-Halant | >) + + ;; A syllable starting with an independent vowel. + ("Va?" + < | = * | > ) + + ("." =)) + *) + + ;; Move Halant on the base consonant to the tail if the syllable ends + ;; with a consonant. + ;; A leading 0x0CFF means Halant movement. + ;; A leading 0x0CFE means a syllable ending with a Halant. + ;; A leading 0x0CFD means Halant & Reph movements. + (move-base-Halant + (cond + (".*H$" + 0x0CFE = *) + ("(rH)(.)$" + 0x0CFD (2 =) (1 = =)) + ("(rH)(.)(H)(.*)" + 0x0CFD (2 =) (4 = *) (3 =) (1 = =)) + ("(.)(H)(.*)" + 0x0CFF (1 =) (3 = *) (2 =)) + (".*" + = *))) + + ;; Divide a two-part Matra into elements. + (two-part + (cond + ((0x0CC0) 0x0CBF 0x0CD5) + ((0x0CC7) 0x0CC6 0x0CD5) + ((0x0CC8) 0x0CC6 0x0CD6) + ((0x0CCA) 0x0CC6 0x0CC2))) + ) + +;; Step 2 : Move Matra if applicable. +;; The base consonant in a Halant-ending syllable is changed into Halant form. +(generator + (0 + (cond + ;; 1 2 3 4 5 6 7 + (" Z(.)([CrH]*)(rH)(u)?(p)?(l*)(a)? " + | (1 =) (4 =) (5 =) (2 = *) (6 = *) (3 otf:knda=rphf) (7 =) |) + ;; 1 2 3 4 5 6 + (" X(.)([CrH]*)(u)?(p)?(l*)(a)? " + | (1 =) (3 =) (4 =) (2 = *) (5 = *) (6 =) |) + (" Y(..)([^ ]*) " + ;; Sampige.ttf lacks the haln feature, so "otf:knda=haln" does not work. + | (1 otf:knda=~rphf,~blwf,*) (2 = *) |) + ("." =)) + *)) + +;; Step 3 : Drive OTF tables. +(generator + (0 + (cond + (" ([^ ]*) " + (1 otf:knda=~rphf,*)) + ("." + [ otf:knda=+ ])) + *)) + +;; Local Variables: +;; mode: emacs-lisp +;; End: diff --git a/LAO-ALICE.flt b/LAO-ALICE.flt deleted file mode 100644 index fe5f6b0..0000000 --- a/LAO-ALICE.flt +++ /dev/null @@ -1,165 +0,0 @@ -;; LAO-ALICE.flt -- Font Layout Table for Lao (Alice font) -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • LAO-ALICE.flt -;;; -;;; For the font ALICE0.TTF to draw Lao script. The font is -;;; available at: -;;; - -(category - ;; C: CONSONANT (except c and s) - ;; c: TALL CONSONANT - ;; s: LAO SEMIVOWEL SIGN LO - ;; V: VOWEL UPPER - ;; v: VOWEL LOWER - ;; T: TONE - ;; I: INDEPENDENT - ;; - (0x0E80 0x0EDF ?I) - (0x0E81 0x0E82 ?C) - (0x0E84 ?C) - (0x0E87 0x0E88 ?C) - (0x0E8A ?C) - (0x0E8D ?C) - (0x0E94 0x0E97 ?C) - (0x0E99 0x0E9E ?C) - (0x0E9B ?c) - (0x0E9D ?c) - (0x0E9F ?c) - (0x0EA1 0x0EA3 ?C) - (0x0EA2 ?c) - (0x0EA5 ?C) - (0x0EA7 ?C) - (0x0EAA 0x0EAB ?C) - (0x0EAD 0x0EAE ?C) - (0x0EB1 ?V) - (0x0EB4 0x0EB7 ?V) - (0x0EB8 0x0EB9 ?v) - (0x0EBB ?V) - (0x0EBC ?s) - (0x0EC8 0x0ECC ?T) - (0x0ECD ?V)) - -(generator - (0 - (cond - ("cs?(VT?|v?T)" - < - ("(cs?)" independent semi-vowel) - ("VT?" composed-non-relative composed-non-relative *) - (".*" composed-non-relative *) - > ) - ("Cs?[vV]?T?" - < independent semi-vowel composed-non-relative * > ) - ("[^Cs]*" - independent *)) - *) - - (independent - (cond - ((0x0E81) 0xA1) - ((0x0E82) 0xA2) - ((0x0E84) 0xA3) - ((0x0E87) 0xA4) - ((0x0E88) 0xA5) - ((0x0E8A) 0xA7) - ((0x0E8D) 0xA8) - ((0x0E94) 0xA9) - ((0x0E95) 0xAA) - ((0x0E96) 0xAB) - ((0x0E97) 0xEA) - ((0x0E99) 0xAD) - ((0x0E9A) 0xAE) - ((0x0E9B) 0xAF) - ((0x0E9C) 0xB0) - ((0x0E9D) 0xB1) - ((0x0E9E) 0xB2) - ((0x0E9F) 0xB3) - ((0x0EA1) 0xB4) - ((0x0EA2) 0xB5) - ((0x0EA3) 0xEB) - ((0x0EA5) 0xEC) - ((0x0EA7) 0xB8) - ((0x0EAA) 0xA6) - ((0x0EAB) 0xB9) - ((0x0EAD) 0xBA) - ((0x0EAE) 0xBB) - ;; ((0x0EAF) ??) - ((0x0EB0) 0xBD) - ((0x0EB2) 0xBE) - ((0x0EB3) 0xBF) - ((0x0EBD) 0xBC) - ((0x0EC0) 0xC0) - ((0x0EC1) 0xC1) - ((0x0EC2) 0xC2) - ((0x0EC3) 0xC3) - ((0x0EC4) 0xC4) - ((0x0EC6) 0xC5) - ((0x0EC6) 0xC5) - ((0x0EDC) 0xCE) - ((0x0EDD) 0xCF))) - - (composed-relative - (cond - ((0x0EB1) tc+bc 0xF1) - ((0x0EB4) tc+bc 0xF2) - ((0x0EB5) tc+bc 0xF3) - ((0x0EB6) tc+bc 0xF4) - ((0x0EB7) tc+bc 0xF5) - ((0x0EB8) bc+tc 0xF7) - ((0x0EB9) bc+tc 0xF8) - ((0x0EBB) tc+bc 0xF6) - ((0x0EC8) tc+bc 0xC8) - ((0x0EC9) tc+bc 0xC9) - ((0x0ECA) tc+bc 0xCA) - ((0x0ECB) tc+bc 0xCB) - ((0x0ECC) tc+bc 0xCC) - ((0x0ECD) tc+bc 0xD6))) - - (semi-vowel - ((0x0EBC) Br.Bl 0xF9)) - - (composed-non-relative - (cond - ((0x0EB1) 0xF1) - ((0x0EB4) 0xF2) - ((0x0EB5) 0xF3) - ((0x0EB6) 0xF4) - ((0x0EB7) 0xF5) - ((0x0EB8) 0xF7) - ((0x0EB9) 0xF8) - ((0x0EBB) 0xF6) - ((0x0EC8) 0xC8) - ((0x0EC9) 0xC9) - ((0x0ECA) 0xCA) - ((0x0ECB) 0xCB) - ((0x0ECC) 0xCC) - ((0x0ECD) 0xD6)))) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/LAO-MULE.flt b/LAO-MULE.flt deleted file mode 100644 index 6e93334..0000000 --- a/LAO-MULE.flt +++ /dev/null @@ -1,128 +0,0 @@ -;; LAO-MULE.flt -- Font Layout Table for Lao (mule font) -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • LAO-MULE.flt -;;; -;;; For Lao fonts of mule encoding to draw Lao script. The font is -;;; available at: -;;; - -(category - ;; C: CONSONANT (except c and s) - ;; c: TALL CONSONANT - ;; s: LAO SEMIVOWEL SIGN LO - ;; V: VOWEL UPPER - ;; v: VOWEL LOWER - ;; T: TONE - ;; I: INDEPENDENT - ;; - (0x0E80 0x0EDF ?I) - (0x0E81 0x0E82 ?C) - (0x0E84 ?C) - (0x0E87 0x0E88 ?C) - (0x0E8A ?C) - (0x0E8D ?C) - (0x0E94 0x0E97 ?C) - (0x0E99 0x0E9E ?C) - (0x0E9B ?c) - (0x0E9D ?c) - (0x0E9F ?c) - (0x0EA1 0x0EA3 ?C) - (0x0EA2 ?c) - (0x0EA5 ?C) - (0x0EA7 ?C) - (0x0EAA 0x0EAB ?C) - (0x0EAD 0x0EAE ?C) - (0x0EB1 ?V) - (0x0EB4 0x0EB7 ?V) - (0x0EB8 0x0EB9 ?v) - (0x0EBB ?V) - (0x0EBC ?s) - (0x0EC8 0x0ECC ?T) - (0x0ECD ?V)) - -(generator - (0 - (cond - ("cs?(VT?|v?T)" - < - ("(cs?)" independent semi-vowel) - ("VT?" composed-non-relative composed-relative *) - (".*" composed-non-relative *) - > ) - ("Cs?[vV]?T?" - < independent semi-vowel composed-relative * > ) - ("[^Cs]*" - independent *)) - *) - - (independent - ((range 0x0E80 0x0EDF) 0xA0)) - - (composed-relative - (cond - ((0x0EB1) tc+bc 0xD1) - ((0x0EB4) tc+bc 0xD4) - ((0x0EB5) tc+bc 0xD5) - ((0x0EB6) tc+bc 0xD6) - ((0x0EB7) tc+bc 0xD7) - ((0x0EB8) bc+tc 0xD8) - ((0x0EB9) bc+tc 0xD9) - ((0x0EBB) tc+bc 0xDB) - ((0x0EC7) tc+bc 0xE7) - ((0x0EC8) tc+bc 0xE8) - ((0x0EC9) tc+bc 0xE9) - ((0x0ECA) tc+bc 0xEA) - ((0x0ECB) tc+bc 0xEB) - ((0x0ECC) tc+bc 0xEC) - ((0x0ECD) tc+bc 0xED) - ((0x0ECE) tc+bc 0xEE))) - - (semi-vowel - ((0x0EBC) Bc-Bc 0xDC)) - - (composed-non-relative - (cond - ((0x0EB1) Bc-Bc 0xD1) - ((0x0EB4) Bc-Bc 0xD4) - ((0x0EB5) Bc-Bc 0xD5) - ((0x0EB6) Bc-Bc 0xD6) - ((0x0EB7) Bc-Bc 0xD7) - ((0x0EB8) Bc-Bc 0xD8) - ((0x0EB9) Bc-Bc 0xD9) - ((0x0EBB) Bc-Bc 0xDB) - ((0x0E47) Bc-Bc 0xE7) - ((0x0E48) Bc-Bc 0xE8) - ((0x0E49) Bc-Bc 0xE9) - ((0x0E4A) Bc-Bc 0xEA) - ((0x0E4B) Bc-Bc 0xEB) - ((0x0E4C) Bc-Bc 0xEC) - ((0x0E4D) Bc-Bc 0xED) - ((0x0E4E) Bc-Bc 0xEE)))) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/LAOO-ALICE.flt b/LAOO-ALICE.flt new file mode 100644 index 0000000..fe5f6b0 --- /dev/null +++ b/LAOO-ALICE.flt @@ -0,0 +1,165 @@ +;; LAO-ALICE.flt -- Font Layout Table for Lao (Alice font) +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • LAO-ALICE.flt +;;; +;;; For the font ALICE0.TTF to draw Lao script. The font is +;;; available at: +;;; + +(category + ;; C: CONSONANT (except c and s) + ;; c: TALL CONSONANT + ;; s: LAO SEMIVOWEL SIGN LO + ;; V: VOWEL UPPER + ;; v: VOWEL LOWER + ;; T: TONE + ;; I: INDEPENDENT + ;; + (0x0E80 0x0EDF ?I) + (0x0E81 0x0E82 ?C) + (0x0E84 ?C) + (0x0E87 0x0E88 ?C) + (0x0E8A ?C) + (0x0E8D ?C) + (0x0E94 0x0E97 ?C) + (0x0E99 0x0E9E ?C) + (0x0E9B ?c) + (0x0E9D ?c) + (0x0E9F ?c) + (0x0EA1 0x0EA3 ?C) + (0x0EA2 ?c) + (0x0EA5 ?C) + (0x0EA7 ?C) + (0x0EAA 0x0EAB ?C) + (0x0EAD 0x0EAE ?C) + (0x0EB1 ?V) + (0x0EB4 0x0EB7 ?V) + (0x0EB8 0x0EB9 ?v) + (0x0EBB ?V) + (0x0EBC ?s) + (0x0EC8 0x0ECC ?T) + (0x0ECD ?V)) + +(generator + (0 + (cond + ("cs?(VT?|v?T)" + < + ("(cs?)" independent semi-vowel) + ("VT?" composed-non-relative composed-non-relative *) + (".*" composed-non-relative *) + > ) + ("Cs?[vV]?T?" + < independent semi-vowel composed-non-relative * > ) + ("[^Cs]*" + independent *)) + *) + + (independent + (cond + ((0x0E81) 0xA1) + ((0x0E82) 0xA2) + ((0x0E84) 0xA3) + ((0x0E87) 0xA4) + ((0x0E88) 0xA5) + ((0x0E8A) 0xA7) + ((0x0E8D) 0xA8) + ((0x0E94) 0xA9) + ((0x0E95) 0xAA) + ((0x0E96) 0xAB) + ((0x0E97) 0xEA) + ((0x0E99) 0xAD) + ((0x0E9A) 0xAE) + ((0x0E9B) 0xAF) + ((0x0E9C) 0xB0) + ((0x0E9D) 0xB1) + ((0x0E9E) 0xB2) + ((0x0E9F) 0xB3) + ((0x0EA1) 0xB4) + ((0x0EA2) 0xB5) + ((0x0EA3) 0xEB) + ((0x0EA5) 0xEC) + ((0x0EA7) 0xB8) + ((0x0EAA) 0xA6) + ((0x0EAB) 0xB9) + ((0x0EAD) 0xBA) + ((0x0EAE) 0xBB) + ;; ((0x0EAF) ??) + ((0x0EB0) 0xBD) + ((0x0EB2) 0xBE) + ((0x0EB3) 0xBF) + ((0x0EBD) 0xBC) + ((0x0EC0) 0xC0) + ((0x0EC1) 0xC1) + ((0x0EC2) 0xC2) + ((0x0EC3) 0xC3) + ((0x0EC4) 0xC4) + ((0x0EC6) 0xC5) + ((0x0EC6) 0xC5) + ((0x0EDC) 0xCE) + ((0x0EDD) 0xCF))) + + (composed-relative + (cond + ((0x0EB1) tc+bc 0xF1) + ((0x0EB4) tc+bc 0xF2) + ((0x0EB5) tc+bc 0xF3) + ((0x0EB6) tc+bc 0xF4) + ((0x0EB7) tc+bc 0xF5) + ((0x0EB8) bc+tc 0xF7) + ((0x0EB9) bc+tc 0xF8) + ((0x0EBB) tc+bc 0xF6) + ((0x0EC8) tc+bc 0xC8) + ((0x0EC9) tc+bc 0xC9) + ((0x0ECA) tc+bc 0xCA) + ((0x0ECB) tc+bc 0xCB) + ((0x0ECC) tc+bc 0xCC) + ((0x0ECD) tc+bc 0xD6))) + + (semi-vowel + ((0x0EBC) Br.Bl 0xF9)) + + (composed-non-relative + (cond + ((0x0EB1) 0xF1) + ((0x0EB4) 0xF2) + ((0x0EB5) 0xF3) + ((0x0EB6) 0xF4) + ((0x0EB7) 0xF5) + ((0x0EB8) 0xF7) + ((0x0EB9) 0xF8) + ((0x0EBB) 0xF6) + ((0x0EC8) 0xC8) + ((0x0EC9) 0xC9) + ((0x0ECA) 0xCA) + ((0x0ECB) 0xCB) + ((0x0ECC) 0xCC) + ((0x0ECD) 0xD6)))) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/LAOO-MULE.flt b/LAOO-MULE.flt new file mode 100644 index 0000000..6e93334 --- /dev/null +++ b/LAOO-MULE.flt @@ -0,0 +1,128 @@ +;; LAO-MULE.flt -- Font Layout Table for Lao (mule font) +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • LAO-MULE.flt +;;; +;;; For Lao fonts of mule encoding to draw Lao script. The font is +;;; available at: +;;; + +(category + ;; C: CONSONANT (except c and s) + ;; c: TALL CONSONANT + ;; s: LAO SEMIVOWEL SIGN LO + ;; V: VOWEL UPPER + ;; v: VOWEL LOWER + ;; T: TONE + ;; I: INDEPENDENT + ;; + (0x0E80 0x0EDF ?I) + (0x0E81 0x0E82 ?C) + (0x0E84 ?C) + (0x0E87 0x0E88 ?C) + (0x0E8A ?C) + (0x0E8D ?C) + (0x0E94 0x0E97 ?C) + (0x0E99 0x0E9E ?C) + (0x0E9B ?c) + (0x0E9D ?c) + (0x0E9F ?c) + (0x0EA1 0x0EA3 ?C) + (0x0EA2 ?c) + (0x0EA5 ?C) + (0x0EA7 ?C) + (0x0EAA 0x0EAB ?C) + (0x0EAD 0x0EAE ?C) + (0x0EB1 ?V) + (0x0EB4 0x0EB7 ?V) + (0x0EB8 0x0EB9 ?v) + (0x0EBB ?V) + (0x0EBC ?s) + (0x0EC8 0x0ECC ?T) + (0x0ECD ?V)) + +(generator + (0 + (cond + ("cs?(VT?|v?T)" + < + ("(cs?)" independent semi-vowel) + ("VT?" composed-non-relative composed-relative *) + (".*" composed-non-relative *) + > ) + ("Cs?[vV]?T?" + < independent semi-vowel composed-relative * > ) + ("[^Cs]*" + independent *)) + *) + + (independent + ((range 0x0E80 0x0EDF) 0xA0)) + + (composed-relative + (cond + ((0x0EB1) tc+bc 0xD1) + ((0x0EB4) tc+bc 0xD4) + ((0x0EB5) tc+bc 0xD5) + ((0x0EB6) tc+bc 0xD6) + ((0x0EB7) tc+bc 0xD7) + ((0x0EB8) bc+tc 0xD8) + ((0x0EB9) bc+tc 0xD9) + ((0x0EBB) tc+bc 0xDB) + ((0x0EC7) tc+bc 0xE7) + ((0x0EC8) tc+bc 0xE8) + ((0x0EC9) tc+bc 0xE9) + ((0x0ECA) tc+bc 0xEA) + ((0x0ECB) tc+bc 0xEB) + ((0x0ECC) tc+bc 0xEC) + ((0x0ECD) tc+bc 0xED) + ((0x0ECE) tc+bc 0xEE))) + + (semi-vowel + ((0x0EBC) Bc-Bc 0xDC)) + + (composed-non-relative + (cond + ((0x0EB1) Bc-Bc 0xD1) + ((0x0EB4) Bc-Bc 0xD4) + ((0x0EB5) Bc-Bc 0xD5) + ((0x0EB6) Bc-Bc 0xD6) + ((0x0EB7) Bc-Bc 0xD7) + ((0x0EB8) Bc-Bc 0xD8) + ((0x0EB9) Bc-Bc 0xD9) + ((0x0EBB) Bc-Bc 0xDB) + ((0x0E47) Bc-Bc 0xE7) + ((0x0E48) Bc-Bc 0xE8) + ((0x0E49) Bc-Bc 0xE9) + ((0x0E4A) Bc-Bc 0xEA) + ((0x0E4B) Bc-Bc 0xEB) + ((0x0E4C) Bc-Bc 0xEC) + ((0x0E4D) Bc-Bc 0xED) + ((0x0E4E) Bc-Bc 0xEE)))) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/MLM-CDAC.flt b/MLM-CDAC.flt deleted file mode 100644 index db6abe0..0000000 --- a/MLM-CDAC.flt +++ /dev/null @@ -1,238 +0,0 @@ -;; MLM-CDAC.flt -- Font Layout Table for Malayalam (C-DAC font) -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • MLM-CDAC.flt -;;; -;;; For the font MLKR0ntt.ttf (developped by C-DAC, encoding is ISFOC) -;;; to draw Malayalam script. The font is available at: -;;; - -(category - (0x0D00 0x0D7F ?E) ; all malayalam characters - (0x0D02 ?A) ; ANUSVARA - (0x0D03 ?G) ; VISARGA - (0x0D05 0x0D14 ?V) ; independent vowel - (0x0D15 0x0D39 ?C) ; consonant - (0x0D3E 0x0D4C ?M) ; dependent vowel (MATRA) - (0x0D4D ?H) ; HALANT - ) - -(generator - (0 - (cond - ("(VA?)|G|((CH)?(CH)?(CH)?CH)?C(H|M?[AH]?)?" | glyph * |) - ("." glyph )) - * ) - - (glyph - (cond - ;; various sign - ((0x0D02) 0x77) - ((0x0D03) 0x78) - ;; Independent Vowels - ((0x0D05) 0x41) - ((0x0D06) 0x42) - ((0x0D07) 0x43) - ((0x0D08) 0x43 0x75) - ((0x0D09) 0x44) - ((0x0D0A) 0x44 0x75) - ((0x0D0B) 0x45) - ((0x0D0C) 0x23) - ((0x0D0E) 0x46) - ((0x0D0F) 0x47) - ((0x0D10) 0x73 0x46) - ((0x0D12) 0x48) - ((0x0D13) 0x48 0x6D) - ((0x0D14) 0x48 0x75) - ;; Consonants - ((0x0D15 0x0D4D 0x0D15 0x0D41) 0xE7) - ((0x0D15 0x0D4D 0x0D15) 0xA1) - ((0x0D15 0x0D4D 0x0D33) 0xA2) - ((0x0D15 0x0D4D 0x0D37) 0xA3) - ((0x0D15 0x0D4D 0x0D1F) 0xCE) - ((0x0D15 0x0D4D 0x0D24) 0xE0) - ((0x0D15 0x0D41) 0xE6) - ((0x0D15 0x0D41) 0xE6) - ((0x0D15) 0x49) - ((0x0D16) 0x4A) - ((0x0D17 0x0D4D 0x0D17) 0xA4) - ((0x0D17 0x0D4D 0x0D32) 0xA5) - ((0x0D17 0x0D4D 0x0D2E) 0xDC) - ((0x0D17 0x0D4D 0x0D28) 0xE1) - ((0x0D17) 0x4B) - ((0x0D18) 0x4C) - ((0x0D19 0x0D4D 0x0D15) 0xA6) - ((0x0D19 0x0D4D 0x0D19) 0xA7) - ((0x0D19 0x0D4D 0x0D15 0x0D41) 0xE8) - ((0x0D19) 0x4D) - ((0x0D1A 0x0D4D 0x0D1A) 0xA8) - ((0x0D1A 0x0D4D 0x0D1B) 0xD1) - ((0x0D1A) 0x4E) - ((0x0D1B) 0x4F) - ((0x0D1C 0x0D4D 0x0D1C) 0xD6) - ((0x0D1C 0x0D4D 0x0D1E) 0xDA) - ((0x0D1C) 0x50) - ((0x0D1D) 0x51) - ((0x0D1E 0x0D4D 0x0D1A) 0xA9) - ((0x0D1E 0x0D4D 0x0D1E) 0xAA) - ((0x0D1E) 0x52) - ((0x0D1F 0x0D4D 0x0D1F) 0xAB) - ((0x0D1F) 0x53) - ((0x0D20) 0x54) - ((0x0D21 0x0D4D 0x0D21) 0xCD) - ((0x0D21) 0x55) - ((0x0D22) 0x56) - ((0x0D23 0x0D41 0x0D4D) 0xAC) - ((0x0D23 0x0D41) 0xE9) - ((0x0D23 0x0D4D 0x0D1F) 0xAD) - ((0x0D23 0x0D4D 0x0D23) 0xAE) - ((0x0D23 0x0D4D 0x0D2E) 0xD7) - ((0x0D23 0x0D4D 0x0D21) 0xDE) - ((0x0D23) 0x57) - ((0x0D24 0x0D4D 0x0D24) 0xAF) - ((0x0D24 0x0D4D 0x0D25) 0xB0) - ((0x0D24 0x0D4D 0x0D38) 0xD5) - ((0x0D24 0x0D4D 0x0D2D) 0xDB) - ((0x0D24 0x0D4D 0x0D2E) 0xDF) - ((0x0D24) 0x58) - ((0x0D25) 0x59) - ((0x0D26 0x0D4D 0x0D26) 0xB1) - ((0x0D26 0x0D4D 0x0D27) 0xB2) - ((0x0D26) 0x5A) - ((0x0D27) 0x5B) - ((0x0D28 0x0D41 0x0D4D) 0xB3) - ((0x0D28 0x0D41) 0xEB) - ((0x0D28 0x0D4D 0x0D24) 0xB4) - ((0x0D28 0x0D4D 0x0D26) 0xB5) - ((0x0D28 0x0D4D 0x0D28 0x0D41) 0xEC) - ((0x0D28 0x0D4D 0x0D28) 0xB6) - ((0x0D28 0x0D4D 0x0D2E) 0xB7) - ((0x0D28 0x0D4D 0x0D27) 0xD4) - ((0x0D28 0x0D4D 0x0D25) 0xD9) - ((0x0D28 0x0D4D 0x0D31) 0xE2) - ((0x0D28) 0x5C) - ((0x0D2A 0x0D4D 0x0D2A) 0xB8) - ((0x0D2A 0x0D4D 0x0D32) 0xB9) - ((0x0D2A) 0x5D) - ((0x0D2B) 0x5E) - ((0x0D2C 0x0D4D 0x0D2C) 0xBA) - ((0x0D2C 0x0D4D 0x0D32) 0xBB) - ((0x0D2C 0x0D4D 0x0D27) 0xCF) - ((0x0D2C 0x0D4D 0x0D26) 0xD0) - ((0x0D2C) 0x5F) - ((0x0D2D) 0x60) - ((0x0D2E 0x0D4D 0x0D2A) 0xBC) - ((0x0D2E 0x0D4D 0x0D2E) 0xBD) - ((0x0D2E 0x0D4D 0x0D32) 0xBE) - ((0x0D2E) 0x61) - ((0x0D2F) 0x62) - ((0x0D2F 0x0D4D 0x0D2F) 0xBF) - ((0x0D2F 0x0D4D 0x0D15 0x0D4D 0x0D15) 0xED) - ((0x0D30 0x0D41 0x0D4D) 0xC0) - ((0x0D30 0x0D41) 0xEA) - ((0x0D30) 0x63) - ((0x0D31 0x0D4D 0x0D31) 0xE4) - ((0x0D31 0x0D4D) 0xC0) - ((0x0D31 0x0D41 0x0D4D) 0xC0) - ((0x0D31) 0x64) - ((0x0D32 0x0D41 0x0D4D) 0xC2) - ((0x0D32 0x0D4D 0x0D32) 0xC3) - ((0x0D32 0x0D4D 0x0D2A) 0xE5) - ((0x0D32) 0x65) - ((0x0D33 0x0D41 0x0D4D) 0xC4) - ((0x0D33 0x0D4D 0x0D33) 0xC5) - ((0x0D33) 0x66) - ((0x0D34) 0x67) - ((0x0D35 0x0D4D 0x0D35) 0xC6) - ((0x0D35) 0x68) - ((0x0D36 0x0D4D 0x0D32) 0xC7) - ((0x0D36 0x0D4D 0x0D36) 0xC8) - ((0x0D36 0x0D4D 0x0D1A) 0xDD) - ((0x0D36) 0x69) - ((0x0D37 0x0D4D 0x0D1F) 0xE3) - ((0x0D37) 0x6A) - ((0x0D38 0x0D4D 0x0D32) 0xC9) - ((0x0D38 0x0D4D 0x0D38) 0xCA) - ((0x0D38 0x0D4D 0x0D31 0x0D4D 0x0D31) 0xCC) - ((0x0D38 0x0D4D 0x0D25) 0xD8) - ((0x0D38) 0x6B) - ((0x0D39 0x0D4D 0x0D32) 0xCB) - ((0x0D39 0x0D4D 0x0D2E) 0xD2) - ((0x0D39 0x0D4D 0x0D28) 0xD3) - ((0x0D39) 0x6C) - ;; Dependent vowel signs - ((0x0D3E) 0x6D) - ((0x0D3F) 0x6E) - ((0x0D40) 0x6F) - ((0x0D41) 0x70) - ((0x0D42) 0x71) - ((0x0D43) 0x72) - ((0x0D46) 0x73) - ((0x0D47) 0x74) - ((0x0D48) 0x73 0x73) - ((0x0D4A) 0x73 0x6D) - ((0x0D4B) 0x74 0x6D) - ((0x0D4C) 0x75) - ;; Various signs - ((0x0D4D 0x0D2F 0x0D41) 0x7C) - ((0x0D4D 0x0D2F 0x0D42) 0x7D) - ((0x0D4D 0x0D2F) 0x79) - ((0x0D4D 0x0D30 0x0D4D) 0x72) - ((0x0D4D 0x0D30) 0x7B) - ((0x0D4D 0x0D31 0x0D4D) 0x72) - ((0x0D4D 0x0D31) 0x7B) - ((0x0D4D 0x0D35) 0x7A) - ((0x0D4D 0x0D4D) 0x76) - ((0x0D4D) 0x76) - ((0x0D57) 0x75)))) - -(category - (0x00 0xFF ?M) - (0x49 0x6C ?C) - (0x73 ?E) ; E - (0x74 ?e) ; EE - (0x79 ?Y) ; yakar - (0x7A ?V) ; vakar - (0x7B ?R) ; rrakar - (0xA1 0xE5 ?C)) - -(generator - (0 - (cond - (" (C[YV]?)(R) " - < (2 =) (1 = *) >) - (" (R?C[YV]?)(EE?) " - < (2 = *) (1 = *) >) - (" (R?C[YV]?)(e) " - < (2 = ) (1 = *) >) - (" ([^ ]*) " - < (1 = *) >) - ("." [ = ])) - *)) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/MLM-OTF.flt b/MLM-OTF.flt deleted file mode 100644 index abf1326..0000000 --- a/MLM-OTF.flt +++ /dev/null @@ -1,204 +0,0 @@ -;; MLM-OTF.flt -- Font Layout Table for Malayalam OpenType font -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • MLM-OTF.flt -;;; -;;; For Malayalam OpenType fonts to draw the reformed Malayalam script. - -;; The first stage is to extract a syllable and re-order characters. -(category - ;; C: consonant (except for BPR) - ;; B: consonant that is the subject of "blws" feature - ;; P: consonant that is the subject of "pstf" feature - ;; R: consonant RA - ;; H: HALANT (VIRAMA) - ;; m: MATRA (Mpre) - ;; p: MATRA (Mpost) - ;; t: MATRA (two-part: Mpre+Mpost) - ;; A: vowel modifier (post) (ANUSVARA and VISARGA) - ;; V: independent vowel - ;; N: ZWNJ (ZERO WIDTH NON-JOINER) - ;; J: ZWJ (ZERO WIDTH JOINER) - ;; E: else (all other independnt characters) - (0x0D00 0x0D7F ?E) ; else - (0x0D02 0x0D03 ?A) ; ANUSVARA & VISARGA - (0x0D05 0x0D14 ?V) ; independent vowel - (0x0D15 0x0D39 ?C) ; consonant - - ;; Accorind to www.microsoft.com/typography/otfntdev/indicot/appen.htm, - ;; these must be classified into 'B' category, but at least, it - ;; doesn't work with this font - ;; http://www.supersoftweb.com/THOOLIUC.TTF - ;;(0x0D1F ?B) ; TTA - ;;(0x0D23 ?B) ; NNA - ;;(0x0D26 ?B) ; DA - (0x0D2F ?P) ; YA - (0x0D30 ?R) ; RA - (0x0D32 ?B) ; LA - (0x0D35 ?P) ; VA - (0x0D3E 0x0D43 ?p) ; dependent vowel (Mpost) - (0x0D46 0x0D48 ?m) ; dependent vowel (Mpre) - (0x0D4A 0x0D4C ?t) ; dependent vowel (two-part) - (0x0D4D ?H) ; VIRAMA (HALANT) - (0x0D57 ?p) ; dependent vowel (Mpost) - (0x0D60 ?V) ; VOCALIC RR - (0x0D61 ?V) ; VOCALIC LL - (0x200C ?N) ; ZWNJ - (0x200D ?J) ; ZWJ - (0x0D7D ?x) ; marker inserted before base-C - (0x0D7E ?y) ; marker inserted after base-C - (0x0D7F ?z) ; marker inserted before last Ra - ) - -;; The 1st stage is to extract a syllable while moving a Halant -;; following Cbase to the tail and partitioning two-part matras into -;; parts. -(generator - (0 - (cond - ;; If [CR]H is followed by ZWNJ/ZWJ, move ZWNJ/ZWJ) to the head so - ;; that the later stages find it quickly. - ("([CBPR]H)([NJ])" - < | (2 =) (1 = =) | >) - - ;; A syllable starting with a consonant and ending with a vowel - ;; and/or a vowel modifier. - ("(([CBPR]H)*[CBPR])([pmt]A?|A)" - < | (1 move-halant) (3 partition = =) | >) - - ;; A syllable starting with a consonant and ending without a vowel - ;; nor a vowel modifier. - ("(([CBPR]H)*[CBPR])(H)?" - < | (1 move-halant) (3 =) | >) - - ;; A syllable starting with an independent vowel. - ("(VA?)" - < | (1 = *) | >) - - ;; Other independent character. - ("." =)) - *) - - ;; Move Halant to the tail if necessary. Insert 0x0D7D before Cbase, - ;; 0x0D7E after Cbase, 0x0D7F before the tailing RH (if any). They - ;; work as markers in the following stages. - (move-halant - (cond - ;; In the first two cases, we don't have to move Halant. - ("[BPR]$" ; Single consonant. - 0x0D7D 0x0D7E =) - ("(([CBPR]H)*)(C)$" ; Cbase is at tail. - (1 = *) 0x0D7D (3 =) 0x0D7E) - ;; In the following cases, we must move Halant to the tail. - ("(([CBPR]H)*)([C])H(([BR]H)*)(R)$" ; Cbase is at head or middle. - (1 = *) 0x0D7D (3 =) 0x0D7E (4 = *) 0x0D7F 0x0D30 0x0D4D) - ("(([CBPR]H)*)([C])H(([BR]H)*[BP])$" ; Cbase is at head or middle. - (1 = *) 0x0D7D (3 =) 0x0D7E (4 = *) 0x0D4D) - ("(RH)?(.)H(.*)$" ; No Cbase, move the first - ; Halant to the tail. - (1 = *) 0x0D7D (2 = ) 0x0D7E (3 = *) 0x0D4D))) - - ;; Partition two-part matras into parts. - (partition - (cond - ((0x0D4A) 0x0D46 0x0D3E) - ((0x0D4B) 0x0D47 0x0D3E) - ;; Unicode suggests this partitioning: - ((0x0D4C) 0x0D46 0x0D57) - ;; but it is questionable. Perhaps, this substitution is better. - ;; ((0x0D4C) 0x0D57) - ))) - -;; The 2nd stage is to apply GSUB for prebase part. -(generator - (0 - (cond - ;; Originally [CBPR]H is followed by ZWNJ. Apply no feature (just - ;; cmap). - (" N([^ ]*) " - (1 otf:mlym=+)) - - ;; Originally [CBPR]H is followed by ZWJ. Apply only GSUB haln - ;; feature. - (" J([^ ]*) " - (1 otf:mlym=haln+)) - - ;; Syllable starting with a consonant should match this pattern. - (" ([^ y]*)y([^ z]*)(z..)?([^ ]*) " - | - (1 otf:mlym=~blwf,~pstf,~blws,~psts,*+) ; Prebase part. - 0x0D7E ; Preserve this marker. - (2 = *) ; Postbase part. - (3 = *) ; Optional tailing RH. - (4 = *) ; Optional Mpost. - |) - - ;; A syllable starting with an independent vowel. - (" ([^ ]*) " - (1 otf:mlym+)) - - ;; Any other independent character. Apply no feature (just cmap). - ("." - [ otf:mlym=+ ] )) - *)) - -;; The 3rd stage is to move Mpre (if any) and tailing RH (if any) -;; forward to just before the base consonant. -(generator - (0 - (cond - (" ([^x]*)(.)xy([^ zm]*)(z(..))?(m)?([^ ]*) " - | (1 = *) (4 (5 otf:mlym=pstf+)) (6 =) 0x0D7D (2 =) (3 = *) (7 = *) |) - (" ([^x]*)x(.)y([^ zm]*)(z(..))?(m)?([^ ]*) " - | (1 = *) (4 (5 otf:mlym=pstf+)) (6 =) 0x0D7D (2 =) (3 = *) (7 = *) |) - (" xy([^ m]*)(m)?([^ ]*) " - | (2 =) 0x0D7D (1 = *) (3 = *) |) - ("[NJ]") - ("." - = )) - *)) - -;; The 4th stage is to apply GSUB to postbase part. -(generator - (0 - (cond - (" ([^x]*)x(.H) " - | (1 = *) (2 otf:mlum=haln) |) - (" ([^x]*)x([^ ]*) " - | (1 = *) (2 otf:mlym=~akhn,~haln,blwf,pstf,vatu,*+) |) - ("." =)) - *)) - - - -;; The 5th (last) stage is to apply GPOS features. -(generator - (0 - (cond - (" ([^ ]*) " (1 otf:mlym=)) - ("." =)) - *)) - -;; Local Variables: -;; mode: emacs-lisp -;; End: diff --git a/MLYM-CDAC.flt b/MLYM-CDAC.flt new file mode 100644 index 0000000..db6abe0 --- /dev/null +++ b/MLYM-CDAC.flt @@ -0,0 +1,238 @@ +;; MLM-CDAC.flt -- Font Layout Table for Malayalam (C-DAC font) +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • MLM-CDAC.flt +;;; +;;; For the font MLKR0ntt.ttf (developped by C-DAC, encoding is ISFOC) +;;; to draw Malayalam script. The font is available at: +;;; + +(category + (0x0D00 0x0D7F ?E) ; all malayalam characters + (0x0D02 ?A) ; ANUSVARA + (0x0D03 ?G) ; VISARGA + (0x0D05 0x0D14 ?V) ; independent vowel + (0x0D15 0x0D39 ?C) ; consonant + (0x0D3E 0x0D4C ?M) ; dependent vowel (MATRA) + (0x0D4D ?H) ; HALANT + ) + +(generator + (0 + (cond + ("(VA?)|G|((CH)?(CH)?(CH)?CH)?C(H|M?[AH]?)?" | glyph * |) + ("." glyph )) + * ) + + (glyph + (cond + ;; various sign + ((0x0D02) 0x77) + ((0x0D03) 0x78) + ;; Independent Vowels + ((0x0D05) 0x41) + ((0x0D06) 0x42) + ((0x0D07) 0x43) + ((0x0D08) 0x43 0x75) + ((0x0D09) 0x44) + ((0x0D0A) 0x44 0x75) + ((0x0D0B) 0x45) + ((0x0D0C) 0x23) + ((0x0D0E) 0x46) + ((0x0D0F) 0x47) + ((0x0D10) 0x73 0x46) + ((0x0D12) 0x48) + ((0x0D13) 0x48 0x6D) + ((0x0D14) 0x48 0x75) + ;; Consonants + ((0x0D15 0x0D4D 0x0D15 0x0D41) 0xE7) + ((0x0D15 0x0D4D 0x0D15) 0xA1) + ((0x0D15 0x0D4D 0x0D33) 0xA2) + ((0x0D15 0x0D4D 0x0D37) 0xA3) + ((0x0D15 0x0D4D 0x0D1F) 0xCE) + ((0x0D15 0x0D4D 0x0D24) 0xE0) + ((0x0D15 0x0D41) 0xE6) + ((0x0D15 0x0D41) 0xE6) + ((0x0D15) 0x49) + ((0x0D16) 0x4A) + ((0x0D17 0x0D4D 0x0D17) 0xA4) + ((0x0D17 0x0D4D 0x0D32) 0xA5) + ((0x0D17 0x0D4D 0x0D2E) 0xDC) + ((0x0D17 0x0D4D 0x0D28) 0xE1) + ((0x0D17) 0x4B) + ((0x0D18) 0x4C) + ((0x0D19 0x0D4D 0x0D15) 0xA6) + ((0x0D19 0x0D4D 0x0D19) 0xA7) + ((0x0D19 0x0D4D 0x0D15 0x0D41) 0xE8) + ((0x0D19) 0x4D) + ((0x0D1A 0x0D4D 0x0D1A) 0xA8) + ((0x0D1A 0x0D4D 0x0D1B) 0xD1) + ((0x0D1A) 0x4E) + ((0x0D1B) 0x4F) + ((0x0D1C 0x0D4D 0x0D1C) 0xD6) + ((0x0D1C 0x0D4D 0x0D1E) 0xDA) + ((0x0D1C) 0x50) + ((0x0D1D) 0x51) + ((0x0D1E 0x0D4D 0x0D1A) 0xA9) + ((0x0D1E 0x0D4D 0x0D1E) 0xAA) + ((0x0D1E) 0x52) + ((0x0D1F 0x0D4D 0x0D1F) 0xAB) + ((0x0D1F) 0x53) + ((0x0D20) 0x54) + ((0x0D21 0x0D4D 0x0D21) 0xCD) + ((0x0D21) 0x55) + ((0x0D22) 0x56) + ((0x0D23 0x0D41 0x0D4D) 0xAC) + ((0x0D23 0x0D41) 0xE9) + ((0x0D23 0x0D4D 0x0D1F) 0xAD) + ((0x0D23 0x0D4D 0x0D23) 0xAE) + ((0x0D23 0x0D4D 0x0D2E) 0xD7) + ((0x0D23 0x0D4D 0x0D21) 0xDE) + ((0x0D23) 0x57) + ((0x0D24 0x0D4D 0x0D24) 0xAF) + ((0x0D24 0x0D4D 0x0D25) 0xB0) + ((0x0D24 0x0D4D 0x0D38) 0xD5) + ((0x0D24 0x0D4D 0x0D2D) 0xDB) + ((0x0D24 0x0D4D 0x0D2E) 0xDF) + ((0x0D24) 0x58) + ((0x0D25) 0x59) + ((0x0D26 0x0D4D 0x0D26) 0xB1) + ((0x0D26 0x0D4D 0x0D27) 0xB2) + ((0x0D26) 0x5A) + ((0x0D27) 0x5B) + ((0x0D28 0x0D41 0x0D4D) 0xB3) + ((0x0D28 0x0D41) 0xEB) + ((0x0D28 0x0D4D 0x0D24) 0xB4) + ((0x0D28 0x0D4D 0x0D26) 0xB5) + ((0x0D28 0x0D4D 0x0D28 0x0D41) 0xEC) + ((0x0D28 0x0D4D 0x0D28) 0xB6) + ((0x0D28 0x0D4D 0x0D2E) 0xB7) + ((0x0D28 0x0D4D 0x0D27) 0xD4) + ((0x0D28 0x0D4D 0x0D25) 0xD9) + ((0x0D28 0x0D4D 0x0D31) 0xE2) + ((0x0D28) 0x5C) + ((0x0D2A 0x0D4D 0x0D2A) 0xB8) + ((0x0D2A 0x0D4D 0x0D32) 0xB9) + ((0x0D2A) 0x5D) + ((0x0D2B) 0x5E) + ((0x0D2C 0x0D4D 0x0D2C) 0xBA) + ((0x0D2C 0x0D4D 0x0D32) 0xBB) + ((0x0D2C 0x0D4D 0x0D27) 0xCF) + ((0x0D2C 0x0D4D 0x0D26) 0xD0) + ((0x0D2C) 0x5F) + ((0x0D2D) 0x60) + ((0x0D2E 0x0D4D 0x0D2A) 0xBC) + ((0x0D2E 0x0D4D 0x0D2E) 0xBD) + ((0x0D2E 0x0D4D 0x0D32) 0xBE) + ((0x0D2E) 0x61) + ((0x0D2F) 0x62) + ((0x0D2F 0x0D4D 0x0D2F) 0xBF) + ((0x0D2F 0x0D4D 0x0D15 0x0D4D 0x0D15) 0xED) + ((0x0D30 0x0D41 0x0D4D) 0xC0) + ((0x0D30 0x0D41) 0xEA) + ((0x0D30) 0x63) + ((0x0D31 0x0D4D 0x0D31) 0xE4) + ((0x0D31 0x0D4D) 0xC0) + ((0x0D31 0x0D41 0x0D4D) 0xC0) + ((0x0D31) 0x64) + ((0x0D32 0x0D41 0x0D4D) 0xC2) + ((0x0D32 0x0D4D 0x0D32) 0xC3) + ((0x0D32 0x0D4D 0x0D2A) 0xE5) + ((0x0D32) 0x65) + ((0x0D33 0x0D41 0x0D4D) 0xC4) + ((0x0D33 0x0D4D 0x0D33) 0xC5) + ((0x0D33) 0x66) + ((0x0D34) 0x67) + ((0x0D35 0x0D4D 0x0D35) 0xC6) + ((0x0D35) 0x68) + ((0x0D36 0x0D4D 0x0D32) 0xC7) + ((0x0D36 0x0D4D 0x0D36) 0xC8) + ((0x0D36 0x0D4D 0x0D1A) 0xDD) + ((0x0D36) 0x69) + ((0x0D37 0x0D4D 0x0D1F) 0xE3) + ((0x0D37) 0x6A) + ((0x0D38 0x0D4D 0x0D32) 0xC9) + ((0x0D38 0x0D4D 0x0D38) 0xCA) + ((0x0D38 0x0D4D 0x0D31 0x0D4D 0x0D31) 0xCC) + ((0x0D38 0x0D4D 0x0D25) 0xD8) + ((0x0D38) 0x6B) + ((0x0D39 0x0D4D 0x0D32) 0xCB) + ((0x0D39 0x0D4D 0x0D2E) 0xD2) + ((0x0D39 0x0D4D 0x0D28) 0xD3) + ((0x0D39) 0x6C) + ;; Dependent vowel signs + ((0x0D3E) 0x6D) + ((0x0D3F) 0x6E) + ((0x0D40) 0x6F) + ((0x0D41) 0x70) + ((0x0D42) 0x71) + ((0x0D43) 0x72) + ((0x0D46) 0x73) + ((0x0D47) 0x74) + ((0x0D48) 0x73 0x73) + ((0x0D4A) 0x73 0x6D) + ((0x0D4B) 0x74 0x6D) + ((0x0D4C) 0x75) + ;; Various signs + ((0x0D4D 0x0D2F 0x0D41) 0x7C) + ((0x0D4D 0x0D2F 0x0D42) 0x7D) + ((0x0D4D 0x0D2F) 0x79) + ((0x0D4D 0x0D30 0x0D4D) 0x72) + ((0x0D4D 0x0D30) 0x7B) + ((0x0D4D 0x0D31 0x0D4D) 0x72) + ((0x0D4D 0x0D31) 0x7B) + ((0x0D4D 0x0D35) 0x7A) + ((0x0D4D 0x0D4D) 0x76) + ((0x0D4D) 0x76) + ((0x0D57) 0x75)))) + +(category + (0x00 0xFF ?M) + (0x49 0x6C ?C) + (0x73 ?E) ; E + (0x74 ?e) ; EE + (0x79 ?Y) ; yakar + (0x7A ?V) ; vakar + (0x7B ?R) ; rrakar + (0xA1 0xE5 ?C)) + +(generator + (0 + (cond + (" (C[YV]?)(R) " + < (2 =) (1 = *) >) + (" (R?C[YV]?)(EE?) " + < (2 = *) (1 = *) >) + (" (R?C[YV]?)(e) " + < (2 = ) (1 = *) >) + (" ([^ ]*) " + < (1 = *) >) + ("." [ = ])) + *)) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/MLYM-OTF.flt b/MLYM-OTF.flt new file mode 100644 index 0000000..abf1326 --- /dev/null +++ b/MLYM-OTF.flt @@ -0,0 +1,204 @@ +;; MLM-OTF.flt -- Font Layout Table for Malayalam OpenType font +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • MLM-OTF.flt +;;; +;;; For Malayalam OpenType fonts to draw the reformed Malayalam script. + +;; The first stage is to extract a syllable and re-order characters. +(category + ;; C: consonant (except for BPR) + ;; B: consonant that is the subject of "blws" feature + ;; P: consonant that is the subject of "pstf" feature + ;; R: consonant RA + ;; H: HALANT (VIRAMA) + ;; m: MATRA (Mpre) + ;; p: MATRA (Mpost) + ;; t: MATRA (two-part: Mpre+Mpost) + ;; A: vowel modifier (post) (ANUSVARA and VISARGA) + ;; V: independent vowel + ;; N: ZWNJ (ZERO WIDTH NON-JOINER) + ;; J: ZWJ (ZERO WIDTH JOINER) + ;; E: else (all other independnt characters) + (0x0D00 0x0D7F ?E) ; else + (0x0D02 0x0D03 ?A) ; ANUSVARA & VISARGA + (0x0D05 0x0D14 ?V) ; independent vowel + (0x0D15 0x0D39 ?C) ; consonant + + ;; Accorind to www.microsoft.com/typography/otfntdev/indicot/appen.htm, + ;; these must be classified into 'B' category, but at least, it + ;; doesn't work with this font + ;; http://www.supersoftweb.com/THOOLIUC.TTF + ;;(0x0D1F ?B) ; TTA + ;;(0x0D23 ?B) ; NNA + ;;(0x0D26 ?B) ; DA + (0x0D2F ?P) ; YA + (0x0D30 ?R) ; RA + (0x0D32 ?B) ; LA + (0x0D35 ?P) ; VA + (0x0D3E 0x0D43 ?p) ; dependent vowel (Mpost) + (0x0D46 0x0D48 ?m) ; dependent vowel (Mpre) + (0x0D4A 0x0D4C ?t) ; dependent vowel (two-part) + (0x0D4D ?H) ; VIRAMA (HALANT) + (0x0D57 ?p) ; dependent vowel (Mpost) + (0x0D60 ?V) ; VOCALIC RR + (0x0D61 ?V) ; VOCALIC LL + (0x200C ?N) ; ZWNJ + (0x200D ?J) ; ZWJ + (0x0D7D ?x) ; marker inserted before base-C + (0x0D7E ?y) ; marker inserted after base-C + (0x0D7F ?z) ; marker inserted before last Ra + ) + +;; The 1st stage is to extract a syllable while moving a Halant +;; following Cbase to the tail and partitioning two-part matras into +;; parts. +(generator + (0 + (cond + ;; If [CR]H is followed by ZWNJ/ZWJ, move ZWNJ/ZWJ) to the head so + ;; that the later stages find it quickly. + ("([CBPR]H)([NJ])" + < | (2 =) (1 = =) | >) + + ;; A syllable starting with a consonant and ending with a vowel + ;; and/or a vowel modifier. + ("(([CBPR]H)*[CBPR])([pmt]A?|A)" + < | (1 move-halant) (3 partition = =) | >) + + ;; A syllable starting with a consonant and ending without a vowel + ;; nor a vowel modifier. + ("(([CBPR]H)*[CBPR])(H)?" + < | (1 move-halant) (3 =) | >) + + ;; A syllable starting with an independent vowel. + ("(VA?)" + < | (1 = *) | >) + + ;; Other independent character. + ("." =)) + *) + + ;; Move Halant to the tail if necessary. Insert 0x0D7D before Cbase, + ;; 0x0D7E after Cbase, 0x0D7F before the tailing RH (if any). They + ;; work as markers in the following stages. + (move-halant + (cond + ;; In the first two cases, we don't have to move Halant. + ("[BPR]$" ; Single consonant. + 0x0D7D 0x0D7E =) + ("(([CBPR]H)*)(C)$" ; Cbase is at tail. + (1 = *) 0x0D7D (3 =) 0x0D7E) + ;; In the following cases, we must move Halant to the tail. + ("(([CBPR]H)*)([C])H(([BR]H)*)(R)$" ; Cbase is at head or middle. + (1 = *) 0x0D7D (3 =) 0x0D7E (4 = *) 0x0D7F 0x0D30 0x0D4D) + ("(([CBPR]H)*)([C])H(([BR]H)*[BP])$" ; Cbase is at head or middle. + (1 = *) 0x0D7D (3 =) 0x0D7E (4 = *) 0x0D4D) + ("(RH)?(.)H(.*)$" ; No Cbase, move the first + ; Halant to the tail. + (1 = *) 0x0D7D (2 = ) 0x0D7E (3 = *) 0x0D4D))) + + ;; Partition two-part matras into parts. + (partition + (cond + ((0x0D4A) 0x0D46 0x0D3E) + ((0x0D4B) 0x0D47 0x0D3E) + ;; Unicode suggests this partitioning: + ((0x0D4C) 0x0D46 0x0D57) + ;; but it is questionable. Perhaps, this substitution is better. + ;; ((0x0D4C) 0x0D57) + ))) + +;; The 2nd stage is to apply GSUB for prebase part. +(generator + (0 + (cond + ;; Originally [CBPR]H is followed by ZWNJ. Apply no feature (just + ;; cmap). + (" N([^ ]*) " + (1 otf:mlym=+)) + + ;; Originally [CBPR]H is followed by ZWJ. Apply only GSUB haln + ;; feature. + (" J([^ ]*) " + (1 otf:mlym=haln+)) + + ;; Syllable starting with a consonant should match this pattern. + (" ([^ y]*)y([^ z]*)(z..)?([^ ]*) " + | + (1 otf:mlym=~blwf,~pstf,~blws,~psts,*+) ; Prebase part. + 0x0D7E ; Preserve this marker. + (2 = *) ; Postbase part. + (3 = *) ; Optional tailing RH. + (4 = *) ; Optional Mpost. + |) + + ;; A syllable starting with an independent vowel. + (" ([^ ]*) " + (1 otf:mlym+)) + + ;; Any other independent character. Apply no feature (just cmap). + ("." + [ otf:mlym=+ ] )) + *)) + +;; The 3rd stage is to move Mpre (if any) and tailing RH (if any) +;; forward to just before the base consonant. +(generator + (0 + (cond + (" ([^x]*)(.)xy([^ zm]*)(z(..))?(m)?([^ ]*) " + | (1 = *) (4 (5 otf:mlym=pstf+)) (6 =) 0x0D7D (2 =) (3 = *) (7 = *) |) + (" ([^x]*)x(.)y([^ zm]*)(z(..))?(m)?([^ ]*) " + | (1 = *) (4 (5 otf:mlym=pstf+)) (6 =) 0x0D7D (2 =) (3 = *) (7 = *) |) + (" xy([^ m]*)(m)?([^ ]*) " + | (2 =) 0x0D7D (1 = *) (3 = *) |) + ("[NJ]") + ("." + = )) + *)) + +;; The 4th stage is to apply GSUB to postbase part. +(generator + (0 + (cond + (" ([^x]*)x(.H) " + | (1 = *) (2 otf:mlum=haln) |) + (" ([^x]*)x([^ ]*) " + | (1 = *) (2 otf:mlym=~akhn,~haln,blwf,pstf,vatu,*+) |) + ("." =)) + *)) + + + +;; The 5th (last) stage is to apply GPOS features. +(generator + (0 + (cond + (" ([^ ]*) " (1 otf:mlym=)) + ("." =)) + *)) + +;; Local Variables: +;; mode: emacs-lisp +;; End: diff --git a/MYMR-MYAZEDI.flt b/MYMR-MYAZEDI.flt new file mode 100644 index 0000000..9526120 --- /dev/null +++ b/MYMR-MYAZEDI.flt @@ -0,0 +1,274 @@ +;; MYANMAR-ZEDI.flt -- Font Layout Table for Myanmar (Zedi font) +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • MYANMAR-ZEDI.flt +;;; +;;; For the Myanmar Zedi family fonts to draw Myanmar script. +;;; + +;; 1st stage +;; Extract syllable while detecting Kinzi, substituting subscripts, +;; and removing Halants. + +(category + (0x1000 0x107F ?O) ; other + (0x1000 0x1021 ?C) ; consonant except for c and K + (0x1000 0x1003 ?c) ; consonant that has subscript form + (0x1004 ?K) ; consonant NGA + (0x1005 0x1008 ?c) + (0x100B 0x100C ?c) + (0x100F 0x1019 ?c) + (0x1014 ?n) ; consonant NA + (0x101C ?c) + (0x101A ?M) ; cosonant that may be used as Medial + (0x101B ?r) ; Medial Ra + (0x101D ?M) + (0x101F ?M) + (0x1021 0x102A ?I) ; independent vowel + (0x102C 0x1032 ?V) ; dependent Vowel + (0x1036 ?A) ; sign ANUSVARA + (0x1037 0x1038 ?S) ; other sign + (0x1039 ?H) ; HALANT (VIRAMA) + (0x200C ?N) ; ZWNJ (Zero Width Non Joiner) + ) + +(generator + (0 + (cond + ;; Special case for Medial Ra: don't use Kinzi for this pattern. + ("(K)(Hr(HM)*)(V*A?H?)N?(S*)" + | < (1 =) (2 remove-halant *) (4 = *) (5 = *) > |) + + ;; The following regular expression matches a syllable pattern + ;; described in Table 10-3 of the Unicode Standard 4.0 . + ;;<1-> <--------2--------><--4--><--6---> <7-> + ;; <---3---> <5-> + ("(KH)?([CcnKMr](H[CcnK])?)((H[Mr])*)(V*A?H?)N?(S*)" + | < (1 0xE390) (2 consonant) (4 remove-halant *) (6 = *) (7 = *) > |) + + ;; Fixme: I'm not sure about the syllable pattern for an + ;; independent vowel. + ("IV*[AS]*" + | < = * > |) + + ;; Treat anything else as a single character. + ("." + [ = ])) + *) + + (consonant + (cond + ((0x100B 0x1039 0x100C) 0xE10C) + ((0x100D 0x1039 0x100D) 0xE00D) + ((0x100E 0x1039 0x100D) 0xE10D) + ((0x100F 0x1039 0x100D) 0xE20D) + ((0x101E 0x1039 0x101E) 0xE01E) + ("(n)H([cn])" 0xE140 (2 subscript)) + ("(.)H([cn])" (1 =) (2 subscript)) + ("(.)H(.)" (1 =) (2 =)) + ("." =))) + + (subscript + (cond ((range 0x1000 0x101c) 0xE000))) + + (remove-halant + (cond + ((0x1039)) + ("." =)))) + +;; 2nd stage +;; Handle medials. + +(category + (0x1000 0x107F ?O) ; other + (0x1000 0x1021 ?W) ; wide consonant + (0x1001 0x1002 ?S) ; single-width consonant + (0x1004 0x1005 ?S) + (0x1007 0x1008 ?S) + (0x100B 0x100E ?S) + (0x1012 0x1017 ?S) + (0x1019 ?S) + (0x101A ?a) ; medial Ya + (0x101B ?b) ; medial Ra + (0x101D ?d) ; medial Wa + (0x101F ?f) ; medial Ha + (0x1020 ?S) + (0x102D 0x102E ?V) ; dependent vowel (upper) + (0x1032 ?V) + (0x200C ?N) ; ZWNJ + (0xE000 0xE3FF ?O) + (0xE000 0xE01E ?w) ; wide subscript + (0xE001 0xE002 ?s) ; single-width subscript + (0xE005 ?s) + (0xE007 ?s) + (0xE00B ?s) + (0xE012 0xE017 ?s) + (0xE019 ?s) + (0xE10C 0xE10D ?s) + (0xE140 ?s) + (0xE20D ?w) + (0xE390 ?K) ; Kinzi + ) + +(generator + (0 + (cond + (" (K)?([WSabdfws][WSKws]?[abdf][abdf]*[^ ]*) " + | (1 =) (2 medial = *) |) + (" ([^ ]*) " + = *) + ("." + =)) + *) + + (medial + (cond + ;; Medial Ya (U+101A) + ("(..?)adf" (1 = *) 0xE1A2) + ("(..?)ad" (1 = *) 0xE1A4) + ("(..?)af" (1 = *) 0xE1A3) + ("(..?)a" (1 = *) 0xE1A1) + + ;; Medial Ra (U+101B) + ("([Waf]|.[Ww])bdf" 0xE1BA (1 = *)) + ("(..?)bdf" 0xE1B9 (1 = *)) + ("([Waf]|.[Ww])bd" 0xE1B8 (1 = *)) + ("(..?)bd" 0xE1B7 (1 = *)) + ("([Waf]|.[Ww])b(f)?(V)" 0xE1B6 (1 = *) (2 0xE1F3) (3 =)) + ("(..?)b(f)?(V)" 0xE1B5 (1 = *) (2 0xE1F3) (3 =)) + ;; Single-width consonant + a wide subscript + Medial Ra. + ;; To use glyph E1B4, we must shift the single-width consonant to + ;; the right. + ("([Sd][Ww])b" 0xE1B4 Br>32Bl (1 = *)) + ("([Waf].|.[Ww])b" 0xE1B4 (1 = *)) + ("(s|..)b" 0xE1B3 (1 = *)) + ("([Waf])b(f)?" 0xE1B2 (1 = *) (2 0xE1F3)) + ("(.)b(f)?" 0xE1B1 (1 = *) (2 0xE1F3)) + + ;; Medial Wa (U+101D) + ("(..?)df" (1 = *) 0xE1D1) + ("(..?)d" (1 = *) 0xE01D) + + ;; Medial Ha (U+101F) + ((0x100A 0x101F) 0x100A 0xE1F3) + ("(..?)f" (1 = =) 0xE1F1)))) + +;; 3rd stage +;; Reorder Kinzi and Vowel E. Handle Kinzi-vowel combination. + +(category + (0x1000 0x107F ?O) + (0x1000 0x1021 ?C) ; Consonants except for c + (0x1001 0x1002 ?c) ; Consonants affecting the shape of + (0x1004 ?c) ; the following vowel U+102C + (0x1012 ?c) + (0x1015 ?c) + (0x101D ?c) + (0x1008 ?b) + (0x100A 0x100D ?b) + (0x1020 ?b) + (0x1025 ?b) + (0x102C ?A) ; Vowel AA + (0x102D ?i) ; Vowel I + (0x102E ?I) ; Vowel II + (0x102F ?u) ; Vowel U + (0x1030 ?U) ; Vowel UU + (0x1031 ?e) ; Vowel E + (0x1032 ?V) ; Vowel AI + (0x1036 0x1038 ?D) + (0x1039 ?H) + (0x200C ?N) + (0xE000 0xE3FF ?O) + (0xE000 0xE01D ?b) + (0xE1A1 0xE1B0 ?b) + (0xE1B1 0xE1BA ?B) + (0xE140 ?C) + (0xE390 ?K) ; Kinzi +) + +(generator + (0 + (cond + (" K([CcbB]*)(e)([^ ]*) " + | (2 =) (1 = *) (3 kinzi-vowel = *) |) + (" K([CcbB]*)([^ ]*) " + | (1 = *) (2 kinzi-vowel = *) |) + (" ([CcbB]*)(e)([^ ]*) " + | (2 =) (1 = *) (3 = *) |) + (" ([^ ]*) " + = *) + ("." + =)) + *) + + (kinzi-vowel + (cond + ((0x102D) 0xE391) + ((0x102E) 0xE391) + ((0x1036) 0xE393) + 0xE390))) + +;; 4th stage +;; Various glyph substitions. + +(generator + (0 + (cond + (" ([^ ]*) " + (1 + (cond + ;; Consonant substituion. + ((0x1009 0x1039) 0xE009 0x1039) + ((0x1009 0xE005) 0xE109 0xE005) + ((0x101B 0x102F) 0xE01B 0x102F) + + ;; Sign substituion. + ((0x1014 0x1037) 0x1014 0xE037) + ((0x101B 0x1037) 0x101B 0xE137) + + ;; Vowel substituion. + ((0xE1F1 0x102F) 0xE1F2) + ("BcK?A" = = = =) + ("cAH" = 0xE02D) + ("cA" = 0xE02C) + ("cKA" = = Br>Bl 0xE02C) + ((0x1012 0xE012 0x102C 0x1039) = = 0xE02D) + ((0x1012 0xE01D 0x102C 0x1039) = = 0xE02D) + ((0x1012 0xE012 0x102C) = = 0xE02C) + ((0x1012 0xE01D 0x102C) = = 0xE02C) + ((0x102D 0x1036) 0xE2D1) + ("([bB][^u]*)u" (1 = *) 0xE2F1) + ("([bB][^u]*)U" (1 = *) 0xE2F2) + ("." =)) + *)) + ((0x200C) 0x4E tc.cc 0x48) + ("." + =)) + *)) + +;; Local Variables: +;; mode: lisp +;; coding: utf-8 +;; End: diff --git a/Makefile.am b/Makefile.am index ee70601..964f739 100644 --- a/Makefile.am +++ b/Makefile.am @@ -104,9 +104,12 @@ FONT_LAYOUT_TABLE = \ INPUT_METHOD = \ sk-kbd.mim vi-viqr.mim vi-telex.mim hr-kbd.mim \ - ru-yawerty.mim ka-kbd.mim kk-kbd.mim sr-kbd.mim\ - ar-kbd.mim fa-isiri.mim kk-arabic.mim\ - am-sera.mim el-kbd.mim he-kbd.mim \ + el-kbd.mim \ + ru-yawerty.mim ka-kbd.mim kk-kbd.mim sr-kbd.mim \ + ar-kbd.mim fa-isiri.mim kk-arabic.mim \ + he-kbd.mim \ + dv-phonetic.mim \ + am-sera.mim \ asm-itrans.mim dev-itrans.mim knd-itrans.mim ori-itrans.mim \ tlg-itrans.mim bng-itrans.mim gjr-itrans.mim mlm-itrans.mim \ pnj-itrans.mim tml-itrans.mim \ @@ -120,6 +123,7 @@ INPUT_METHOD = \ zh-py.mim \ ko-han2.mim \ latin-post.mim \ + syrc-phonetic.mim \ unicode.mim rfc1345.mim \ ispell.mim diff --git a/Mymr-MyaZedi.flt b/Mymr-MyaZedi.flt deleted file mode 100644 index 9526120..0000000 --- a/Mymr-MyaZedi.flt +++ /dev/null @@ -1,274 +0,0 @@ -;; MYANMAR-ZEDI.flt -- Font Layout Table for Myanmar (Zedi font) -;; Copyright (C) 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • MYANMAR-ZEDI.flt -;;; -;;; For the Myanmar Zedi family fonts to draw Myanmar script. -;;; - -;; 1st stage -;; Extract syllable while detecting Kinzi, substituting subscripts, -;; and removing Halants. - -(category - (0x1000 0x107F ?O) ; other - (0x1000 0x1021 ?C) ; consonant except for c and K - (0x1000 0x1003 ?c) ; consonant that has subscript form - (0x1004 ?K) ; consonant NGA - (0x1005 0x1008 ?c) - (0x100B 0x100C ?c) - (0x100F 0x1019 ?c) - (0x1014 ?n) ; consonant NA - (0x101C ?c) - (0x101A ?M) ; cosonant that may be used as Medial - (0x101B ?r) ; Medial Ra - (0x101D ?M) - (0x101F ?M) - (0x1021 0x102A ?I) ; independent vowel - (0x102C 0x1032 ?V) ; dependent Vowel - (0x1036 ?A) ; sign ANUSVARA - (0x1037 0x1038 ?S) ; other sign - (0x1039 ?H) ; HALANT (VIRAMA) - (0x200C ?N) ; ZWNJ (Zero Width Non Joiner) - ) - -(generator - (0 - (cond - ;; Special case for Medial Ra: don't use Kinzi for this pattern. - ("(K)(Hr(HM)*)(V*A?H?)N?(S*)" - | < (1 =) (2 remove-halant *) (4 = *) (5 = *) > |) - - ;; The following regular expression matches a syllable pattern - ;; described in Table 10-3 of the Unicode Standard 4.0 . - ;;<1-> <--------2--------><--4--><--6---> <7-> - ;; <---3---> <5-> - ("(KH)?([CcnKMr](H[CcnK])?)((H[Mr])*)(V*A?H?)N?(S*)" - | < (1 0xE390) (2 consonant) (4 remove-halant *) (6 = *) (7 = *) > |) - - ;; Fixme: I'm not sure about the syllable pattern for an - ;; independent vowel. - ("IV*[AS]*" - | < = * > |) - - ;; Treat anything else as a single character. - ("." - [ = ])) - *) - - (consonant - (cond - ((0x100B 0x1039 0x100C) 0xE10C) - ((0x100D 0x1039 0x100D) 0xE00D) - ((0x100E 0x1039 0x100D) 0xE10D) - ((0x100F 0x1039 0x100D) 0xE20D) - ((0x101E 0x1039 0x101E) 0xE01E) - ("(n)H([cn])" 0xE140 (2 subscript)) - ("(.)H([cn])" (1 =) (2 subscript)) - ("(.)H(.)" (1 =) (2 =)) - ("." =))) - - (subscript - (cond ((range 0x1000 0x101c) 0xE000))) - - (remove-halant - (cond - ((0x1039)) - ("." =)))) - -;; 2nd stage -;; Handle medials. - -(category - (0x1000 0x107F ?O) ; other - (0x1000 0x1021 ?W) ; wide consonant - (0x1001 0x1002 ?S) ; single-width consonant - (0x1004 0x1005 ?S) - (0x1007 0x1008 ?S) - (0x100B 0x100E ?S) - (0x1012 0x1017 ?S) - (0x1019 ?S) - (0x101A ?a) ; medial Ya - (0x101B ?b) ; medial Ra - (0x101D ?d) ; medial Wa - (0x101F ?f) ; medial Ha - (0x1020 ?S) - (0x102D 0x102E ?V) ; dependent vowel (upper) - (0x1032 ?V) - (0x200C ?N) ; ZWNJ - (0xE000 0xE3FF ?O) - (0xE000 0xE01E ?w) ; wide subscript - (0xE001 0xE002 ?s) ; single-width subscript - (0xE005 ?s) - (0xE007 ?s) - (0xE00B ?s) - (0xE012 0xE017 ?s) - (0xE019 ?s) - (0xE10C 0xE10D ?s) - (0xE140 ?s) - (0xE20D ?w) - (0xE390 ?K) ; Kinzi - ) - -(generator - (0 - (cond - (" (K)?([WSabdfws][WSKws]?[abdf][abdf]*[^ ]*) " - | (1 =) (2 medial = *) |) - (" ([^ ]*) " - = *) - ("." - =)) - *) - - (medial - (cond - ;; Medial Ya (U+101A) - ("(..?)adf" (1 = *) 0xE1A2) - ("(..?)ad" (1 = *) 0xE1A4) - ("(..?)af" (1 = *) 0xE1A3) - ("(..?)a" (1 = *) 0xE1A1) - - ;; Medial Ra (U+101B) - ("([Waf]|.[Ww])bdf" 0xE1BA (1 = *)) - ("(..?)bdf" 0xE1B9 (1 = *)) - ("([Waf]|.[Ww])bd" 0xE1B8 (1 = *)) - ("(..?)bd" 0xE1B7 (1 = *)) - ("([Waf]|.[Ww])b(f)?(V)" 0xE1B6 (1 = *) (2 0xE1F3) (3 =)) - ("(..?)b(f)?(V)" 0xE1B5 (1 = *) (2 0xE1F3) (3 =)) - ;; Single-width consonant + a wide subscript + Medial Ra. - ;; To use glyph E1B4, we must shift the single-width consonant to - ;; the right. - ("([Sd][Ww])b" 0xE1B4 Br>32Bl (1 = *)) - ("([Waf].|.[Ww])b" 0xE1B4 (1 = *)) - ("(s|..)b" 0xE1B3 (1 = *)) - ("([Waf])b(f)?" 0xE1B2 (1 = *) (2 0xE1F3)) - ("(.)b(f)?" 0xE1B1 (1 = *) (2 0xE1F3)) - - ;; Medial Wa (U+101D) - ("(..?)df" (1 = *) 0xE1D1) - ("(..?)d" (1 = *) 0xE01D) - - ;; Medial Ha (U+101F) - ((0x100A 0x101F) 0x100A 0xE1F3) - ("(..?)f" (1 = =) 0xE1F1)))) - -;; 3rd stage -;; Reorder Kinzi and Vowel E. Handle Kinzi-vowel combination. - -(category - (0x1000 0x107F ?O) - (0x1000 0x1021 ?C) ; Consonants except for c - (0x1001 0x1002 ?c) ; Consonants affecting the shape of - (0x1004 ?c) ; the following vowel U+102C - (0x1012 ?c) - (0x1015 ?c) - (0x101D ?c) - (0x1008 ?b) - (0x100A 0x100D ?b) - (0x1020 ?b) - (0x1025 ?b) - (0x102C ?A) ; Vowel AA - (0x102D ?i) ; Vowel I - (0x102E ?I) ; Vowel II - (0x102F ?u) ; Vowel U - (0x1030 ?U) ; Vowel UU - (0x1031 ?e) ; Vowel E - (0x1032 ?V) ; Vowel AI - (0x1036 0x1038 ?D) - (0x1039 ?H) - (0x200C ?N) - (0xE000 0xE3FF ?O) - (0xE000 0xE01D ?b) - (0xE1A1 0xE1B0 ?b) - (0xE1B1 0xE1BA ?B) - (0xE140 ?C) - (0xE390 ?K) ; Kinzi -) - -(generator - (0 - (cond - (" K([CcbB]*)(e)([^ ]*) " - | (2 =) (1 = *) (3 kinzi-vowel = *) |) - (" K([CcbB]*)([^ ]*) " - | (1 = *) (2 kinzi-vowel = *) |) - (" ([CcbB]*)(e)([^ ]*) " - | (2 =) (1 = *) (3 = *) |) - (" ([^ ]*) " - = *) - ("." - =)) - *) - - (kinzi-vowel - (cond - ((0x102D) 0xE391) - ((0x102E) 0xE391) - ((0x1036) 0xE393) - 0xE390))) - -;; 4th stage -;; Various glyph substitions. - -(generator - (0 - (cond - (" ([^ ]*) " - (1 - (cond - ;; Consonant substituion. - ((0x1009 0x1039) 0xE009 0x1039) - ((0x1009 0xE005) 0xE109 0xE005) - ((0x101B 0x102F) 0xE01B 0x102F) - - ;; Sign substituion. - ((0x1014 0x1037) 0x1014 0xE037) - ((0x101B 0x1037) 0x101B 0xE137) - - ;; Vowel substituion. - ((0xE1F1 0x102F) 0xE1F2) - ("BcK?A" = = = =) - ("cAH" = 0xE02D) - ("cA" = 0xE02C) - ("cKA" = = Br>Bl 0xE02C) - ((0x1012 0xE012 0x102C 0x1039) = = 0xE02D) - ((0x1012 0xE01D 0x102C 0x1039) = = 0xE02D) - ((0x1012 0xE012 0x102C) = = 0xE02C) - ((0x1012 0xE01D 0x102C) = = 0xE02C) - ((0x102D 0x1036) 0xE2D1) - ("([bB][^u]*)u" (1 = *) 0xE2F1) - ("([bB][^u]*)U" (1 = *) 0xE2F2) - ("." =)) - *)) - ((0x200C) 0x4E tc.cc 0x48) - ("." - =)) - *)) - -;; Local Variables: -;; mode: lisp -;; coding: utf-8 -;; End: diff --git a/ORI-OTF.flt b/ORI-OTF.flt deleted file mode 100644 index 6519b21..0000000 --- a/ORI-OTF.flt +++ /dev/null @@ -1,317 +0,0 @@ -;; ORI-OTF.flt -- Font Layout Table for Oriya OpenType font -;; Copyright (C) 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • ORI-OTF.flt -;;; -;;; For Oriya OpenType fonts to draw the Oriya script. Tested with -;;; utkalm.ttf - -(category - ;; C: consonant (excluding Y and R) - ;; R: consonant RA (reph, below) - ;; B: consonant (below) - ;; Y: consonant YA, YYA (post) - ;; n: NUKTA - ;; H: HALANT - ;; m: MATRA (pre) - ;; u: MATRA (above) - ;; b: MATRA (below) - ;; p: MATRA (post) - ;; t: MATRA (two-part) - ;; A: vowel modifier (above) - ;; a: vowel modifier (post) - ;; V: independent vowel - ;; N: ZWNJ (ZERO WIDTH NON-JOINER) - ;; J: ZWJ (ZERO WIDTH JOINER) - ;; E: ELSE - ;; - (0x200C ?N) ; ZWNJ - (0x200D ?J) ; ZWJ - (0x0664 0x0665 ?E) ; DANDA, DOUBLE DANDA - (0x0B00 0x0B7F ?E) ; ELSE - (0x0B01 ?A) ; SIGN CANDRABINDU (above) - (0x0B02 0x0B03 ?a) ; SIGN ANUSWAR, VISARGA (post) - (0x0B05 0x0B0C ?V) ; LETTER A .. VOCALIC L - (0x0B0F 0x0B10 ?V) ; LETTER E .. AI - (0x0B13 0x0B14 ?V) ; LETTER O .. AU - (0x0B15 0x0B39 ?C) ; LETTER KA .. HA - (0x0B24 ?B) ; LETTER TA - (0x0B28 ?B) ; LETTER NA - (0x0B2C ?B) ; LETTER BA - (0x0B2D ?B) ; LETTER BHA - (0x0B2E ?B) ; LETTER MA - (0x0B2F ?Y) ; LETTER YA - (0x0B30 ?R) ; LETTER RA - (0x0B32 ?B) ; LETTER LA - (0x0B33 ?B) ; LETTER LLA - (0x0B35 ?B) ; LETTER VA - (0x0B3C ?n) ; SIGN NUKTA - (0x0B3E ?p) ; VOWEL SIGN AA (post) - (0x0B3F ?u) ; VOWEL SIGN I (above) - (0x0B40 ?p) ; VOWEL SIGN II (post) - (0x0B41 0x0B43 ?b) ; VOWEL SIGN U, UU, R (below) - (0x0B47 ?m) ; VOWEL SIGN E (pre) - (0x0B48 0x0B4C ?t) ; VOWEL SIGN AI, O, AU (two-part) - (0x0B4D ?H) ; SIGN VIRAMA (HALANT) - (0x0B56 ?u) ; AI LENGTH MARK - (0x0B57 ?p) ; AU LENGTH MARK - (0x0B5C 0x0B5D ?C) ; LETTER RRA, RHA - (0x0B5F ?Y) ; LETTER YYA - (0x0B60 0x0B61 ?V) ; LETTER VOCALIC RR, LL - (0x0B71 ?C) ; LETTER WA - (0x0B7E ?x) ; mark #1 (internal use) - (0x0B7F ?y) ; mark #2 (internal use) - ) - -;; Step 1 : Syllable identification. Recognised syllables are quoted -;; by the pseudo character, which is generated by the command "|" and -;; has the category " " (space). -(generator - (0 - (cond - ;; Case F : Syllables containing an independent vowel. - ("(RH)?(V)(a)?(A)?" - < | - (2 =) - (1 = =) - (3 =) - (4 =) - | >) - - ;; Case A-C are for those syllables that end with an explicit vowel - ;; mark and/or a vowel modifier. They are divided into three cases - ;; for readability of the regular expressions. The leading - ;; consonant-Halant repetition is analysed for reordering in the - ;; next step. A two-part vowel, if any, is split for - ;; canonicalisation. - - ;; Case A : A syllable ending with a vowel modifier. - ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))([mbup]*)(t)?([Aa])" - < | - (1 = =) - (2 set-marks) - (5 = *) - (6 split) - (7 =) - | >) - - ;; Case B : A syllable ending with a two-part vowel. - ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))(t)" - < | - (1 = =) - (2 set-marks) - (5 split) - | >) - - ;; Case C : A syllable ending with other vowel(s). Note that a - ;; two-part vowel may be expressed with two vowel marks for - ;; backward compatibility. - ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))([mbup]+)" - < | - (1 = =) - (2 set-marks) - (5 = *) - | >) - - ;; Case E : No explicit vowel nor modifier. If the syllable ends - ;; with a consonant, analyse it for reordering in the next step. - ;; Otherwise, just identify the syllable without changing anything. - ;;1 23 4 - ("(RH)?(([CRBY]n?H[NJ]?)*[CRBY]n?)(HN|HJ|H)?" - < | - (1 = =) - (2 set-marks) - (4 = *) - | >) - - ("." =)) - *) - - ;; Set mark #1 (x) at the position where below consonants begin, and - ;; mark #2 (y) at the position to which below and above signs will be - ;; moved. - (set-marks - (cond - ;; Ending with Y. - ;;1 2 3 45 6 - ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*)(Y)$" - (1 = *) ; prebase & base - 0x0B7E ; below begin - (4 = *) ; below consonants - 0x0B7F ; below end - (6 =) ; YA - (3 =)) ; moved HALANT - ;; Ending with R or B. - ;;1 2 3 45 - ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*[RB])$" - (1 = *) ; prebase & base - 0x0B7E ; below begin - (4 = *) ; below consonants - (3 =) ; moved HALANT - 0x0B7F) ; below end - (".+" - = * - 0x0B7E ; below begin - 0x0B7F))) ; below end - - ;; Split two-part dependent vowel signs for canonicalisation. - (split - (cond - ((0x0B48) 0x0B47 0x0B56) - ((0x0B4B) 0x0B47 0x0B3E) - ((0x0B4C) 0x0B47 0x0B57))) - ) - -;; Step 2 : Move Reph and Matra if necessary. From now on, we care -;; only for those syllables that have been identified in Step 1. -(generator - (0 - (cond - ;; Special case: a single consonant and a Halant. - (" (.)xy(H[NJ]?) " - | - (1 =) - (2 = *) - |) - - ;; This is the most generic pattern. It follows Case A-C and a - ;; part of Case E in Step 1. Now Mark #1 is used to indicate the - ;; critical part that requires pre-base substitution in the - ;; following steps. - - ;; 1 2 3 4 5 6 7 8 9 10 11 - (" (RH)?([^ xy]+)x([^ y]*)y(YH)?(m)?(b)?(u)?(p)?(A)?(a)?(HN|HJ|H)? " - | - (5 =) ; [Mpre] - ;; We can safely perform Nukta composition here because it does - ;; not affect surrounding letters in the syllable. The Akhand - ;; ligature operation is also applied here, before applying the - ;; half form operation because the Utkal font generates Akhand - ;; ligatures directly from the "C H C" sequence, not via the half - ;; form. - 0x0B7E ; begin Cpre & Cbase - (2 otf:orya=nukt,akhn+) ; {Cpre + H} + Cbase - 0x0B7E ; end Cpre & Cbase - (3 otf:orya=blwf+) ; {Cbelow + H} - (6 =) ; [Mbelow] - (7 =) ; [Mabove] - (1 otf:orya=rphf+) ; [Reph] - (9 =) ; [VMabove] - (4 otf:orya=pstf+) ; [Cpost + H] - (8 =) ; [Mpost] - (10 =) ; [VMpost] - (11 = *) ; optional HALANT - |) - - ;; Syllables that begin with an independent vowel (following up - ;; Step 1, Case F). Syllables of this type do not require further - ;; modification. - (" (V)(RH)(.*) " - | - (1 =) - (2 otf:orya=rphf+) - (3 = *) - |) - - ("." =)) - *)) - -;; Step 3 : Now only those syllables that contain the pseudo character -;; x require pre-base substition. Unlike the Mukti font for Bengali, -;; the Utkal font can produce the ligature for "C1 H C2" from -;; "C1halnt" and "C2". If such a ligature is not available, we get a -;; sequence consisting of "C1halant" and "C2", which is satisfactory. - -(generator - (0 - (cond - (" (.H)J " - | - (1 otf:orya=half+) - |) - (" (.H)N? " - | - (1 otf:orya=haln+) - |) - (" ([^x ]?x)([^x]*)(x[^ ]*) " - | - (1 = *) - (2 pres) - (3 = *) - |) - ("." =)) - *) - - (pres - (cond - ("([^NJ]*)(.H)J(.*)" - (1 otf:orya=haln,pres+) - (2 otf:orya=half+) - (3 pres)) - ("([^N]*)(H)N(.*)" - (1 otf:orya=haln,pres+) - (2 =) - (3 pres)) - (".*" - otf:orya=haln,pres+))) - - ) - -;; Step 4 : Mpre/Cpre reordering. If the pre-base substitution in -;; the previous step results in more than one glyph, and there is an -;; Mpre in this syllable, then move the Mpre before the Cbase. -;; i.e. [Mpre]{Kh}Kf... -> {Kh}[Mpre]Kf... - -(generator - (0 - (cond - (" (.)x(.+)(.)x(.*) " - | - (2 = *) - (1 =) - (3 =) - (4 = *) - |) - (" (.)?x([^x ]*)x([^ ]*) " - | - (1 =) - (2 = *) - (3 = *) - |) - ("." =)) - *)) - -;; Step 5 : Substitutions & positioning. - -(generator - (0 - (cond - (" ([^ ]*) " - (1 otf:orya=vatu,abvs,blws,psts)) - ("." - [ otf:orya=+ ])) - *)) - -;; Local Variables: -;; mode: emacs-lisp -;; End: diff --git a/ORYA-OTF.flt b/ORYA-OTF.flt new file mode 100644 index 0000000..6519b21 --- /dev/null +++ b/ORYA-OTF.flt @@ -0,0 +1,317 @@ +;; ORI-OTF.flt -- Font Layout Table for Oriya OpenType font +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • ORI-OTF.flt +;;; +;;; For Oriya OpenType fonts to draw the Oriya script. Tested with +;;; utkalm.ttf + +(category + ;; C: consonant (excluding Y and R) + ;; R: consonant RA (reph, below) + ;; B: consonant (below) + ;; Y: consonant YA, YYA (post) + ;; n: NUKTA + ;; H: HALANT + ;; m: MATRA (pre) + ;; u: MATRA (above) + ;; b: MATRA (below) + ;; p: MATRA (post) + ;; t: MATRA (two-part) + ;; A: vowel modifier (above) + ;; a: vowel modifier (post) + ;; V: independent vowel + ;; N: ZWNJ (ZERO WIDTH NON-JOINER) + ;; J: ZWJ (ZERO WIDTH JOINER) + ;; E: ELSE + ;; + (0x200C ?N) ; ZWNJ + (0x200D ?J) ; ZWJ + (0x0664 0x0665 ?E) ; DANDA, DOUBLE DANDA + (0x0B00 0x0B7F ?E) ; ELSE + (0x0B01 ?A) ; SIGN CANDRABINDU (above) + (0x0B02 0x0B03 ?a) ; SIGN ANUSWAR, VISARGA (post) + (0x0B05 0x0B0C ?V) ; LETTER A .. VOCALIC L + (0x0B0F 0x0B10 ?V) ; LETTER E .. AI + (0x0B13 0x0B14 ?V) ; LETTER O .. AU + (0x0B15 0x0B39 ?C) ; LETTER KA .. HA + (0x0B24 ?B) ; LETTER TA + (0x0B28 ?B) ; LETTER NA + (0x0B2C ?B) ; LETTER BA + (0x0B2D ?B) ; LETTER BHA + (0x0B2E ?B) ; LETTER MA + (0x0B2F ?Y) ; LETTER YA + (0x0B30 ?R) ; LETTER RA + (0x0B32 ?B) ; LETTER LA + (0x0B33 ?B) ; LETTER LLA + (0x0B35 ?B) ; LETTER VA + (0x0B3C ?n) ; SIGN NUKTA + (0x0B3E ?p) ; VOWEL SIGN AA (post) + (0x0B3F ?u) ; VOWEL SIGN I (above) + (0x0B40 ?p) ; VOWEL SIGN II (post) + (0x0B41 0x0B43 ?b) ; VOWEL SIGN U, UU, R (below) + (0x0B47 ?m) ; VOWEL SIGN E (pre) + (0x0B48 0x0B4C ?t) ; VOWEL SIGN AI, O, AU (two-part) + (0x0B4D ?H) ; SIGN VIRAMA (HALANT) + (0x0B56 ?u) ; AI LENGTH MARK + (0x0B57 ?p) ; AU LENGTH MARK + (0x0B5C 0x0B5D ?C) ; LETTER RRA, RHA + (0x0B5F ?Y) ; LETTER YYA + (0x0B60 0x0B61 ?V) ; LETTER VOCALIC RR, LL + (0x0B71 ?C) ; LETTER WA + (0x0B7E ?x) ; mark #1 (internal use) + (0x0B7F ?y) ; mark #2 (internal use) + ) + +;; Step 1 : Syllable identification. Recognised syllables are quoted +;; by the pseudo character, which is generated by the command "|" and +;; has the category " " (space). +(generator + (0 + (cond + ;; Case F : Syllables containing an independent vowel. + ("(RH)?(V)(a)?(A)?" + < | + (2 =) + (1 = =) + (3 =) + (4 =) + | >) + + ;; Case A-C are for those syllables that end with an explicit vowel + ;; mark and/or a vowel modifier. They are divided into three cases + ;; for readability of the regular expressions. The leading + ;; consonant-Halant repetition is analysed for reordering in the + ;; next step. A two-part vowel, if any, is split for + ;; canonicalisation. + + ;; Case A : A syllable ending with a vowel modifier. + ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))([mbup]*)(t)?([Aa])" + < | + (1 = =) + (2 set-marks) + (5 = *) + (6 split) + (7 =) + | >) + + ;; Case B : A syllable ending with a two-part vowel. + ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))(t)" + < | + (1 = =) + (2 set-marks) + (5 split) + | >) + + ;; Case C : A syllable ending with other vowel(s). Note that a + ;; two-part vowel may be expressed with two vowel marks for + ;; backward compatibility. + ("(RH)?(([CRBY]n?H[NJ]?)*([CRBY]n?))([mbup]+)" + < | + (1 = =) + (2 set-marks) + (5 = *) + | >) + + ;; Case E : No explicit vowel nor modifier. If the syllable ends + ;; with a consonant, analyse it for reordering in the next step. + ;; Otherwise, just identify the syllable without changing anything. + ;;1 23 4 + ("(RH)?(([CRBY]n?H[NJ]?)*[CRBY]n?)(HN|HJ|H)?" + < | + (1 = =) + (2 set-marks) + (4 = *) + | >) + + ("." =)) + *) + + ;; Set mark #1 (x) at the position where below consonants begin, and + ;; mark #2 (y) at the position to which below and above signs will be + ;; moved. + (set-marks + (cond + ;; Ending with Y. + ;;1 2 3 45 6 + ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*)(Y)$" + (1 = *) ; prebase & base + 0x0B7E ; below begin + (4 = *) ; below consonants + 0x0B7F ; below end + (6 =) ; YA + (3 =)) ; moved HALANT + ;; Ending with R or B. + ;;1 2 3 45 + ("([CRBY]n?(H[NJ]?Cn?)*)(H)(([RB]H)*[RB])$" + (1 = *) ; prebase & base + 0x0B7E ; below begin + (4 = *) ; below consonants + (3 =) ; moved HALANT + 0x0B7F) ; below end + (".+" + = * + 0x0B7E ; below begin + 0x0B7F))) ; below end + + ;; Split two-part dependent vowel signs for canonicalisation. + (split + (cond + ((0x0B48) 0x0B47 0x0B56) + ((0x0B4B) 0x0B47 0x0B3E) + ((0x0B4C) 0x0B47 0x0B57))) + ) + +;; Step 2 : Move Reph and Matra if necessary. From now on, we care +;; only for those syllables that have been identified in Step 1. +(generator + (0 + (cond + ;; Special case: a single consonant and a Halant. + (" (.)xy(H[NJ]?) " + | + (1 =) + (2 = *) + |) + + ;; This is the most generic pattern. It follows Case A-C and a + ;; part of Case E in Step 1. Now Mark #1 is used to indicate the + ;; critical part that requires pre-base substitution in the + ;; following steps. + + ;; 1 2 3 4 5 6 7 8 9 10 11 + (" (RH)?([^ xy]+)x([^ y]*)y(YH)?(m)?(b)?(u)?(p)?(A)?(a)?(HN|HJ|H)? " + | + (5 =) ; [Mpre] + ;; We can safely perform Nukta composition here because it does + ;; not affect surrounding letters in the syllable. The Akhand + ;; ligature operation is also applied here, before applying the + ;; half form operation because the Utkal font generates Akhand + ;; ligatures directly from the "C H C" sequence, not via the half + ;; form. + 0x0B7E ; begin Cpre & Cbase + (2 otf:orya=nukt,akhn+) ; {Cpre + H} + Cbase + 0x0B7E ; end Cpre & Cbase + (3 otf:orya=blwf+) ; {Cbelow + H} + (6 =) ; [Mbelow] + (7 =) ; [Mabove] + (1 otf:orya=rphf+) ; [Reph] + (9 =) ; [VMabove] + (4 otf:orya=pstf+) ; [Cpost + H] + (8 =) ; [Mpost] + (10 =) ; [VMpost] + (11 = *) ; optional HALANT + |) + + ;; Syllables that begin with an independent vowel (following up + ;; Step 1, Case F). Syllables of this type do not require further + ;; modification. + (" (V)(RH)(.*) " + | + (1 =) + (2 otf:orya=rphf+) + (3 = *) + |) + + ("." =)) + *)) + +;; Step 3 : Now only those syllables that contain the pseudo character +;; x require pre-base substition. Unlike the Mukti font for Bengali, +;; the Utkal font can produce the ligature for "C1 H C2" from +;; "C1halnt" and "C2". If such a ligature is not available, we get a +;; sequence consisting of "C1halant" and "C2", which is satisfactory. + +(generator + (0 + (cond + (" (.H)J " + | + (1 otf:orya=half+) + |) + (" (.H)N? " + | + (1 otf:orya=haln+) + |) + (" ([^x ]?x)([^x]*)(x[^ ]*) " + | + (1 = *) + (2 pres) + (3 = *) + |) + ("." =)) + *) + + (pres + (cond + ("([^NJ]*)(.H)J(.*)" + (1 otf:orya=haln,pres+) + (2 otf:orya=half+) + (3 pres)) + ("([^N]*)(H)N(.*)" + (1 otf:orya=haln,pres+) + (2 =) + (3 pres)) + (".*" + otf:orya=haln,pres+))) + + ) + +;; Step 4 : Mpre/Cpre reordering. If the pre-base substitution in +;; the previous step results in more than one glyph, and there is an +;; Mpre in this syllable, then move the Mpre before the Cbase. +;; i.e. [Mpre]{Kh}Kf... -> {Kh}[Mpre]Kf... + +(generator + (0 + (cond + (" (.)x(.+)(.)x(.*) " + | + (2 = *) + (1 =) + (3 =) + (4 = *) + |) + (" (.)?x([^x ]*)x([^ ]*) " + | + (1 =) + (2 = *) + (3 = *) + |) + ("." =)) + *)) + +;; Step 5 : Substitutions & positioning. + +(generator + (0 + (cond + (" ([^ ]*) " + (1 otf:orya=vatu,abvs,blws,psts)) + ("." + [ otf:orya=+ ])) + *)) + +;; Local Variables: +;; mode: emacs-lisp +;; End: diff --git a/SINH-OTF.flt b/SINH-OTF.flt index 1577db3..6334716 100644 --- a/SINH-OTF.flt +++ b/SINH-OTF.flt @@ -64,17 +64,17 @@ (cond ;; A syllable ending with a two-part vowel sign. ("((CHJ)*C)(t)(a)?" - < | (1 otf:sinh=akhn,vatu) (3 two-part) (4 =) | >) + < | (1 otf:sinh=akhn,vatu,pres) (3 two-part) (4 =) | >) ;; A syllable ending with a vowel sign and/or a various sign. ;; Note that a two-part vowel may be expressed with two vowel marks. ("((CHJ)*C)([mbup]+a?|a)" - < | (1 otf:sinh=akhn,vatu) (3 = *) | >) + < | (1 otf:sinh=akhn,vatu,pres) (3 = *) | >) ;; No signs. ("(CHJ)*CH?" - < | otf:sinh=akhn,vatu | >) + < | otf:sinh=akhn,vatu,pres | >) ;; Independent vowels. ("Va?" diff --git a/SYRC-OTF.flt b/SYRC-OTF.flt new file mode 100644 index 0000000..e859ee8 --- /dev/null +++ b/SYRC-OTF.flt @@ -0,0 +1,181 @@ +;; SYRIAC-OTF.flt -- Font Layout Table for Syriac OpenType font +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • SYRIAC-OTF.flt +;;; +;;; For Syriac OpenType fonts to draw the Syriac script. + + +;; Step 1: Initial, medial, or final. + +(category + ;; D: Dual-joining + ;; R: Right-joining + ;; U: Non-joining + ;; T: Transparent + ;; A: ALAPH + ;; r: DALATH, RISH, DOTLESS DALATH RISH + + (0x0700 0x071F ?U) + (0x0710 ?A) + (0x0711 ?T) + (0x0712 0x072E ?D) + (0x0715 0x0716 ?r) + (0x0717 0x0719 ?R) + (0x071E ?R) + (0x0728 ?R) + (0x072A ?r) + (0x072C ?R) + (0x072F ?R) + (0x0730 0x074A ?T) + (0x074D ?R) + (0x074E 0x074F ?D) + + (0x0303 ?T) + (0x0330 ?T) + (0x0304 ?T) + (0x0331 ?T) + (0x0307 ?T) + (0x0323 ?T) + (0x0308 ?T) + (0x030A ?T) + (0x0325 ?T) + (0x0324 ?T) + (0x032D ?T) + (0x032E ?T) + + (0x064B 0x0655 ?T) + (0x0670 ?T) + + (0x200C ?U) + (0x200D ?D) + ) + +(generator + (0 + (cond + ("(r)(T*)(.*)" + (1 otf:syrc=isol) + (2 = *) + (3 dalath-rish)) + + ("(D)(T*)([DRAr].*)" + (1 otf:syrc=init) + (2 = *) + (3 join)) + + ("(T+)(.*)" + (1 = *) + (2 disjoin)) + + ("(.)(T*)(.*)" + (1 otf:syrc=isol) + (2 = *) + (3 disjoin)))) + + (join + (cond + ("(r)(T*)(.*)" + (1 otf:syrc=fina) + (2 = *) + (3 dalath-rish)) + + ("(D)(T*)([DRrA].*)" + (1 otf:syrc=medi) + (2 = *) + (3 join)) + + ("(.)(T*)(.*)" + (1 otf:syrc=fina) + (2 = *) + (3 disjoin)))) + + (disjoin + (cond + ("(D)(T*)([DRAr].*)" + (1 otf:syrc=init) + (2 = *) + (3 join)) + + ("(r)(T*)(.*)" + (1 otf:syrc=isol) + (2 = *) + (3 dalath-rish)) + + ("(A)(T*)([DRAr].*)" + (1 otf:syrc=med2) + (2 = *) + (3 disjoin)) + + ("(A)(T*)(.*)" + (1 otf:syrc=fin2) + (2 = *) + (3 disjoin)) + + ("(.)(T*)(.*)" + (1 otf:syrc=isol) + (2 = *) + (3 disjoin)))) + + (dalath-rish + (cond + ("(D)(T*)([DRAr].*)" + (1 otf:syrc=init) + (2 = *) + (3 join)) + + ("(r)(T*)(.*)" + (1 otf:syrc=isol) + (2 = *) + (3 dalath-rish)) + + ("(A)(T*)([DRAr].*)" + (1 otf:syrc=med2) + (2 = *) + (3 disjoin)) + + ("(A)(T*)(.*)" + (1 otf:syrc=fin3) + (2 = *) + (3 disjoin)) + + ("(.)(T*)(.*)" + (1 otf:syrc=isol) + (2 = *) + (3 disjoin))))) + +;; Step 2: Other GSUB features (ligatures, etc.) + +(generator + (0 + otf:syrc=rlig,calt,liga,dlig)) + +;; Step 3: GPOS features. + +(generator + (0 + otf:syrc=)) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/SYRIAC-OTF.flt b/SYRIAC-OTF.flt deleted file mode 100644 index e859ee8..0000000 --- a/SYRIAC-OTF.flt +++ /dev/null @@ -1,181 +0,0 @@ -;; SYRIAC-OTF.flt -- Font Layout Table for Syriac OpenType font -;; Copyright (C) 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • SYRIAC-OTF.flt -;;; -;;; For Syriac OpenType fonts to draw the Syriac script. - - -;; Step 1: Initial, medial, or final. - -(category - ;; D: Dual-joining - ;; R: Right-joining - ;; U: Non-joining - ;; T: Transparent - ;; A: ALAPH - ;; r: DALATH, RISH, DOTLESS DALATH RISH - - (0x0700 0x071F ?U) - (0x0710 ?A) - (0x0711 ?T) - (0x0712 0x072E ?D) - (0x0715 0x0716 ?r) - (0x0717 0x0719 ?R) - (0x071E ?R) - (0x0728 ?R) - (0x072A ?r) - (0x072C ?R) - (0x072F ?R) - (0x0730 0x074A ?T) - (0x074D ?R) - (0x074E 0x074F ?D) - - (0x0303 ?T) - (0x0330 ?T) - (0x0304 ?T) - (0x0331 ?T) - (0x0307 ?T) - (0x0323 ?T) - (0x0308 ?T) - (0x030A ?T) - (0x0325 ?T) - (0x0324 ?T) - (0x032D ?T) - (0x032E ?T) - - (0x064B 0x0655 ?T) - (0x0670 ?T) - - (0x200C ?U) - (0x200D ?D) - ) - -(generator - (0 - (cond - ("(r)(T*)(.*)" - (1 otf:syrc=isol) - (2 = *) - (3 dalath-rish)) - - ("(D)(T*)([DRAr].*)" - (1 otf:syrc=init) - (2 = *) - (3 join)) - - ("(T+)(.*)" - (1 = *) - (2 disjoin)) - - ("(.)(T*)(.*)" - (1 otf:syrc=isol) - (2 = *) - (3 disjoin)))) - - (join - (cond - ("(r)(T*)(.*)" - (1 otf:syrc=fina) - (2 = *) - (3 dalath-rish)) - - ("(D)(T*)([DRrA].*)" - (1 otf:syrc=medi) - (2 = *) - (3 join)) - - ("(.)(T*)(.*)" - (1 otf:syrc=fina) - (2 = *) - (3 disjoin)))) - - (disjoin - (cond - ("(D)(T*)([DRAr].*)" - (1 otf:syrc=init) - (2 = *) - (3 join)) - - ("(r)(T*)(.*)" - (1 otf:syrc=isol) - (2 = *) - (3 dalath-rish)) - - ("(A)(T*)([DRAr].*)" - (1 otf:syrc=med2) - (2 = *) - (3 disjoin)) - - ("(A)(T*)(.*)" - (1 otf:syrc=fin2) - (2 = *) - (3 disjoin)) - - ("(.)(T*)(.*)" - (1 otf:syrc=isol) - (2 = *) - (3 disjoin)))) - - (dalath-rish - (cond - ("(D)(T*)([DRAr].*)" - (1 otf:syrc=init) - (2 = *) - (3 join)) - - ("(r)(T*)(.*)" - (1 otf:syrc=isol) - (2 = *) - (3 dalath-rish)) - - ("(A)(T*)([DRAr].*)" - (1 otf:syrc=med2) - (2 = *) - (3 disjoin)) - - ("(A)(T*)(.*)" - (1 otf:syrc=fin3) - (2 = *) - (3 disjoin)) - - ("(.)(T*)(.*)" - (1 otf:syrc=isol) - (2 = *) - (3 disjoin))))) - -;; Step 2: Other GSUB features (ligatures, etc.) - -(generator - (0 - otf:syrc=rlig,calt,liga,dlig)) - -;; Step 3: GPOS features. - -(generator - (0 - otf:syrc=)) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/TAML-CDAC.flt b/TAML-CDAC.flt new file mode 100644 index 0000000..df9e896 --- /dev/null +++ b/TAML-CDAC.flt @@ -0,0 +1,342 @@ +;; TML-CDAC.flt -- Font Layout Table for Tamil (C-DAC font) +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • TML-CDAC.flt +;;; +;;; For the font TMVL0ntt.ttf (developped by C-DAC, encoding is ISFOC) +;;; to draw Tamil script. The font is available at: +;;; + +(category + ;; C: CONSONANT + ;; I: INDEPENDENT VOWEL + ;; R: DEPENDENT VOWEL RIGHT + ;; L: DEPENDENT VOWEL LEFT + ;; B: DEPENDENT VOWEL LEFT AND RIGHT TYPE 1 + ;; b: DEPENDENT VOWEL LEFT AND RIGHT TYPE 2 + ;; V: VIRAMA + ;; E: ELSE + ;; + (0x0B83 ?E) + (0x0B85 0x0B8A ?I) + (0x0B8E 0x0B90 ?I) + (0x0B92 0x0B94 ?I) + (0x0B95 ?C) + (0x0B99 0x0B9A ?C) + (0x0B9C ?C) + (0x0B9E 0x0B9F ?C) + (0x0BA3 0x0BA4 ?C) + (0x0BA8 0x0BAA ?C) + (0x0BAE 0x0BB5 ?C) + (0x0BB7 0x0BB9 ?C) + (0x0BBE 0x0BC2 ?R) + (0x0BC6 0x0BC8 ?L) + (0x0BCA ?B) + (0x0BCB ?b) + (0x0BCC ?B) + (0x0BCD ?V) + (0x0BD7 ?E)) + +;; CHAR->GLYPH STAGE +(generator + (0 + (cond + ("((CV)*)(C)(R)" + (1 consonant-virama *) + (3 consonant) + (4 dependent-vowel)) + ("((CV)*)(C)(L)" + < | + (4 dependent-vowel) + (1 consonant-virama *) + (3 consonant) + | >) + ("((CV)*)(C)(B)" + < | + 0xAA + (1 consonant-virama *) + (3 consonant) + (4 dependent-vowel) + | >) + ("((CV)*)(C)(b)" + < | + 0xAB + (1 consonant-virama *) + (3 consonant) + (4 dependent-vowel) + | >) + ("CV" + < consonant-virama >) + ("[RLBb]" + isolated-dependent-vowel) + ("." independent consonant)) + *) + + (consonant-virama + (cond + ((0x0B95 0x0BCD) 0xE8 0xA2) ; k + ((0x0B99 0x0BCD) 0xE9 0xA2) ; n^ + ((0x0B9A 0x0BCD) 0xEA 0xA2) ; c + ((0x0B9E 0x0BCD) 0xEB 0xA2) ; n~ + ((0x0B9F 0x0BCD) 0xEC 0xA2) ; t. + ((0x0BA3 0x0BCD) 0xED 0xA2) ; n. + ((0x0BA4 0x0BCD) 0xEE 0xA2) ; t + ((0x0BA8 0x0BCD) 0xEF 0xA2) ; n + ((0x0BAA 0x0BCD) 0xF0 0xA2) ; p + ((0x0BAE 0x0BCD) 0xF1 0xA2) ; m + ((0x0BAF 0x0BCD) 0xF2 0xA2) ; y + ((0x0BB0 0x0BCD) 0xF3 0xA2) ; r + ((0x0BB2 0x0BCD) 0xF4 0xA2) ; l + ((0x0BB5 0x0BCD) 0xF5 0xA2) ; v + ((0x0BB4 0x0BCD) 0xF6 0xA2) ; l_ + ((0x0BB3 0x0BCD) 0xF7 0xA2) ; l. + ((0x0BB1 0x0BCD) 0xF8 0xA2) ; r_ + ((0x0BA9 0x0BCD) 0xA1) ; n_ + ((0x0BB8 0x0BCD) 0x76) ; s + ((0x0BB7 0x0BCD) 0x77) ; s' + ((0x0B9C 0x0BCD) 0x78) ; j + ((0x0BB9 0x0BCD) 0x79) ; h + )) + + (consonant + (cond + ((0x0B95) 0xE8) ; k + ((0x0B99) 0xE9) ; n^ + ((0x0B9A) 0xEA) ; c + ((0x0B9E) 0xEB) ; n~ + ((0x0B9F) 0xEC) ; t. + ((0x0BA3) 0xED) ; n. + ((0x0BA4) 0xEE) ; t + ((0x0BA8) 0xEF) ; n + ((0x0BAA) 0xF0) ; p + ((0x0BAE) 0xF1) ; m + ((0x0BAF) 0xF2) ; y + ((0x0BB0) 0xF3) ; r + ((0x0BB2) 0xF4) ; l + ((0x0BB5) 0xF5) ; v + ((0x0BB4) 0xF6) ; l_ + ((0x0BB3) 0xF7) ; l. + ((0x0BB1) 0xF8) ; r_ + ((0x0BA9) 0xF9) ; n_ + ((0x0BB8) 0xFA) ; s + ((0x0BB7) 0xFB) ; s' + ((0x0B9C) 0xFC) ; j + ((0x0BB9) 0xFD) ; h + )) + + (dependent-vowel + (cond + ((0x0BBE) 0xA3) ; a~ + ((0x0BBF) 0xA4) ; i + ((0x0BC0) 0xA6) ; i~ + ((0x0BC1) 0xA7) ; u + ((0x0BC2) 0xA8) ; u~ + ((0x0BC6) 0xAA) ; e + ((0x0BC7) 0xAB) ; e~ + ((0x0BC8) 0xAC) ; ai + ((0x0BCA) 0xA3) ; o (right part) + ((0x0BCB) 0xA3) ; o~ (right part) + ((0x0BCC) 0xF7) ; au (right part) + )) + + (independent + (cond + ;; VOWELS + ((0x0B85) 0xDC) ; a + ((0x0B86) 0xDD) ; a~ + ((0x0B87) 0xDE) ; i + ((0x0B88) 0xDF) ; i~ + ((0x0B89) 0xE0) ; u + ((0x0B8A) 0xE1) ; u~ + ((0x0B8E) 0xE2) ; e + ((0x0B8F) 0xE3) ; e~ + ((0x0B90) 0xE4) ; ai + ((0x0B92) 0xE5) ; o + ((0x0B93) 0xE6) ; o~ + ((0x0B94) 0xE5 0xF7) ; au + ;; VISARGA + ((0x0B83) 0xE7) + )) + + (isolated-dependent-vowel + (cond + ((0x0BBE) 0x81 0xA3) ; a~ + ((0x0BBF) 0x81 0xA4) ; i + ((0x0BC0) 0x81 0xA6) ; i~ + ((0x0BC1) 0x81 0xA7) ; u + ((0x0BC2) 0x81 0xA8) ; u~ + ((0x0BC6) 0xAA 0x81) ; e + ((0x0BC7) 0xAB 0x81) ; e~ + ((0x0BC8) 0xAC 0x81) ; ai + ((0x0BCA) 0xAA 0x81 0xA3) ; o + ((0x0BCB) 0xAB 0x81 0xA3) ; o~ + ((0x0BCC) 0xAA 0x81 0xF7) ; au + ))) + +;; LIGATURE STAGE +(category + ;; C: CONSONANT (except for K, R, S) + ;; K: CONSONANT K + ;; R: CONSONANT R + ;; S: CONSONANT S' + ;; V: LIGATURE VOWEL (except for I,i) + ;; I: DEPENDENT VOWEL I + ;; i: DEPENDENT VOWEL I~ + ;; L: LEFT PART OF VOWEL + ;; v: VIRAMA + ;; E: ELSE + ;; + (0x00 0xFF ?E) + (0xA2 ?v) + (0xE9 0xFD ?C) + (0xE8 ?K) + (0xF3 ?R) + (0xFB ?S) + (0xA4 ?I) ; i + (0xA6 ?i) ; i~ + (0xA7 0xA8 ?V) ; u, u~ + (0xAA 0xAC ?L) + ) + +(generator + (0 + (cond + ;; 1 23 4 5 6 + (" (L)(([CKRS](v)?)*)(KvS)(.)? " + (2 = *) (1 =) (5 0xFE) (6 =)) + ;; 1 23 4 5 + (" (L)(([CKRS](v)?)*)([CKRS].?) " + (2 = *) (1 =) (5 = =)) + ("KvS[Iiv]?" + ligature-ks) + ("[CKRS][IiV]" + ligature = =) + ("SvRi" 0xFF) + ("." + =)) + *) + + (ligature-ks + (cond + ((0xE8 0xA2 0xFB 0xA4) 0x56) ; ksi + ((0xE8 0xA2 0xFB 0xA6) 0x72) ; ksi~ + ((0xE8 0xA2 0xFB 0xA2) 0x7A) ; ks + ((0xE8 0xA2 0xFB) 0xFE) ; ks + )) + + (ligature + (cond + ((0xE8 0xA2 0x76 0xA2) 0x7A) ; ks. + + ((0xE8 0xA4) 0x41) ; ki + ((0xE9 0xA4) 0x42) ; n^i + ((0xEA 0xA4) 0x43) ; ci + ((0xEB 0xA4) 0x44) ; n~i + ((0xEC 0xA4) 0xAE) ; t.i + ((0xED 0xA4) 0x45) ; n.i + ((0xEE 0xA4) 0x46) ; ti + ((0xEF 0xA4) 0x47) ; ni + ((0xF0 0xA4) 0x48) ; pi + ((0xF1 0xA4) 0x49) ; mi + ((0xF2 0xA4) 0x4A) ; yi + ((0xF3 0xA4) 0x4B) ; ri + ((0xF4 0xA4) 0x4C) ; li + ((0xF5 0xA4) 0x4D) ; vi + ((0xF6 0xA4) 0x4E) ; l_i + ((0xF7 0xA4) 0x4F) ; l.i + ((0xF8 0xA4) 0x50) ; r_i + ((0xF9 0xA4) 0x51) ; n_i + ((0xFA 0xA4) 0x52) ; si + ((0xFB 0xA4) 0x53) ; s'i + ((0xFC 0xA4) 0x54) ; ji + ((0xFD 0xA4) 0x55) ; hi + + ((0xE8 0xA6) 0x57) ; ki~ + ((0xE9 0xA6) 0x58) ; n^i~ + ((0xEA 0xA6) 0x59) ; ci~ + ((0xEB 0xA6) 0x5A) ; n~i~ + ((0xEC 0xA6) 0xAF) ; t.i~ + ((0xED 0xA6) 0x61) ; n.i~ + ((0xEE 0xA6) 0x62) ; ti~ + ((0xEF 0xA6) 0x63) ; ni~ + ((0xF0 0xA6) 0x64) ; pi~ + ((0xF1 0xA6) 0x65) ; mi~ + ((0xF2 0xA6) 0x66) ; yi~ + ((0xF3 0xA6) 0x67) ; ri~ + ((0xF4 0xA6) 0x68) ; li~ + ((0xF5 0xA6) 0x69) ; vi~ + ((0xF6 0xA6) 0x6A) ; l_i~ + ((0xF7 0xA6) 0x6B) ; l.i~ + ((0xF8 0xA6) 0x6C) ; r_i~ + ((0xF9 0xA6) 0x6D) ; n_i~ + ((0xFA 0xA6) 0x6E) ; si~ + ((0xFB 0xA6) 0x6F) ; s'i~ + ((0xFC 0xA6) 0x70) ; ji~ + ((0xFD 0xA6) 0x71) ; hi~ + + ((0xE8 0xA7) 0xB0) ; ku + ((0xE9 0xA7) 0xB1) ; n^u + ((0xEA 0xA7) 0xB2) ; cu + ((0xEB 0xA7) 0xB3) ; n~u + ((0xEC 0xA7) 0xB4) ; t.u + ((0xED 0xA7) 0xB5) ; n.u + ((0xEE 0xA7) 0xB6) ; tu + ((0xEF 0xA7) 0xB8) ; nu + ((0xF0 0xA7) 0xB9) ; pu + ((0xF1 0xA7) 0xBA) ; mu + ((0xF2 0xA7) 0xBB) ; yu + ((0xF3 0xA7) 0xBC) ; ru + ((0xF4 0xA7) 0xBD) ; lu + ((0xF5 0xA7) 0xBE) ; vu + ((0xF6 0xA7) 0xBF) ; l_u + ((0xF7 0xA7) 0xC0) ; l.u + ((0xF8 0xA7) 0xC1) ; r_u + ((0xF9 0xA7) 0xC2) ; n_u + + ((0xE8 0xA8) 0xC3) ; ku~ + ((0xE9 0xA8) 0xC4) ; n^u~ + ((0xEA 0xA8) 0xC5) ; cu~ + ((0xEB 0xA8) 0xC6) ; n~u~ + ((0xEC 0xA8) 0xC7) ; t.u~ + ((0xED 0xA8) 0xC8) ; n.u~ + ((0xEE 0xA8) 0xC9) ; tu~ + ((0xEF 0xA8) 0xCB) ; nu~ + ((0xF0 0xA8) 0xCC) ; pu~ + ((0xF1 0xA8) 0xCD) ; mu~ + ((0xF2 0xA8) 0xCE) ; yu~ + ((0xF3 0xA8) 0xCF) ; ru~ + ((0xF4 0xA8) 0xD6) ; lu~ + ((0xF5 0xA8) 0xD7) ; vu~ + ((0xF6 0xA8) 0xD8) ; l_u~ + ((0xF7 0xA8) 0xD9) ; l.u~ + ((0xF8 0xA8) 0xDA) ; r_u~ + ((0xF9 0xA8) 0xDB) ; n_u~ + )) + ) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/TAML-OTF.flt b/TAML-OTF.flt new file mode 100644 index 0000000..913bf34 --- /dev/null +++ b/TAML-OTF.flt @@ -0,0 +1,114 @@ +;; TML-OTF.flt -- Font Layout Table for Tamil OpenType fonts +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • TML-OTF.flt +;;; +;;; For Tamil OpenType fonts to draw Tamil. +;;; Fonts are available from . + +(category + ;; C: general consonant + ;; V: independent vowel + ;; H: HALANT + ;; m: MATRA (pre) + ;; u: MATRA (above) + ;; b: MATRA (below) + ;; p: MATRA (post) + ;; A: vowel modifier (above) + ;; a: vowel modifier (post) + ;; N: ZWNJ (ZERO WIDTH NON-JOINER) + ;; J: ZWJ (ZERO WIDTH JOINER) + ;; E: ELSE + ;; + (0x200C ?N) ; ZWNJ + (0x200D ?J) ; ZWJ + (0x0964 ?E) ; DANDA + (0x0965 ?E) ; DOUBLE DANDA + (0x0B80 0x0BFF ?E) ; ELSE + (0x0B85 0x0B94 ?V) ; LETTER AA .. LETTER AU + (0x0B95 0x0BB9 ?C) ; LETTER KA .. LETTER HA + (0x0BBE ?p) ; VOWEL SIGN AA (post) + (0x0BBF ?p) ; VOWEL SIGN I (post) + (0x0BC0 ?u) ; VOWEL SIGN II (above) + (0x0BC1 ?b) ; VOWEL SIGN U (below) + (0x0BC2 ?b) ; VOWEL SIGN UU (below) + (0x0BC6 0x0BC8 ?m) ; VOWEL SIGN E, EE, AI (pre) + (0x0BCA 0x0BCC ?t) ; VOWEL SIGN O, OO, AU (two-part) + (0x0BCD ?H) ; VIRAMA + (0x0BD7 ?p) ; AU LENGTH MARK (post) + ) + +;; Step 1 : Syllable identification. +(generator + (0 + (cond + ;; A syllable ending with a two-part vowel sign. + ("((CH)*C)(t)" + < | (1 otf:taml=akhn) (3 two-part) | >) + + ;; A syllable ending with a vowel sign. + ("((CH)*C)([mubp])" + < | (1 otf:taml=akhn) (3 =) | >) + + ;; No vowel sign. + ("(CH)*CH?" + < | otf:taml=akhn | >) + + ;; A variation of AU. + ((0x0B92 0x0BD7) + 0x0B94) + + ("." =)) + *) + + (two-part + (cond + ((0x0BCA) + 0x0BC6 0x0BBE) + ((0x0BCB) + 0x0BC7 0x0BBE) + ((0x0BCC) + 0x0BC6 0x0BD7)))) + +;; Step 2 : Matra movements. +(generator + (0 + (cond + (" ([^ mubp]*)([^ mubp])(m)?([ubp])? " + | (1 = *) (3 =) (2 =) (4 =) |) + ("." =)) + *)) + +;; Step 3 : OTF substitutions and positionings. +(generator + (0 + (cond + (" ([^ ]*) " + (1 otf:taml)) + ("." + [ otf:taml=+ ])) + *)) + +;; Local Variables: +;; mode: emacs-lisp +;; End: diff --git a/TEL-OTF.flt b/TEL-OTF.flt deleted file mode 100644 index d50c70d..0000000 --- a/TEL-OTF.flt +++ /dev/null @@ -1,138 +0,0 @@ -;; TEL-OTF.flt -- Font Layout Table for Telugu OpenType fonts -;; Copyright (C) 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • TEL-OTF.flt -;;; -;;; For Telugu OpenType fonts to draw Telugu. -;;; Designed for Pothana2000.ttf - -(category - ;; C: general consonant - ;; R: no below-base consonat (RRA, NNNA, LLLA) - ;; H: HALANT - ;; u: MATRA (above) - ;; b: MATRA (below) - ;; p: MATRA (post) - ;; t: MATRA (two-part) - ;; a: vowel modifier (post) - ;; V: independent vowel - ;; N: ZWNJ (ZERO WIDTH NON-JOINER) - ;; J: ZWJ (ZERO WIDTH JOINER) - ;; E: ELSE - ;; - (0x200C ?N) ; ZWNJ - (0x200D ?J) ; ZWJ - (0x0964 ?E) ; DANDA - (0x0965 ?E) ; DOUBLE DANDA - (0x0C00 0x0C7F ?E) ; ELSE - (0x0C01 0x0C03 ?a) ; post signs - (0x0C05 0x0C14 ?V) ; LETTER A .. LETTER AU - (0x0C15 0x0C39 ?C) ; LETTER KA .. LETTER HA - (0x0C29 ?R) ; LETTER NNNA - (0x0C31 ?R) ; LETTER RRA - (0x0C34 ?R) ; LETTER LLLA - (0x0C3E 0x0C40 ?u) ; VOWEL SIGN AA, I, II (above) - (0x0C41 0x0C44 ?p) ; VOWEL SIGN U, UU, R, RR (post) - (0x0C46 0x0C47 ?u) ; VOWEL SIGN E, EE (above) - (0x0C48 ?t) ; VOWEL SIGN AI (two-part) - (0x0C4A 0x0C4C ?u) ; VOWEL SIGN O, OO, AU (above) - (0x0C4D ?H) ; SIGN VIRAMA (HALANT) - (0x0C55 ?u) ; LENGTH MARK (above) - (0x0C56 ?b) ; AI LENGTH MARK (below) - (0x0C60 0x0C61 ?V) ; LETTER VOCALIC RR, LL - (0x0C7E ?Y) ; internal use - (0x0C7F ?X) ; internal use - ) - -;; Step 1 : Syllable identification and Halant movement. -(generator - (0 - (cond - ;; A syllable containing a two-part vowel sign. - ("([CR](HC)*)(t)(a)?" - < | (1 move-base-Halant) (3 0x0C46 0x0C56) (4 =) | >) - - ;; A syllable ending with vowel signs and/or a vowel modifier. - ("([CR](HC)*)([ubp]+a?|a)" - < | (1 move-base-Halant) (3 = *) | >) - - ;; Forced Halant form - ("((RH)?(CH)*)(CH)N" - (1 < | move-base-Halant | >) - (4 < | move-base-Halant | >)) - - ;; Forced Below form - ("((RH)?(CH)*)(CH)J" - (1 < | move-base-Halant >) - (4 < | otf:telu=blwf | >)) - - ;; A syllable without a vowel sign nor a vowel modifier. - ("[CR](HC)*H?" - < | move-base-Halant | >) - - ;; A syllable starting with an independent vowel. - ("Va?" - < | = * | > ) - - ("." =)) - *) - - ;; Move Halant on the base consonant to the tail if the syllable ends - ;; with a consonant. - ;; A leading 0x0C7F means Halant movement. - ;; A leading 0x0C7E means a syllable ending with a Halant. - (move-base-Halant - (cond - (".*H$" - 0x0C7E = *) - ("(.)(H)(.*)" - 0x0C7F (1 =) (3 = *) (2 =)) - (".*" - = *)))) - -;; Step 2 : Move Matra if applicable. -;; The base consonant in a Halant-ending syllable is changed into Halant form. -(generator - (0 - (cond - ;; 1 2 3 4 5 6 - (" X(.)([CH]*)(u)?(b)?(p)?(a)? " - | (1 =) (3 =) (4 =) (5 =) (2 = *) (6 =) |) - (" Y(..)([^ ]*) " - | (1 otf:telu=haln) (2 = *) |) - ("." =)) - *)) - -;; Step 3 : Drive OTF tables. -(generator - (0 - (cond - (" ([^ ]*) " - (1 otf:telu)) - ("." - [ otf:telu=+ ])) - *)) - -;; Local Variables: -;; mode: emacs-lisp -;; End: diff --git a/TELU-OTF.flt b/TELU-OTF.flt new file mode 100644 index 0000000..d50c70d --- /dev/null +++ b/TELU-OTF.flt @@ -0,0 +1,138 @@ +;; TEL-OTF.flt -- Font Layout Table for Telugu OpenType fonts +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • TEL-OTF.flt +;;; +;;; For Telugu OpenType fonts to draw Telugu. +;;; Designed for Pothana2000.ttf + +(category + ;; C: general consonant + ;; R: no below-base consonat (RRA, NNNA, LLLA) + ;; H: HALANT + ;; u: MATRA (above) + ;; b: MATRA (below) + ;; p: MATRA (post) + ;; t: MATRA (two-part) + ;; a: vowel modifier (post) + ;; V: independent vowel + ;; N: ZWNJ (ZERO WIDTH NON-JOINER) + ;; J: ZWJ (ZERO WIDTH JOINER) + ;; E: ELSE + ;; + (0x200C ?N) ; ZWNJ + (0x200D ?J) ; ZWJ + (0x0964 ?E) ; DANDA + (0x0965 ?E) ; DOUBLE DANDA + (0x0C00 0x0C7F ?E) ; ELSE + (0x0C01 0x0C03 ?a) ; post signs + (0x0C05 0x0C14 ?V) ; LETTER A .. LETTER AU + (0x0C15 0x0C39 ?C) ; LETTER KA .. LETTER HA + (0x0C29 ?R) ; LETTER NNNA + (0x0C31 ?R) ; LETTER RRA + (0x0C34 ?R) ; LETTER LLLA + (0x0C3E 0x0C40 ?u) ; VOWEL SIGN AA, I, II (above) + (0x0C41 0x0C44 ?p) ; VOWEL SIGN U, UU, R, RR (post) + (0x0C46 0x0C47 ?u) ; VOWEL SIGN E, EE (above) + (0x0C48 ?t) ; VOWEL SIGN AI (two-part) + (0x0C4A 0x0C4C ?u) ; VOWEL SIGN O, OO, AU (above) + (0x0C4D ?H) ; SIGN VIRAMA (HALANT) + (0x0C55 ?u) ; LENGTH MARK (above) + (0x0C56 ?b) ; AI LENGTH MARK (below) + (0x0C60 0x0C61 ?V) ; LETTER VOCALIC RR, LL + (0x0C7E ?Y) ; internal use + (0x0C7F ?X) ; internal use + ) + +;; Step 1 : Syllable identification and Halant movement. +(generator + (0 + (cond + ;; A syllable containing a two-part vowel sign. + ("([CR](HC)*)(t)(a)?" + < | (1 move-base-Halant) (3 0x0C46 0x0C56) (4 =) | >) + + ;; A syllable ending with vowel signs and/or a vowel modifier. + ("([CR](HC)*)([ubp]+a?|a)" + < | (1 move-base-Halant) (3 = *) | >) + + ;; Forced Halant form + ("((RH)?(CH)*)(CH)N" + (1 < | move-base-Halant | >) + (4 < | move-base-Halant | >)) + + ;; Forced Below form + ("((RH)?(CH)*)(CH)J" + (1 < | move-base-Halant >) + (4 < | otf:telu=blwf | >)) + + ;; A syllable without a vowel sign nor a vowel modifier. + ("[CR](HC)*H?" + < | move-base-Halant | >) + + ;; A syllable starting with an independent vowel. + ("Va?" + < | = * | > ) + + ("." =)) + *) + + ;; Move Halant on the base consonant to the tail if the syllable ends + ;; with a consonant. + ;; A leading 0x0C7F means Halant movement. + ;; A leading 0x0C7E means a syllable ending with a Halant. + (move-base-Halant + (cond + (".*H$" + 0x0C7E = *) + ("(.)(H)(.*)" + 0x0C7F (1 =) (3 = *) (2 =)) + (".*" + = *)))) + +;; Step 2 : Move Matra if applicable. +;; The base consonant in a Halant-ending syllable is changed into Halant form. +(generator + (0 + (cond + ;; 1 2 3 4 5 6 + (" X(.)([CH]*)(u)?(b)?(p)?(a)? " + | (1 =) (3 =) (4 =) (5 =) (2 = *) (6 =) |) + (" Y(..)([^ ]*) " + | (1 otf:telu=haln) (2 = *) |) + ("." =)) + *)) + +;; Step 3 : Drive OTF tables. +(generator + (0 + (cond + (" ([^ ]*) " + (1 otf:telu)) + ("." + [ otf:telu=+ ])) + *)) + +;; Local Variables: +;; mode: emacs-lisp +;; End: diff --git a/THAA-OTF.flt b/THAA-OTF.flt new file mode 100644 index 0000000..e8dce35 --- /dev/null +++ b/THAA-OTF.flt @@ -0,0 +1,51 @@ +;; THAANA.flt -- Font Layout Table for Thaana OpenType font +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • THAANA-OTF.flt +;;; +;;; For Thaana OpenType fonts to draw the Thaana script. + +(category + (0x0780 0x07a5 ?c) ; consonants + (0x07a6 0x07b0 ?v) ; vowels + (0x07b1 ?c) ; consonant + ) + +;; Grouping. +(generator + (0 + (cond + ;; GPOS of OTF wil override this combining rule. + ("cv" < = Bl.Bl = >) + ("v" [ = ]) + ("." =)) + *)) + +;; Drive OTF. +(generator + (0 + otf:thaa)) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/THAANA-OTF.flt b/THAANA-OTF.flt deleted file mode 100644 index e8dce35..0000000 --- a/THAANA-OTF.flt +++ /dev/null @@ -1,51 +0,0 @@ -;; THAANA.flt -- Font Layout Table for Thaana OpenType font -;; Copyright (C) 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • THAANA-OTF.flt -;;; -;;; For Thaana OpenType fonts to draw the Thaana script. - -(category - (0x0780 0x07a5 ?c) ; consonants - (0x07a6 0x07b0 ?v) ; vowels - (0x07b1 ?c) ; consonant - ) - -;; Grouping. -(generator - (0 - (cond - ;; GPOS of OTF wil override this combining rule. - ("cv" < = Bl.Bl = >) - ("v" [ = ]) - ("." =)) - *)) - -;; Drive OTF. -(generator - (0 - otf:thaa)) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/TIB-MTIB.flt b/TIB-MTIB.flt deleted file mode 100644 index 08e1a53..0000000 --- a/TIB-MTIB.flt +++ /dev/null @@ -1,260 +0,0 @@ -;; TIB-MTIB.flt -- Font Layout Table for Tibetan (Tomabechi font) -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • TIB-MTIB.flt -;;; -;;; For the Tibetan TrueType font developped by Dr. Tomabechi to draw -;;; Tibetan script. The font is available at: -;;; - -(category - ;; Tibetan character category for rendering - ;; C: CONSONANTS (except R) - ;; R: LETTER RA (RA-MGO) - ;; S: SUBJOINED CONSONANTS (except s) - ;; s: SUBJOINED CONSONANTS (don't modify RA-MGO) - ;; V: VOWEL (except a and A) - ;; a: VOWEL SIGN A (invisible when composed) - ;; A: VOWEL SIGN AA (don't make preceding C shorter) - ;; M: MODIFIER - ;; E: ELSE - ;; - (0x0F00 0x0FCF ?E) ; ELSE - (0x0F19 ?M) ; ASTROLOGICAL SIGN SDONG TSHUGS - (0x0F35 ?M) ; MARK NGAS BZUNG NYI ZLA - (0x0F37 ?M) ; MARK NGAS BZUNG SGOR RTAGS - (0x0F39 ?M) ; MARK TSA -PHRU - (0x0F40 0x0F6A ?C) ; LETTER KA .. LETTER FIXED-FORM RA - (0x0F62 ?R) ; LETTER RA - (0x0F70 ?a) ; VOWEL SIGN A - (0x0F71 ?A) ; VOWEL SIGN AA - (0x0F72 0x0F7D ?V) ; VOWEL SIGN I .. VOWEL SIGN OO - (0x0F7E ?M) ; SIGN RJES SU NGA RO - (0x0F80 ?V) ; VOWEL SIGN REVERSED I - (0x0F81 ?V) ; VOWEL SIGN REVERSED II - (0x0F82 ?M) ; SIGN NYI ZLA NAA DA - (0x0F83 ?M) ; SIGN SNA LDAN - (0x0F84 ?V) ; MARK HALANTA - ;; SIGN LCI RTAGS .. SIGN GRU MED RGYINGS - (0x0F86 0x0F8B ?M) - ;; SUBJOINED LETTER KA .. SUBJOINED LETTER FIXED-FORM RA - (0x0F90 0x0FBC ?s) - (0x0FAD ?S) - (0x0FB1 0x0FB2 ?S) - (0x0FC6 ?M)) - -(generator - (0 - (cond - ("[CR][Ss]*[VaA]*M*" - < - (cond - ("R[^SA].*" ; ར[^ྭྱྲཱ] - ((0x0F62) 0xE083) ; convert ར to upper form - subjoined * - dependent-vowel-modifier *) - (".A.*" ; Cཱ (don't make C shorter) - = - dependent-vowel-modifier *) - (".[Ss].*" - | - short-consonant - subjoined * - dependent-vowel-modifier * - |) - (".*" - = - dependent-vowel-modifier * ) - ) - >) - ("[VaAM]" - < 0xE07A dependent-vowel-modifier >) - ("[Ss]" - < 0xE07A subjoined >) - ("." - =)) - *) - - (short-consonant - (cond - ((0x0F5D) 0x0FBA) - ((0x0F61) 0x0FBB) - ((0x0F62) 0x0FBC) - ((0x0F6A) 0x0FBC) - ((range 0x0F40 0x0F69) 0x0F90))) - - (subjoined - ((range 0x0F90 0x0FB9) bc.tc =)) - - (dependent-vowel-modifier - (cond - ((0x0F18) bl.tc =) - ((0x0F19) bc.tc =) - ((0x0F35) bc.tc =) - ((0x0F37) bc.tc =) - ((0x0F39) tc.bc =) - ((0x0F70) ) ; invisible - ((0x0F71) bc.tc =) - ((0x0F72) tc.bc =) - ((0x0F73) bc.tc 0x0F71 tc.bc 0x0F72) - ((0x0F74) bc.tc =) - ((0x0F75) bc.tc =) - ((0x0F76) bc.tc 0x0FB2 tc.bc 0x0F72) - ((0x0F77) bc.tc 0x0FB2 bc.tc 0x0F71 tc.bc 0x0F80) - ((0x0F78) bc.tc 0x0FB3 tc.bc 0x0F80) - ((0x0F79) bc.tc 0x0FB3 bc.tc 0x0F71 tc.bc 0x0F80) - ((0x0F7A) tc.bc =) - ((0x0F7B) tc.bc =) - ((0x0F7C) tc.bc =) - ((0x0F7D) tc.bc =) - ((0x0F7E) tc.bc =) - ((0x0F80) tc.bc =) - ((0x0F81) bc.tc 0x0F71 tc.bc =) - ((0x0F82) tc.bc =) - ((0x0F83) tc.bc =) - ((0x0F84) bc.tc =) - ((0x0F86) tc.bc =) - ((0x0F87) tc.bc =) - ((0x0F88) tc.bc =) - ((0x0F89) tc.bc =) - ((0x0F8A) tc.bc =) - ((0x0F8B) tc.bc =) - ((0x0FC6) bc.tc =)))) - -(category - (0x000 0xFFFF ?G)) - -(generator - (0 - (cond - (" (G*) " - (1 precomposed = *)) - ("[^ ]*" - = *)) - *) - - (precomposed - (cond - ((0x0F90 0x0FAD) 0xE000) - ((0x0F90 0x0FB1) 0xE010) - ((0x0F90 0x0FB2) 0xE018) - ((0x0F90 0x0FB3) 0xE026) - ((0x0F91 0x0FAD) 0xE001) - ((0x0F91 0x0FB1) 0xE011) - ((0x0F91 0x0FB2) 0xE019) - ((0x0F92 0x0FAD) 0xE002) - ((0x0F92 0x0FB1) 0xE012) - ((0x0F92 0x0FB2 0x0FAD) 0xE025) - ((0x0F92 0x0FB2) 0xE01A) - ((0x0F92 0x0FB3) 0xE027) - ((0x0F95 0x0FAD) 0xE003) - ((0x0F97 0x0FB2) 0xE060) - ((0x0F99 0x0FAD) 0xE004) - ((0x0F9F 0x0FAD) 0xE005) - ((0x0F9F 0x0FB2) 0xE01B) - ((0x0FA0 0x0FB2) 0xE01C) - ((0x0FA1 0x0FAD) 0xE006) - ((0x0FA1 0x0FB2) 0xE01D) - ((0x0FA4 0x0FB1) 0xE013) - ((0x0FA4 0x0FB2) 0xE01E) - ((0x0FA5 0x0FB1 0x0FAD) 0xE017) - ((0x0FA5 0x0FB1) 0xE014) - ((0x0FA5 0x0FB2) 0xE01F) - ((0x0FA6 0x0FB1) 0xE015) - ((0x0FA6 0x0FB2) 0xE020) - ((0x0FA6 0x0FB3) 0xE028) - ((0x0FA8 0x0FB1) 0xE016) - ((0x0FA8 0x0FB2) 0xE021) - ((0x0FA9 0x0FAD) 0xE007) - ((0x0FAA 0x0FAD) 0xE008) - ((0x0FAB 0x0FB2) 0xE061) - ((0x0FAE 0x0FAD) 0xE009) - ((0x0FAF 0x0FAD) 0xE00A) - ((0x0FAF 0x0FB3) 0xE029) - ((0x0FB2 0x0F90 0x0FB1) 0xE03A) - ((0x0FB2 0x0F90) 0xE02C) - ((0x0FB2 0x0F92 0x0FAD) 0xE038) - ((0x0FB2 0x0F92 0x0FB1) 0xE03B) - ((0x0FB2 0x0F92) 0xE02D) - ((0x0FB2 0x0F94) 0xE02E) - ((0x0FB2 0x0F97) 0xE02F) - ((0x0FB2 0x0F99) 0xE030) - ((0x0FB2 0x0F9F) 0xE031) - ((0x0FB2 0x0FA1) 0xE032) - ((0x0FB2 0x0FA3) 0xE033) - ((0x0FB2 0x0FA6) 0xE034) - ((0x0FB2 0x0FA8 0x0FB1) 0xE03C) - ((0x0FB2 0x0FA8) 0xE035) - ((0x0FB2 0x0FA9 0x0FAD) 0xE039) - ((0x0FB2 0x0FA9) 0xE036) - ((0x0FB2 0x0FAB) 0xE037) - ((0x0FB2 0x0FAD) 0xE00B) - ((0x0FB2 0x0FB3) 0xE02A) - ((0x0FB3 0x0F90) 0xE03D) - ((0x0FB3 0x0F92) 0xE03E) - ((0x0FB3 0x0F94) 0xE03F) - ((0x0FB3 0x0F95) 0xE040) - ((0x0FB3 0x0F97) 0xE041) - ((0x0FB3 0x0F9F) 0xE042) - ((0x0FB3 0x0FA1) 0xE043) - ((0x0FB3 0x0FA4) 0xE044) - ((0x0FB3 0x0FA6) 0xE045) - ((0x0FB3 0x0FAD) 0xE00C) - ((0x0FB3 0x0FB7) 0xE046) - ((0x0FB4 0x0FAD) 0xE00D) - ((0x0FB4 0x0FB2) 0xE022) - ((0x0FB6 0x0F90 0x0FB1) 0xE052) - ((0x0FB6 0x0F90 0x0FB2) 0xE057) - ((0x0FB6 0x0F90) 0xE047) - ((0x0FB6 0x0F92 0x0FB1) 0xE053) - ((0x0FB6 0x0F92 0x0FB2) 0xE058) - ((0x0FB6 0x0F92) 0xE048) - ((0x0FB6 0x0F94) 0xE049) - ((0x0FB6 0x0F99) 0xE04A) - ((0x0FB6 0x0F9F) 0xE04B) - ((0x0FB6 0x0FA1) 0xE04C) - ((0x0FB6 0x0FA3 0x0FB2) 0xE059) - ((0x0FB6 0x0FA3) 0xE04D) - ((0x0FB6 0x0FA4 0x0FB1) 0xE054) - ((0x0FB6 0x0FA4 0x0FB2) 0xE05A) - ((0x0FB6 0x0FA4) 0xE04E) - ((0x0FB6 0x0FA6 0x0FB1) 0xE055) - ((0x0FB6 0x0FA6 0x0FB2) 0xE05B) - ((0x0FB6 0x0FA6) 0xE04F) - ((0x0FB6 0x0FA8 0x0FB1) 0xE055) - ((0x0FB6 0x0FA8 0x0FB2) 0xE05C) - ((0x0FB6 0x0FA8) 0xE050) - ((0x0FB6 0x0FA9) 0xE051) - ((0x0FB6 0x0FAD) 0xE00E) - ((0x0FB6 0x0FB2) 0xE023) - ((0x0FB6 0x0FB3) 0xE02B) - ((0x0FB7 0x0FAD) 0xE00F) - ((0x0FB7 0x0FB2) 0xE024)))) - -;; Local Variables: -;; mode: lisp -;; coding: utf-8 -;; End: diff --git a/TIB-MULE.flt b/TIB-MULE.flt deleted file mode 100644 index b08cee3..0000000 --- a/TIB-MULE.flt +++ /dev/null @@ -1,260 +0,0 @@ -;; TIB-MULE.flt -- Font Layout Table for Tibetan (muletibetan font) -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • TIB-MULE.flt -;;; -;;; For the muletibetan font developped by Dr. Tomabechi to draw Tibetan -;;; script. The font is available at: -;;; - -(category - ;; Tibetan character category for rendering - ;; C: CONSONANTS (except R) - ;; R: LETTER RA (RA-MGO) - ;; S: SUBJOINED CONSONANTS (except s) - ;; s: SUBJOINED CONSONANTS (don't modify RA-MGO) - ;; V: VOWEL (except a and A) - ;; a: VOWEL SIGN A (invisible when composed) - ;; A: VOWEL SIGN AA (don't make preceding C shorter) - ;; M: MODIFIER - ;; E: ELSE - ;; - (0x0F00 0x0FCF ?E) ; default - (0x0F19 ?M) ; ASTROLOGICAL SIGN SDONG TSHUGS - (0x0F35 ?M) ; MARK NGAS BZUNG NYI ZLA - (0x0F37 ?M) ; MARK NGAS BZUNG SGOR RTAGS - (0x0F39 ?M) ; MARK TSA -PHRU - (0x0F40 0x0F6A ?C) ; LETTER KA .. LETTER FIXED-FORM RA - (0x0F62 ?R) ; LETTER RA - (0x0F70 ?a) ; VOWEL SIGN A - (0x0F71 ?A) ; VOWEL SIGN AA - (0x0F72 0x0F7D ?V) ; VOWEL SIGN I .. VOWEL SIGN OO - (0x0F7E ?M) ; SIGN RJES SU NGA RO - (0x0F80 ?V) ; VOWEL SIGN REVERSED I - (0x0F81 ?V) ; VOWEL SIGN REVERSED II - (0x0F82 ?M) ; SIGN NYI ZLA NAA DA - (0x0F83 ?M) ; SIGN SNA LDAN - (0x0F84 ?V) ; MARK HALANTA - ;; SIGN LCI RTAGS .. SIGN GRU MED RGYINGS - (0x0F86 0x0F8B ?M) - ;; SUBJOINED LETTER KA .. SUBJOINED LETTER FIXED-FORM RA - (0x0F90 0x0FBC ?s) - (0x0FAD ?S) - (0x0FB1 0x0FB2 ?S)) - -(generator - (0 - (cond - ("[CR][Ss]*[VaA]*M*" - < - (cond - ("R[SA].*" ; ར[ྭྱྲཱ] - ((0x0F62) 0x2122) ; convert ར to upper form - subjoined * - dependent-vowel-modifier *) - (".A.*" ; Cཱ - consonant - dependent-vowel-modifier *) - (".[Ss].*" - | - short-consonant - subjoined * - dependent-vowel-modifier * - |) - (".*" - consonant - dependent-vowel-modifier * ) - ) - >) - ("." - independent - subjoined)) - *) - - (consonant - ((range 0x0F40 0x0F6A) 0x2221)) - - (short-consonant - (cond - ((range 0x0F40 0x0F69) 0x2321) - ((0x0F6A) 0x234D))) - - (subjoined - ((range 0x0F90 0x0FBC) bc+tc 0x2321)) - - (dependent-vowel-modifier - (cond - ((0x0F19) bc-tc 0x2149) - ((0x0F35) bc-tc 0x2165) - ((0x0F37) bc-tc 0x2167) - ((0x0F39) tc-bc 0x2169) - ((0x0F70) ) ; invisible - ((0x0F71) bc-tc 0x2252) - ((0x0F72) tc-bc 0x2253) - ((0x0F73) bc-tc 0x2252 tc-bc 0x2253) - ((0x0F74) bc-tc 0x2255) - ((0x0F75) bc-tc 0x2256) - ((0x0F76) bc-tc 0x2343 tc-bc 0x2261) - ((0x0F77) bc-tc 0x2343 bc-tc 0x2252 tc-bc 0x2261) - ((0x0F78) bc-tc 0x2344 tc-bc 0x2261) - ((0x0F79) bc-tc 0x2344 bc-tc 0x2262 tc-bc 0x2261) - ((0x0F7A) tc-bc 0x225B) - ((0x0F7B) tc-bc 0x225C) - ((0x0F7C) tc-bc 0x225D) - ((0x0F7D) tc-bc 0x225E) - ((0x0F7E) tc-bc 0x225F) - ((0x0F80) tc-bc 0x2261) - ((0x0F81) bc-tc 0x2252 0x2261) - ((0x0F82) tc-bc 0x2263) - ((0x0F83) tc-bc 0x2264) - ((0x0F84) bc-tc 0x2265) - ((0x0F86) tc-bc 0x2267) - ((0x0F87) tc-bc 0x2268) - ((0x0F88) tc-bc 0x2269) - ((0x0F89) tc-bc 0x226A) - ((0x0F8A) tc-bc 0x226B) - ((0x0F8B) tc-bc 0x226C))) - - (independent - (cond - ((range 0x0F00 0x0F3F) 0x2130) - ((range 0x0F6B 0x0F8B) 0x224C) - ((range 0x0FBD 0x0FCF) 0x234E)))) - -(category - (0x2121 0x24FF ?G)) - -(generator - (0 - (cond - (" (G*) " - (1 precomposed = * )) - ("[^ ]*" - = * )) - *) - - (precomposed - (cond - ((0x2321 0x233E) 0x2421) - ((0x2321 0x2342) 0x2440) - ((0x2321 0x2343) 0x2450) - ((0x2321 0x2344) 0x2460) - ((0x2322 0x233E) 0x2422) - ((0x2322 0x2342) 0x2441) - ((0x2322 0x2343) 0x2451) - ((0x2323 0x233E) 0x2423) - ((0x2323 0x2342) 0x2442) - ((0x2323 0x2343 0x233E) 0x245F) - ((0x2323 0x2343) 0x2452) - ((0x2323 0x2344) 0x2461) - ((0x2326 0x233E) 0x2424) - ((0x2328 0x2343) 0x245D) - ((0x232A 0x233E) 0x2425) - ((0x2330 0x233E) 0x2426) - ((0x2330 0x2343) 0x2453) - ((0x2331 0x2343) 0x2454) - ((0x2332 0x233E) 0x2427) - ((0x2332 0x2343) 0x2455) - ((0x2335 0x2342) 0x2443) - ((0x2335 0x2343) 0x2456) - ((0x2336 0x2342 0x233E) 0x2447) - ((0x2336 0x2342) 0x2444) - ((0x2336 0x2343) 0x2457) - ((0x2337 0x2342) 0x2445) - ((0x2337 0x2343) 0x2458) - ((0x2337 0x2344) 0x2462) - ((0x2339 0x2342) 0x2446) - ((0x2339 0x2343) 0x2459) - ((0x233A 0x233E) 0x2428) - ((0x233B 0x233E) 0x2429) - ((0x233C 0x2343) 0x245E) - ((0x233F 0x233E) 0x242A) - ((0x2340 0x233E) 0x242B) - ((0x2340 0x2344) 0x2463) - ((0x2343 0x2321 0x2342) 0x2530) - ((0x2343 0x2321) 0x2521) - ((0x2343 0x2323 0x233E) 0x252D) - ((0x2343 0x2323 0x2342) 0x2531) - ((0x2343 0x2323) 0x2522) - ((0x2343 0x2325) 0x2523) - ((0x2343 0x2328) 0x2524) - ((0x2343 0x232A) 0x2525) - ((0x2343 0x2330) 0x2526) - ((0x2343 0x2332) 0x2527) - ((0x2343 0x2334) 0x2528) - ((0x2343 0x2337) 0x2529) - ((0x2343 0x2339 0x2342) 0x2532) - ((0x2343 0x2339) 0x252A) - ((0x2343 0x233A 0x233E) 0x252E) - ((0x2343 0x233A) 0x252B) - ((0x2343 0x233C) 0x252C) - ((0x2343 0x233E) 0x242C) - ((0x2343 0x2344) 0x2464) - ((0x2344 0x2321) 0x2540) - ((0x2344 0x2323) 0x2541) - ((0x2344 0x2325) 0x2542) - ((0x2344 0x2326) 0x2543) - ((0x2344 0x2328) 0x2544) - ((0x2344 0x2330) 0x2545) - ((0x2344 0x2332) 0x2546) - ((0x2344 0x2334) 0x2121) - ((0x2344 0x2335) 0x2547) - ((0x2344 0x2337) 0x2548) - ((0x2344 0x233E) 0x242D) - ((0x2344 0x2348) 0x2549) - ((0x2345 0x233E) 0x242E) - ((0x2345 0x2343) 0x245A) - ((0x2347 0x2321 0x2342) 0x2560) - ((0x2347 0x2321 0x2343) 0x2570) - ((0x2347 0x2321) 0x2550) - ((0x2347 0x2323 0x2342) 0x2561) - ((0x2347 0x2323 0x2343) 0x2571) - ((0x2347 0x2323) 0x2551) - ((0x2347 0x2325) 0x2552) - ((0x2347 0x232A) 0x2553) - ((0x2347 0x2330) 0x2554) - ((0x2347 0x2332) 0x2555) - ((0x2347 0x2334 0x2343) 0x2572) - ((0x2347 0x2334) 0x2556) - ((0x2347 0x2335 0x2342) 0x2562) - ((0x2347 0x2335 0x2343) 0x2573) - ((0x2347 0x2335) 0x2557) - ((0x2347 0x2337 0x2342) 0x2563) - ((0x2347 0x2337 0x2343) 0x2574) - ((0x2347 0x2337) 0x2558) - ((0x2347 0x2339 0x2342) 0x2564) - ((0x2347 0x2339 0x2343) 0x2575) - ((0x2347 0x2339) 0x2559) - ((0x2347 0x233A) 0x255A) - ((0x2347 0x233E) 0x242F) - ((0x2347 0x2343) 0x245B) - ((0x2347 0x2344) 0x2465) - ((0x2348 0x233E) 0x2430) - ((0x2348 0x2343) 0x245C)))) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/TIBT-MTIB.flt b/TIBT-MTIB.flt new file mode 100644 index 0000000..08e1a53 --- /dev/null +++ b/TIBT-MTIB.flt @@ -0,0 +1,260 @@ +;; TIB-MTIB.flt -- Font Layout Table for Tibetan (Tomabechi font) +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • TIB-MTIB.flt +;;; +;;; For the Tibetan TrueType font developped by Dr. Tomabechi to draw +;;; Tibetan script. The font is available at: +;;; + +(category + ;; Tibetan character category for rendering + ;; C: CONSONANTS (except R) + ;; R: LETTER RA (RA-MGO) + ;; S: SUBJOINED CONSONANTS (except s) + ;; s: SUBJOINED CONSONANTS (don't modify RA-MGO) + ;; V: VOWEL (except a and A) + ;; a: VOWEL SIGN A (invisible when composed) + ;; A: VOWEL SIGN AA (don't make preceding C shorter) + ;; M: MODIFIER + ;; E: ELSE + ;; + (0x0F00 0x0FCF ?E) ; ELSE + (0x0F19 ?M) ; ASTROLOGICAL SIGN SDONG TSHUGS + (0x0F35 ?M) ; MARK NGAS BZUNG NYI ZLA + (0x0F37 ?M) ; MARK NGAS BZUNG SGOR RTAGS + (0x0F39 ?M) ; MARK TSA -PHRU + (0x0F40 0x0F6A ?C) ; LETTER KA .. LETTER FIXED-FORM RA + (0x0F62 ?R) ; LETTER RA + (0x0F70 ?a) ; VOWEL SIGN A + (0x0F71 ?A) ; VOWEL SIGN AA + (0x0F72 0x0F7D ?V) ; VOWEL SIGN I .. VOWEL SIGN OO + (0x0F7E ?M) ; SIGN RJES SU NGA RO + (0x0F80 ?V) ; VOWEL SIGN REVERSED I + (0x0F81 ?V) ; VOWEL SIGN REVERSED II + (0x0F82 ?M) ; SIGN NYI ZLA NAA DA + (0x0F83 ?M) ; SIGN SNA LDAN + (0x0F84 ?V) ; MARK HALANTA + ;; SIGN LCI RTAGS .. SIGN GRU MED RGYINGS + (0x0F86 0x0F8B ?M) + ;; SUBJOINED LETTER KA .. SUBJOINED LETTER FIXED-FORM RA + (0x0F90 0x0FBC ?s) + (0x0FAD ?S) + (0x0FB1 0x0FB2 ?S) + (0x0FC6 ?M)) + +(generator + (0 + (cond + ("[CR][Ss]*[VaA]*M*" + < + (cond + ("R[^SA].*" ; ར[^ྭྱྲཱ] + ((0x0F62) 0xE083) ; convert ར to upper form + subjoined * + dependent-vowel-modifier *) + (".A.*" ; Cཱ (don't make C shorter) + = + dependent-vowel-modifier *) + (".[Ss].*" + | + short-consonant + subjoined * + dependent-vowel-modifier * + |) + (".*" + = + dependent-vowel-modifier * ) + ) + >) + ("[VaAM]" + < 0xE07A dependent-vowel-modifier >) + ("[Ss]" + < 0xE07A subjoined >) + ("." + =)) + *) + + (short-consonant + (cond + ((0x0F5D) 0x0FBA) + ((0x0F61) 0x0FBB) + ((0x0F62) 0x0FBC) + ((0x0F6A) 0x0FBC) + ((range 0x0F40 0x0F69) 0x0F90))) + + (subjoined + ((range 0x0F90 0x0FB9) bc.tc =)) + + (dependent-vowel-modifier + (cond + ((0x0F18) bl.tc =) + ((0x0F19) bc.tc =) + ((0x0F35) bc.tc =) + ((0x0F37) bc.tc =) + ((0x0F39) tc.bc =) + ((0x0F70) ) ; invisible + ((0x0F71) bc.tc =) + ((0x0F72) tc.bc =) + ((0x0F73) bc.tc 0x0F71 tc.bc 0x0F72) + ((0x0F74) bc.tc =) + ((0x0F75) bc.tc =) + ((0x0F76) bc.tc 0x0FB2 tc.bc 0x0F72) + ((0x0F77) bc.tc 0x0FB2 bc.tc 0x0F71 tc.bc 0x0F80) + ((0x0F78) bc.tc 0x0FB3 tc.bc 0x0F80) + ((0x0F79) bc.tc 0x0FB3 bc.tc 0x0F71 tc.bc 0x0F80) + ((0x0F7A) tc.bc =) + ((0x0F7B) tc.bc =) + ((0x0F7C) tc.bc =) + ((0x0F7D) tc.bc =) + ((0x0F7E) tc.bc =) + ((0x0F80) tc.bc =) + ((0x0F81) bc.tc 0x0F71 tc.bc =) + ((0x0F82) tc.bc =) + ((0x0F83) tc.bc =) + ((0x0F84) bc.tc =) + ((0x0F86) tc.bc =) + ((0x0F87) tc.bc =) + ((0x0F88) tc.bc =) + ((0x0F89) tc.bc =) + ((0x0F8A) tc.bc =) + ((0x0F8B) tc.bc =) + ((0x0FC6) bc.tc =)))) + +(category + (0x000 0xFFFF ?G)) + +(generator + (0 + (cond + (" (G*) " + (1 precomposed = *)) + ("[^ ]*" + = *)) + *) + + (precomposed + (cond + ((0x0F90 0x0FAD) 0xE000) + ((0x0F90 0x0FB1) 0xE010) + ((0x0F90 0x0FB2) 0xE018) + ((0x0F90 0x0FB3) 0xE026) + ((0x0F91 0x0FAD) 0xE001) + ((0x0F91 0x0FB1) 0xE011) + ((0x0F91 0x0FB2) 0xE019) + ((0x0F92 0x0FAD) 0xE002) + ((0x0F92 0x0FB1) 0xE012) + ((0x0F92 0x0FB2 0x0FAD) 0xE025) + ((0x0F92 0x0FB2) 0xE01A) + ((0x0F92 0x0FB3) 0xE027) + ((0x0F95 0x0FAD) 0xE003) + ((0x0F97 0x0FB2) 0xE060) + ((0x0F99 0x0FAD) 0xE004) + ((0x0F9F 0x0FAD) 0xE005) + ((0x0F9F 0x0FB2) 0xE01B) + ((0x0FA0 0x0FB2) 0xE01C) + ((0x0FA1 0x0FAD) 0xE006) + ((0x0FA1 0x0FB2) 0xE01D) + ((0x0FA4 0x0FB1) 0xE013) + ((0x0FA4 0x0FB2) 0xE01E) + ((0x0FA5 0x0FB1 0x0FAD) 0xE017) + ((0x0FA5 0x0FB1) 0xE014) + ((0x0FA5 0x0FB2) 0xE01F) + ((0x0FA6 0x0FB1) 0xE015) + ((0x0FA6 0x0FB2) 0xE020) + ((0x0FA6 0x0FB3) 0xE028) + ((0x0FA8 0x0FB1) 0xE016) + ((0x0FA8 0x0FB2) 0xE021) + ((0x0FA9 0x0FAD) 0xE007) + ((0x0FAA 0x0FAD) 0xE008) + ((0x0FAB 0x0FB2) 0xE061) + ((0x0FAE 0x0FAD) 0xE009) + ((0x0FAF 0x0FAD) 0xE00A) + ((0x0FAF 0x0FB3) 0xE029) + ((0x0FB2 0x0F90 0x0FB1) 0xE03A) + ((0x0FB2 0x0F90) 0xE02C) + ((0x0FB2 0x0F92 0x0FAD) 0xE038) + ((0x0FB2 0x0F92 0x0FB1) 0xE03B) + ((0x0FB2 0x0F92) 0xE02D) + ((0x0FB2 0x0F94) 0xE02E) + ((0x0FB2 0x0F97) 0xE02F) + ((0x0FB2 0x0F99) 0xE030) + ((0x0FB2 0x0F9F) 0xE031) + ((0x0FB2 0x0FA1) 0xE032) + ((0x0FB2 0x0FA3) 0xE033) + ((0x0FB2 0x0FA6) 0xE034) + ((0x0FB2 0x0FA8 0x0FB1) 0xE03C) + ((0x0FB2 0x0FA8) 0xE035) + ((0x0FB2 0x0FA9 0x0FAD) 0xE039) + ((0x0FB2 0x0FA9) 0xE036) + ((0x0FB2 0x0FAB) 0xE037) + ((0x0FB2 0x0FAD) 0xE00B) + ((0x0FB2 0x0FB3) 0xE02A) + ((0x0FB3 0x0F90) 0xE03D) + ((0x0FB3 0x0F92) 0xE03E) + ((0x0FB3 0x0F94) 0xE03F) + ((0x0FB3 0x0F95) 0xE040) + ((0x0FB3 0x0F97) 0xE041) + ((0x0FB3 0x0F9F) 0xE042) + ((0x0FB3 0x0FA1) 0xE043) + ((0x0FB3 0x0FA4) 0xE044) + ((0x0FB3 0x0FA6) 0xE045) + ((0x0FB3 0x0FAD) 0xE00C) + ((0x0FB3 0x0FB7) 0xE046) + ((0x0FB4 0x0FAD) 0xE00D) + ((0x0FB4 0x0FB2) 0xE022) + ((0x0FB6 0x0F90 0x0FB1) 0xE052) + ((0x0FB6 0x0F90 0x0FB2) 0xE057) + ((0x0FB6 0x0F90) 0xE047) + ((0x0FB6 0x0F92 0x0FB1) 0xE053) + ((0x0FB6 0x0F92 0x0FB2) 0xE058) + ((0x0FB6 0x0F92) 0xE048) + ((0x0FB6 0x0F94) 0xE049) + ((0x0FB6 0x0F99) 0xE04A) + ((0x0FB6 0x0F9F) 0xE04B) + ((0x0FB6 0x0FA1) 0xE04C) + ((0x0FB6 0x0FA3 0x0FB2) 0xE059) + ((0x0FB6 0x0FA3) 0xE04D) + ((0x0FB6 0x0FA4 0x0FB1) 0xE054) + ((0x0FB6 0x0FA4 0x0FB2) 0xE05A) + ((0x0FB6 0x0FA4) 0xE04E) + ((0x0FB6 0x0FA6 0x0FB1) 0xE055) + ((0x0FB6 0x0FA6 0x0FB2) 0xE05B) + ((0x0FB6 0x0FA6) 0xE04F) + ((0x0FB6 0x0FA8 0x0FB1) 0xE055) + ((0x0FB6 0x0FA8 0x0FB2) 0xE05C) + ((0x0FB6 0x0FA8) 0xE050) + ((0x0FB6 0x0FA9) 0xE051) + ((0x0FB6 0x0FAD) 0xE00E) + ((0x0FB6 0x0FB2) 0xE023) + ((0x0FB6 0x0FB3) 0xE02B) + ((0x0FB7 0x0FAD) 0xE00F) + ((0x0FB7 0x0FB2) 0xE024)))) + +;; Local Variables: +;; mode: lisp +;; coding: utf-8 +;; End: diff --git a/TIBT-MULE.flt b/TIBT-MULE.flt new file mode 100644 index 0000000..b08cee3 --- /dev/null +++ b/TIBT-MULE.flt @@ -0,0 +1,260 @@ +;; TIB-MULE.flt -- Font Layout Table for Tibetan (muletibetan font) +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • TIB-MULE.flt +;;; +;;; For the muletibetan font developped by Dr. Tomabechi to draw Tibetan +;;; script. The font is available at: +;;; + +(category + ;; Tibetan character category for rendering + ;; C: CONSONANTS (except R) + ;; R: LETTER RA (RA-MGO) + ;; S: SUBJOINED CONSONANTS (except s) + ;; s: SUBJOINED CONSONANTS (don't modify RA-MGO) + ;; V: VOWEL (except a and A) + ;; a: VOWEL SIGN A (invisible when composed) + ;; A: VOWEL SIGN AA (don't make preceding C shorter) + ;; M: MODIFIER + ;; E: ELSE + ;; + (0x0F00 0x0FCF ?E) ; default + (0x0F19 ?M) ; ASTROLOGICAL SIGN SDONG TSHUGS + (0x0F35 ?M) ; MARK NGAS BZUNG NYI ZLA + (0x0F37 ?M) ; MARK NGAS BZUNG SGOR RTAGS + (0x0F39 ?M) ; MARK TSA -PHRU + (0x0F40 0x0F6A ?C) ; LETTER KA .. LETTER FIXED-FORM RA + (0x0F62 ?R) ; LETTER RA + (0x0F70 ?a) ; VOWEL SIGN A + (0x0F71 ?A) ; VOWEL SIGN AA + (0x0F72 0x0F7D ?V) ; VOWEL SIGN I .. VOWEL SIGN OO + (0x0F7E ?M) ; SIGN RJES SU NGA RO + (0x0F80 ?V) ; VOWEL SIGN REVERSED I + (0x0F81 ?V) ; VOWEL SIGN REVERSED II + (0x0F82 ?M) ; SIGN NYI ZLA NAA DA + (0x0F83 ?M) ; SIGN SNA LDAN + (0x0F84 ?V) ; MARK HALANTA + ;; SIGN LCI RTAGS .. SIGN GRU MED RGYINGS + (0x0F86 0x0F8B ?M) + ;; SUBJOINED LETTER KA .. SUBJOINED LETTER FIXED-FORM RA + (0x0F90 0x0FBC ?s) + (0x0FAD ?S) + (0x0FB1 0x0FB2 ?S)) + +(generator + (0 + (cond + ("[CR][Ss]*[VaA]*M*" + < + (cond + ("R[SA].*" ; ར[ྭྱྲཱ] + ((0x0F62) 0x2122) ; convert ར to upper form + subjoined * + dependent-vowel-modifier *) + (".A.*" ; Cཱ + consonant + dependent-vowel-modifier *) + (".[Ss].*" + | + short-consonant + subjoined * + dependent-vowel-modifier * + |) + (".*" + consonant + dependent-vowel-modifier * ) + ) + >) + ("." + independent + subjoined)) + *) + + (consonant + ((range 0x0F40 0x0F6A) 0x2221)) + + (short-consonant + (cond + ((range 0x0F40 0x0F69) 0x2321) + ((0x0F6A) 0x234D))) + + (subjoined + ((range 0x0F90 0x0FBC) bc+tc 0x2321)) + + (dependent-vowel-modifier + (cond + ((0x0F19) bc-tc 0x2149) + ((0x0F35) bc-tc 0x2165) + ((0x0F37) bc-tc 0x2167) + ((0x0F39) tc-bc 0x2169) + ((0x0F70) ) ; invisible + ((0x0F71) bc-tc 0x2252) + ((0x0F72) tc-bc 0x2253) + ((0x0F73) bc-tc 0x2252 tc-bc 0x2253) + ((0x0F74) bc-tc 0x2255) + ((0x0F75) bc-tc 0x2256) + ((0x0F76) bc-tc 0x2343 tc-bc 0x2261) + ((0x0F77) bc-tc 0x2343 bc-tc 0x2252 tc-bc 0x2261) + ((0x0F78) bc-tc 0x2344 tc-bc 0x2261) + ((0x0F79) bc-tc 0x2344 bc-tc 0x2262 tc-bc 0x2261) + ((0x0F7A) tc-bc 0x225B) + ((0x0F7B) tc-bc 0x225C) + ((0x0F7C) tc-bc 0x225D) + ((0x0F7D) tc-bc 0x225E) + ((0x0F7E) tc-bc 0x225F) + ((0x0F80) tc-bc 0x2261) + ((0x0F81) bc-tc 0x2252 0x2261) + ((0x0F82) tc-bc 0x2263) + ((0x0F83) tc-bc 0x2264) + ((0x0F84) bc-tc 0x2265) + ((0x0F86) tc-bc 0x2267) + ((0x0F87) tc-bc 0x2268) + ((0x0F88) tc-bc 0x2269) + ((0x0F89) tc-bc 0x226A) + ((0x0F8A) tc-bc 0x226B) + ((0x0F8B) tc-bc 0x226C))) + + (independent + (cond + ((range 0x0F00 0x0F3F) 0x2130) + ((range 0x0F6B 0x0F8B) 0x224C) + ((range 0x0FBD 0x0FCF) 0x234E)))) + +(category + (0x2121 0x24FF ?G)) + +(generator + (0 + (cond + (" (G*) " + (1 precomposed = * )) + ("[^ ]*" + = * )) + *) + + (precomposed + (cond + ((0x2321 0x233E) 0x2421) + ((0x2321 0x2342) 0x2440) + ((0x2321 0x2343) 0x2450) + ((0x2321 0x2344) 0x2460) + ((0x2322 0x233E) 0x2422) + ((0x2322 0x2342) 0x2441) + ((0x2322 0x2343) 0x2451) + ((0x2323 0x233E) 0x2423) + ((0x2323 0x2342) 0x2442) + ((0x2323 0x2343 0x233E) 0x245F) + ((0x2323 0x2343) 0x2452) + ((0x2323 0x2344) 0x2461) + ((0x2326 0x233E) 0x2424) + ((0x2328 0x2343) 0x245D) + ((0x232A 0x233E) 0x2425) + ((0x2330 0x233E) 0x2426) + ((0x2330 0x2343) 0x2453) + ((0x2331 0x2343) 0x2454) + ((0x2332 0x233E) 0x2427) + ((0x2332 0x2343) 0x2455) + ((0x2335 0x2342) 0x2443) + ((0x2335 0x2343) 0x2456) + ((0x2336 0x2342 0x233E) 0x2447) + ((0x2336 0x2342) 0x2444) + ((0x2336 0x2343) 0x2457) + ((0x2337 0x2342) 0x2445) + ((0x2337 0x2343) 0x2458) + ((0x2337 0x2344) 0x2462) + ((0x2339 0x2342) 0x2446) + ((0x2339 0x2343) 0x2459) + ((0x233A 0x233E) 0x2428) + ((0x233B 0x233E) 0x2429) + ((0x233C 0x2343) 0x245E) + ((0x233F 0x233E) 0x242A) + ((0x2340 0x233E) 0x242B) + ((0x2340 0x2344) 0x2463) + ((0x2343 0x2321 0x2342) 0x2530) + ((0x2343 0x2321) 0x2521) + ((0x2343 0x2323 0x233E) 0x252D) + ((0x2343 0x2323 0x2342) 0x2531) + ((0x2343 0x2323) 0x2522) + ((0x2343 0x2325) 0x2523) + ((0x2343 0x2328) 0x2524) + ((0x2343 0x232A) 0x2525) + ((0x2343 0x2330) 0x2526) + ((0x2343 0x2332) 0x2527) + ((0x2343 0x2334) 0x2528) + ((0x2343 0x2337) 0x2529) + ((0x2343 0x2339 0x2342) 0x2532) + ((0x2343 0x2339) 0x252A) + ((0x2343 0x233A 0x233E) 0x252E) + ((0x2343 0x233A) 0x252B) + ((0x2343 0x233C) 0x252C) + ((0x2343 0x233E) 0x242C) + ((0x2343 0x2344) 0x2464) + ((0x2344 0x2321) 0x2540) + ((0x2344 0x2323) 0x2541) + ((0x2344 0x2325) 0x2542) + ((0x2344 0x2326) 0x2543) + ((0x2344 0x2328) 0x2544) + ((0x2344 0x2330) 0x2545) + ((0x2344 0x2332) 0x2546) + ((0x2344 0x2334) 0x2121) + ((0x2344 0x2335) 0x2547) + ((0x2344 0x2337) 0x2548) + ((0x2344 0x233E) 0x242D) + ((0x2344 0x2348) 0x2549) + ((0x2345 0x233E) 0x242E) + ((0x2345 0x2343) 0x245A) + ((0x2347 0x2321 0x2342) 0x2560) + ((0x2347 0x2321 0x2343) 0x2570) + ((0x2347 0x2321) 0x2550) + ((0x2347 0x2323 0x2342) 0x2561) + ((0x2347 0x2323 0x2343) 0x2571) + ((0x2347 0x2323) 0x2551) + ((0x2347 0x2325) 0x2552) + ((0x2347 0x232A) 0x2553) + ((0x2347 0x2330) 0x2554) + ((0x2347 0x2332) 0x2555) + ((0x2347 0x2334 0x2343) 0x2572) + ((0x2347 0x2334) 0x2556) + ((0x2347 0x2335 0x2342) 0x2562) + ((0x2347 0x2335 0x2343) 0x2573) + ((0x2347 0x2335) 0x2557) + ((0x2347 0x2337 0x2342) 0x2563) + ((0x2347 0x2337 0x2343) 0x2574) + ((0x2347 0x2337) 0x2558) + ((0x2347 0x2339 0x2342) 0x2564) + ((0x2347 0x2339 0x2343) 0x2575) + ((0x2347 0x2339) 0x2559) + ((0x2347 0x233A) 0x255A) + ((0x2347 0x233E) 0x242F) + ((0x2347 0x2343) 0x245B) + ((0x2347 0x2344) 0x2465) + ((0x2348 0x233E) 0x2430) + ((0x2348 0x2343) 0x245C)))) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/TML-CDAC.flt b/TML-CDAC.flt deleted file mode 100644 index df9e896..0000000 --- a/TML-CDAC.flt +++ /dev/null @@ -1,342 +0,0 @@ -;; TML-CDAC.flt -- Font Layout Table for Tamil (C-DAC font) -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • TML-CDAC.flt -;;; -;;; For the font TMVL0ntt.ttf (developped by C-DAC, encoding is ISFOC) -;;; to draw Tamil script. The font is available at: -;;; - -(category - ;; C: CONSONANT - ;; I: INDEPENDENT VOWEL - ;; R: DEPENDENT VOWEL RIGHT - ;; L: DEPENDENT VOWEL LEFT - ;; B: DEPENDENT VOWEL LEFT AND RIGHT TYPE 1 - ;; b: DEPENDENT VOWEL LEFT AND RIGHT TYPE 2 - ;; V: VIRAMA - ;; E: ELSE - ;; - (0x0B83 ?E) - (0x0B85 0x0B8A ?I) - (0x0B8E 0x0B90 ?I) - (0x0B92 0x0B94 ?I) - (0x0B95 ?C) - (0x0B99 0x0B9A ?C) - (0x0B9C ?C) - (0x0B9E 0x0B9F ?C) - (0x0BA3 0x0BA4 ?C) - (0x0BA8 0x0BAA ?C) - (0x0BAE 0x0BB5 ?C) - (0x0BB7 0x0BB9 ?C) - (0x0BBE 0x0BC2 ?R) - (0x0BC6 0x0BC8 ?L) - (0x0BCA ?B) - (0x0BCB ?b) - (0x0BCC ?B) - (0x0BCD ?V) - (0x0BD7 ?E)) - -;; CHAR->GLYPH STAGE -(generator - (0 - (cond - ("((CV)*)(C)(R)" - (1 consonant-virama *) - (3 consonant) - (4 dependent-vowel)) - ("((CV)*)(C)(L)" - < | - (4 dependent-vowel) - (1 consonant-virama *) - (3 consonant) - | >) - ("((CV)*)(C)(B)" - < | - 0xAA - (1 consonant-virama *) - (3 consonant) - (4 dependent-vowel) - | >) - ("((CV)*)(C)(b)" - < | - 0xAB - (1 consonant-virama *) - (3 consonant) - (4 dependent-vowel) - | >) - ("CV" - < consonant-virama >) - ("[RLBb]" - isolated-dependent-vowel) - ("." independent consonant)) - *) - - (consonant-virama - (cond - ((0x0B95 0x0BCD) 0xE8 0xA2) ; k - ((0x0B99 0x0BCD) 0xE9 0xA2) ; n^ - ((0x0B9A 0x0BCD) 0xEA 0xA2) ; c - ((0x0B9E 0x0BCD) 0xEB 0xA2) ; n~ - ((0x0B9F 0x0BCD) 0xEC 0xA2) ; t. - ((0x0BA3 0x0BCD) 0xED 0xA2) ; n. - ((0x0BA4 0x0BCD) 0xEE 0xA2) ; t - ((0x0BA8 0x0BCD) 0xEF 0xA2) ; n - ((0x0BAA 0x0BCD) 0xF0 0xA2) ; p - ((0x0BAE 0x0BCD) 0xF1 0xA2) ; m - ((0x0BAF 0x0BCD) 0xF2 0xA2) ; y - ((0x0BB0 0x0BCD) 0xF3 0xA2) ; r - ((0x0BB2 0x0BCD) 0xF4 0xA2) ; l - ((0x0BB5 0x0BCD) 0xF5 0xA2) ; v - ((0x0BB4 0x0BCD) 0xF6 0xA2) ; l_ - ((0x0BB3 0x0BCD) 0xF7 0xA2) ; l. - ((0x0BB1 0x0BCD) 0xF8 0xA2) ; r_ - ((0x0BA9 0x0BCD) 0xA1) ; n_ - ((0x0BB8 0x0BCD) 0x76) ; s - ((0x0BB7 0x0BCD) 0x77) ; s' - ((0x0B9C 0x0BCD) 0x78) ; j - ((0x0BB9 0x0BCD) 0x79) ; h - )) - - (consonant - (cond - ((0x0B95) 0xE8) ; k - ((0x0B99) 0xE9) ; n^ - ((0x0B9A) 0xEA) ; c - ((0x0B9E) 0xEB) ; n~ - ((0x0B9F) 0xEC) ; t. - ((0x0BA3) 0xED) ; n. - ((0x0BA4) 0xEE) ; t - ((0x0BA8) 0xEF) ; n - ((0x0BAA) 0xF0) ; p - ((0x0BAE) 0xF1) ; m - ((0x0BAF) 0xF2) ; y - ((0x0BB0) 0xF3) ; r - ((0x0BB2) 0xF4) ; l - ((0x0BB5) 0xF5) ; v - ((0x0BB4) 0xF6) ; l_ - ((0x0BB3) 0xF7) ; l. - ((0x0BB1) 0xF8) ; r_ - ((0x0BA9) 0xF9) ; n_ - ((0x0BB8) 0xFA) ; s - ((0x0BB7) 0xFB) ; s' - ((0x0B9C) 0xFC) ; j - ((0x0BB9) 0xFD) ; h - )) - - (dependent-vowel - (cond - ((0x0BBE) 0xA3) ; a~ - ((0x0BBF) 0xA4) ; i - ((0x0BC0) 0xA6) ; i~ - ((0x0BC1) 0xA7) ; u - ((0x0BC2) 0xA8) ; u~ - ((0x0BC6) 0xAA) ; e - ((0x0BC7) 0xAB) ; e~ - ((0x0BC8) 0xAC) ; ai - ((0x0BCA) 0xA3) ; o (right part) - ((0x0BCB) 0xA3) ; o~ (right part) - ((0x0BCC) 0xF7) ; au (right part) - )) - - (independent - (cond - ;; VOWELS - ((0x0B85) 0xDC) ; a - ((0x0B86) 0xDD) ; a~ - ((0x0B87) 0xDE) ; i - ((0x0B88) 0xDF) ; i~ - ((0x0B89) 0xE0) ; u - ((0x0B8A) 0xE1) ; u~ - ((0x0B8E) 0xE2) ; e - ((0x0B8F) 0xE3) ; e~ - ((0x0B90) 0xE4) ; ai - ((0x0B92) 0xE5) ; o - ((0x0B93) 0xE6) ; o~ - ((0x0B94) 0xE5 0xF7) ; au - ;; VISARGA - ((0x0B83) 0xE7) - )) - - (isolated-dependent-vowel - (cond - ((0x0BBE) 0x81 0xA3) ; a~ - ((0x0BBF) 0x81 0xA4) ; i - ((0x0BC0) 0x81 0xA6) ; i~ - ((0x0BC1) 0x81 0xA7) ; u - ((0x0BC2) 0x81 0xA8) ; u~ - ((0x0BC6) 0xAA 0x81) ; e - ((0x0BC7) 0xAB 0x81) ; e~ - ((0x0BC8) 0xAC 0x81) ; ai - ((0x0BCA) 0xAA 0x81 0xA3) ; o - ((0x0BCB) 0xAB 0x81 0xA3) ; o~ - ((0x0BCC) 0xAA 0x81 0xF7) ; au - ))) - -;; LIGATURE STAGE -(category - ;; C: CONSONANT (except for K, R, S) - ;; K: CONSONANT K - ;; R: CONSONANT R - ;; S: CONSONANT S' - ;; V: LIGATURE VOWEL (except for I,i) - ;; I: DEPENDENT VOWEL I - ;; i: DEPENDENT VOWEL I~ - ;; L: LEFT PART OF VOWEL - ;; v: VIRAMA - ;; E: ELSE - ;; - (0x00 0xFF ?E) - (0xA2 ?v) - (0xE9 0xFD ?C) - (0xE8 ?K) - (0xF3 ?R) - (0xFB ?S) - (0xA4 ?I) ; i - (0xA6 ?i) ; i~ - (0xA7 0xA8 ?V) ; u, u~ - (0xAA 0xAC ?L) - ) - -(generator - (0 - (cond - ;; 1 23 4 5 6 - (" (L)(([CKRS](v)?)*)(KvS)(.)? " - (2 = *) (1 =) (5 0xFE) (6 =)) - ;; 1 23 4 5 - (" (L)(([CKRS](v)?)*)([CKRS].?) " - (2 = *) (1 =) (5 = =)) - ("KvS[Iiv]?" - ligature-ks) - ("[CKRS][IiV]" - ligature = =) - ("SvRi" 0xFF) - ("." - =)) - *) - - (ligature-ks - (cond - ((0xE8 0xA2 0xFB 0xA4) 0x56) ; ksi - ((0xE8 0xA2 0xFB 0xA6) 0x72) ; ksi~ - ((0xE8 0xA2 0xFB 0xA2) 0x7A) ; ks - ((0xE8 0xA2 0xFB) 0xFE) ; ks - )) - - (ligature - (cond - ((0xE8 0xA2 0x76 0xA2) 0x7A) ; ks. - - ((0xE8 0xA4) 0x41) ; ki - ((0xE9 0xA4) 0x42) ; n^i - ((0xEA 0xA4) 0x43) ; ci - ((0xEB 0xA4) 0x44) ; n~i - ((0xEC 0xA4) 0xAE) ; t.i - ((0xED 0xA4) 0x45) ; n.i - ((0xEE 0xA4) 0x46) ; ti - ((0xEF 0xA4) 0x47) ; ni - ((0xF0 0xA4) 0x48) ; pi - ((0xF1 0xA4) 0x49) ; mi - ((0xF2 0xA4) 0x4A) ; yi - ((0xF3 0xA4) 0x4B) ; ri - ((0xF4 0xA4) 0x4C) ; li - ((0xF5 0xA4) 0x4D) ; vi - ((0xF6 0xA4) 0x4E) ; l_i - ((0xF7 0xA4) 0x4F) ; l.i - ((0xF8 0xA4) 0x50) ; r_i - ((0xF9 0xA4) 0x51) ; n_i - ((0xFA 0xA4) 0x52) ; si - ((0xFB 0xA4) 0x53) ; s'i - ((0xFC 0xA4) 0x54) ; ji - ((0xFD 0xA4) 0x55) ; hi - - ((0xE8 0xA6) 0x57) ; ki~ - ((0xE9 0xA6) 0x58) ; n^i~ - ((0xEA 0xA6) 0x59) ; ci~ - ((0xEB 0xA6) 0x5A) ; n~i~ - ((0xEC 0xA6) 0xAF) ; t.i~ - ((0xED 0xA6) 0x61) ; n.i~ - ((0xEE 0xA6) 0x62) ; ti~ - ((0xEF 0xA6) 0x63) ; ni~ - ((0xF0 0xA6) 0x64) ; pi~ - ((0xF1 0xA6) 0x65) ; mi~ - ((0xF2 0xA6) 0x66) ; yi~ - ((0xF3 0xA6) 0x67) ; ri~ - ((0xF4 0xA6) 0x68) ; li~ - ((0xF5 0xA6) 0x69) ; vi~ - ((0xF6 0xA6) 0x6A) ; l_i~ - ((0xF7 0xA6) 0x6B) ; l.i~ - ((0xF8 0xA6) 0x6C) ; r_i~ - ((0xF9 0xA6) 0x6D) ; n_i~ - ((0xFA 0xA6) 0x6E) ; si~ - ((0xFB 0xA6) 0x6F) ; s'i~ - ((0xFC 0xA6) 0x70) ; ji~ - ((0xFD 0xA6) 0x71) ; hi~ - - ((0xE8 0xA7) 0xB0) ; ku - ((0xE9 0xA7) 0xB1) ; n^u - ((0xEA 0xA7) 0xB2) ; cu - ((0xEB 0xA7) 0xB3) ; n~u - ((0xEC 0xA7) 0xB4) ; t.u - ((0xED 0xA7) 0xB5) ; n.u - ((0xEE 0xA7) 0xB6) ; tu - ((0xEF 0xA7) 0xB8) ; nu - ((0xF0 0xA7) 0xB9) ; pu - ((0xF1 0xA7) 0xBA) ; mu - ((0xF2 0xA7) 0xBB) ; yu - ((0xF3 0xA7) 0xBC) ; ru - ((0xF4 0xA7) 0xBD) ; lu - ((0xF5 0xA7) 0xBE) ; vu - ((0xF6 0xA7) 0xBF) ; l_u - ((0xF7 0xA7) 0xC0) ; l.u - ((0xF8 0xA7) 0xC1) ; r_u - ((0xF9 0xA7) 0xC2) ; n_u - - ((0xE8 0xA8) 0xC3) ; ku~ - ((0xE9 0xA8) 0xC4) ; n^u~ - ((0xEA 0xA8) 0xC5) ; cu~ - ((0xEB 0xA8) 0xC6) ; n~u~ - ((0xEC 0xA8) 0xC7) ; t.u~ - ((0xED 0xA8) 0xC8) ; n.u~ - ((0xEE 0xA8) 0xC9) ; tu~ - ((0xEF 0xA8) 0xCB) ; nu~ - ((0xF0 0xA8) 0xCC) ; pu~ - ((0xF1 0xA8) 0xCD) ; mu~ - ((0xF2 0xA8) 0xCE) ; yu~ - ((0xF3 0xA8) 0xCF) ; ru~ - ((0xF4 0xA8) 0xD6) ; lu~ - ((0xF5 0xA8) 0xD7) ; vu~ - ((0xF6 0xA8) 0xD8) ; l_u~ - ((0xF7 0xA8) 0xD9) ; l.u~ - ((0xF8 0xA8) 0xDA) ; r_u~ - ((0xF9 0xA8) 0xDB) ; n_u~ - )) - ) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/TML-OTF.flt b/TML-OTF.flt deleted file mode 100644 index 913bf34..0000000 --- a/TML-OTF.flt +++ /dev/null @@ -1,114 +0,0 @@ -;; TML-OTF.flt -- Font Layout Table for Tamil OpenType fonts -;; Copyright (C) 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • TML-OTF.flt -;;; -;;; For Tamil OpenType fonts to draw Tamil. -;;; Fonts are available from . - -(category - ;; C: general consonant - ;; V: independent vowel - ;; H: HALANT - ;; m: MATRA (pre) - ;; u: MATRA (above) - ;; b: MATRA (below) - ;; p: MATRA (post) - ;; A: vowel modifier (above) - ;; a: vowel modifier (post) - ;; N: ZWNJ (ZERO WIDTH NON-JOINER) - ;; J: ZWJ (ZERO WIDTH JOINER) - ;; E: ELSE - ;; - (0x200C ?N) ; ZWNJ - (0x200D ?J) ; ZWJ - (0x0964 ?E) ; DANDA - (0x0965 ?E) ; DOUBLE DANDA - (0x0B80 0x0BFF ?E) ; ELSE - (0x0B85 0x0B94 ?V) ; LETTER AA .. LETTER AU - (0x0B95 0x0BB9 ?C) ; LETTER KA .. LETTER HA - (0x0BBE ?p) ; VOWEL SIGN AA (post) - (0x0BBF ?p) ; VOWEL SIGN I (post) - (0x0BC0 ?u) ; VOWEL SIGN II (above) - (0x0BC1 ?b) ; VOWEL SIGN U (below) - (0x0BC2 ?b) ; VOWEL SIGN UU (below) - (0x0BC6 0x0BC8 ?m) ; VOWEL SIGN E, EE, AI (pre) - (0x0BCA 0x0BCC ?t) ; VOWEL SIGN O, OO, AU (two-part) - (0x0BCD ?H) ; VIRAMA - (0x0BD7 ?p) ; AU LENGTH MARK (post) - ) - -;; Step 1 : Syllable identification. -(generator - (0 - (cond - ;; A syllable ending with a two-part vowel sign. - ("((CH)*C)(t)" - < | (1 otf:taml=akhn) (3 two-part) | >) - - ;; A syllable ending with a vowel sign. - ("((CH)*C)([mubp])" - < | (1 otf:taml=akhn) (3 =) | >) - - ;; No vowel sign. - ("(CH)*CH?" - < | otf:taml=akhn | >) - - ;; A variation of AU. - ((0x0B92 0x0BD7) - 0x0B94) - - ("." =)) - *) - - (two-part - (cond - ((0x0BCA) - 0x0BC6 0x0BBE) - ((0x0BCB) - 0x0BC7 0x0BBE) - ((0x0BCC) - 0x0BC6 0x0BD7)))) - -;; Step 2 : Matra movements. -(generator - (0 - (cond - (" ([^ mubp]*)([^ mubp])(m)?([ubp])? " - | (1 = *) (3 =) (2 =) (4 =) |) - ("." =)) - *)) - -;; Step 3 : OTF substitutions and positionings. -(generator - (0 - (cond - (" ([^ ]*) " - (1 otf:taml)) - ("." - [ otf:taml=+ ])) - *)) - -;; Local Variables: -;; mode: emacs-lisp -;; End: diff --git a/as-itrans.mim b/as-itrans.mim new file mode 100644 index 0000000..18c36db --- /dev/null +++ b/as-itrans.mim @@ -0,0 +1,187 @@ +;; asm-itrans.mim -- Assamese input method with ITRANS method +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • asm-itrans.mim +;;; +;;; Input method for Bengali script (Assamese language) with ITRANS +;;; method. For the detail of ITRAN, see the page +;;; http://www.aczone.com/itrans/. + +(title "ক") + +(map + (starter + (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) + ("0") ("1") ("2") ("3") ("4") + ("5") ("6") ("7") ("8") ("9") + ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") + ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") + ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") + ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") + ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) + + (consonant + ("k" "ক্") + ("kh" "খ্") + ("g" "গ্") + ("gh" "ঘ্") + ("~N" "ঙ্") + ("N^" "ঙ্") + ("ch" "চ্") + ("Ch" "ছ্") + ("chh" "ছ্") + ("j" "জ্") + ("jh" "ঝ্") + ("~n" "ঞ্") + ("JN" "ঞ্") + ("T" "ট্") + ("Th" "ঠ্") + ("D" "ড্") + ("Dh" "ঢ্") + ("N" "ণ্") + ("t" "ত্") + ("th" "থ্") + ("d" "দ্") + ("dh" "ধ্") + ("n" "ন্") + ("p" "প্") + ("ph" "ফ্") + ("b" "ব্") + ("bh" "ভ্") + ("m" "ম্") + ("y" "য্") + ("r" "ৰ্") + ("l" "ল্") + ("v" "ৱ্") + ("w" "ৱ্") + ("sh" "শ্") + ("Sh" "ষ্") + ("shh" "ষ্") + ("s" "স্") + ("h" "হ্") + (".D" "ড়্") + (".Dh" "ঢ়্") + ("Y" "য়্") + ("yh" "য়্") + ("GY" "জ্ঞ্") + ("dny" "জ্ঞ্") + ("x" "ক্ষ্")) + + (independent + ("a" "অ") + ("aa" "আ") + ("A" "আ") + ("i" "ই") + ("ii" "ঈ") + ("I" "ঈ") + ("u" "উ") + ("uu" "ঊ") + ("U" "ঊ") + ("RRi" "ঋ") + ("R^i" "ঋ") + ("LLi" "ঌ") + ("L^i" "ঌ") + ("e" "এ") + ("ai" "ঐ") + ("o" "ও") + ("au" "ঔ") + ("RRI" "ৠ") + ("R^I" "ৠ") + ("LLI" "ৡ") + ("L^I" "ৡ") + (".N" "ঁ") + (".n" "ং") + ("M" "ং") + ("H" "ঃ") + (".h" "্") + ("0" "০") + ("1" "১") + ("2" "২") + ("3" "৩") + ("4" "৪") + ("5" "৫") + ("6" "৬") + ("7" "৭") + ("8" "৮") + ("9" "৯") + ("#" "্ৰ") + ("$" "ৰ্") + ("^" "ত্ৰ") + ("*" "শ্ৰ") + ("]" "়") + ((S-\ ) "‌") + ((C-@) "‍")) + + (dependent + ("a" (delete @-) "") + ("aa" (delete @-) "া") + ("A" (delete @-) "া") + ("i" (delete @-) "ি") + ("ii" (delete @-) "ী") + ("I" (delete @-) "ী") + ("u" (delete @-) "ু") + ("uu" (delete @-) "ূ") + ("U" (delete @-) "ূ") + ("RRi" (delete @-) "ৃ") + ("R^i" (delete @-) "ৃ") + ("LLi" (delete @-) "ৢ") + ("L^i" (delete @-) "ৢ") + ("e" (delete @-) "ে") + ("ai" (delete @-) "ৈ") + ("o" (delete @-) "ো") + ("au" (delete @-) "ৌ") + ("RRI" (delete @-) "ৄ") + ("R^I" (delete @-) "ৄ") + ("LLI" (delete @-) "ৣ") + ("L^I" (delete @-) "ৣ")) + + (return + ((Return))) + + (backspace + ((BackSpace) (undo)))) + +(state + (init + (starter (pushback 1) (shift intermediate))) + + (intermediate + (consonant (shift second)) + (independent (shift finish)) + (backspace) + (return (shift init))) + + (second + (consonant) + (dependent (shift finish)) + (backspace) + (return (shift init))) + + (finish + (return) + (t (shift init)))) + +;; Local Variables: +;; coding: utf-8 +;; mode: lisp +;; End: diff --git a/asm-itrans.mim b/asm-itrans.mim deleted file mode 100644 index 18c36db..0000000 --- a/asm-itrans.mim +++ /dev/null @@ -1,187 +0,0 @@ -;; asm-itrans.mim -- Assamese input method with ITRANS method -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • asm-itrans.mim -;;; -;;; Input method for Bengali script (Assamese language) with ITRANS -;;; method. For the detail of ITRAN, see the page -;;; http://www.aczone.com/itrans/. - -(title "ক") - -(map - (starter - (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) - ("0") ("1") ("2") ("3") ("4") - ("5") ("6") ("7") ("8") ("9") - ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") - ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") - ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") - ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") - ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) - - (consonant - ("k" "ক্") - ("kh" "খ্") - ("g" "গ্") - ("gh" "ঘ্") - ("~N" "ঙ্") - ("N^" "ঙ্") - ("ch" "চ্") - ("Ch" "ছ্") - ("chh" "ছ্") - ("j" "জ্") - ("jh" "ঝ্") - ("~n" "ঞ্") - ("JN" "ঞ্") - ("T" "ট্") - ("Th" "ঠ্") - ("D" "ড্") - ("Dh" "ঢ্") - ("N" "ণ্") - ("t" "ত্") - ("th" "থ্") - ("d" "দ্") - ("dh" "ধ্") - ("n" "ন্") - ("p" "প্") - ("ph" "ফ্") - ("b" "ব্") - ("bh" "ভ্") - ("m" "ম্") - ("y" "য্") - ("r" "ৰ্") - ("l" "ল্") - ("v" "ৱ্") - ("w" "ৱ্") - ("sh" "শ্") - ("Sh" "ষ্") - ("shh" "ষ্") - ("s" "স্") - ("h" "হ্") - (".D" "ড়্") - (".Dh" "ঢ়্") - ("Y" "য়্") - ("yh" "য়্") - ("GY" "জ্ঞ্") - ("dny" "জ্ঞ্") - ("x" "ক্ষ্")) - - (independent - ("a" "অ") - ("aa" "আ") - ("A" "আ") - ("i" "ই") - ("ii" "ঈ") - ("I" "ঈ") - ("u" "উ") - ("uu" "ঊ") - ("U" "ঊ") - ("RRi" "ঋ") - ("R^i" "ঋ") - ("LLi" "ঌ") - ("L^i" "ঌ") - ("e" "এ") - ("ai" "ঐ") - ("o" "ও") - ("au" "ঔ") - ("RRI" "ৠ") - ("R^I" "ৠ") - ("LLI" "ৡ") - ("L^I" "ৡ") - (".N" "ঁ") - (".n" "ং") - ("M" "ং") - ("H" "ঃ") - (".h" "্") - ("0" "০") - ("1" "১") - ("2" "২") - ("3" "৩") - ("4" "৪") - ("5" "৫") - ("6" "৬") - ("7" "৭") - ("8" "৮") - ("9" "৯") - ("#" "্ৰ") - ("$" "ৰ্") - ("^" "ত্ৰ") - ("*" "শ্ৰ") - ("]" "়") - ((S-\ ) "‌") - ((C-@) "‍")) - - (dependent - ("a" (delete @-) "") - ("aa" (delete @-) "া") - ("A" (delete @-) "া") - ("i" (delete @-) "ি") - ("ii" (delete @-) "ী") - ("I" (delete @-) "ী") - ("u" (delete @-) "ু") - ("uu" (delete @-) "ূ") - ("U" (delete @-) "ূ") - ("RRi" (delete @-) "ৃ") - ("R^i" (delete @-) "ৃ") - ("LLi" (delete @-) "ৢ") - ("L^i" (delete @-) "ৢ") - ("e" (delete @-) "ে") - ("ai" (delete @-) "ৈ") - ("o" (delete @-) "ো") - ("au" (delete @-) "ৌ") - ("RRI" (delete @-) "ৄ") - ("R^I" (delete @-) "ৄ") - ("LLI" (delete @-) "ৣ") - ("L^I" (delete @-) "ৣ")) - - (return - ((Return))) - - (backspace - ((BackSpace) (undo)))) - -(state - (init - (starter (pushback 1) (shift intermediate))) - - (intermediate - (consonant (shift second)) - (independent (shift finish)) - (backspace) - (return (shift init))) - - (second - (consonant) - (dependent (shift finish)) - (backspace) - (return (shift init))) - - (finish - (return) - (t (shift init)))) - -;; Local Variables: -;; coding: utf-8 -;; mode: lisp -;; End: diff --git a/bn-itrans.mim b/bn-itrans.mim new file mode 100644 index 0000000..d9a77d0 --- /dev/null +++ b/bn-itrans.mim @@ -0,0 +1,185 @@ +;; bng-itrans.mim -- Bengali input method with ITRANS method +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • bng-itrans.mim +;;; +;;; Input method for Bengali script (Bengali language) with ITRANS +;;; method. For the detail of ITRAN, see the page +;;; http://www.aczone.com/itrans/. + +(title "ক") + +(map + (starter + (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) + ("0") ("1") ("2") ("3") ("4") + ("5") ("6") ("7") ("8") ("9") + ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") + ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") + ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") + ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") + ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) + + (consonant + ("k" "ক্") + ("kh" "খ্") + ("g" "গ্") + ("gh" "ঘ্") + ("~N" "ঙ্") + ("N^" "ঙ্") + ("ch" "চ্") + ("Ch" "ছ্") + ("chh" "ছ্") + ("j" "জ্") + ("jh" "ঝ্") + ("~n" "ঞ্") + ("JN" "ঞ্") + ("T" "ট্") + ("Th" "ঠ্") + ("D" "ড্") + ("Dh" "ঢ্") + ("N" "ণ্") + ("t" "ত্") + ("th" "থ্") + ("d" "দ্") + ("dh" "ধ্") + ("n" "ন্") + ("p" "প্") + ("ph" "ফ্") + ("b" "ব্") + ("bh" "ভ্") + ("m" "ম্") + ("y" "য্") + ("r" "র্") + ("l" "ল্") + ("sh" "শ্") + ("Sh" "ষ্") + ("shh" "ষ্") + ("s" "স্") + ("h" "হ্") + (".D" "ড়্") + (".Dh" "ঢ়্") + ("Y" "য়্") + ("yh" "য়্") + ("GY" "জ্ঞ্") + ("dny" "জ্ঞ্") + ("x" "ক্ষ্")) + + (independent + ("a" "অ") + ("aa" "আ") + ("A" "আ") + ("i" "ই") + ("ii" "ঈ") + ("I" "ঈ") + ("u" "উ") + ("uu" "ঊ") + ("U" "ঊ") + ("RRi" "ঋ") + ("R^i" "ঋ") + ("LLi" "ঌ") + ("L^i" "ঌ") + ("e" "এ") + ("ai" "ঐ") + ("o" "ও") + ("au" "ঔ") + ("RRI" "ৠ") + ("R^I" "ৠ") + ("LLI" "ৡ") + ("L^I" "ৡ") + (".N" "ঁ") + (".n" "ং") + ("M" "ং") + ("H" "ঃ") + (".h" "্") + ("0" "০") + ("1" "১") + ("2" "২") + ("3" "৩") + ("4" "৪") + ("5" "৫") + ("6" "৬") + ("7" "৭") + ("8" "৮") + ("9" "৯") + ("#" "্র") + ("$" "র্") + ("^" "ত্র") + ("*" "শ্র") + ("]" "়") + ((S-\ ) "‌") + ((C-@) "‍")) + + (dependent + ("a" (delete @-) "") + ("aa" (delete @-) "া") + ("A" (delete @-) "া") + ("i" (delete @-) "ি") + ("ii" (delete @-) "ী") + ("I" (delete @-) "ী") + ("u" (delete @-) "ু") + ("uu" (delete @-) "ূ") + ("U" (delete @-) "ূ") + ("RRi" (delete @-) "ৃ") + ("R^i" (delete @-) "ৃ") + ("LLi" (delete @-) "ৢ") + ("L^i" (delete @-) "ৢ") + ("e" (delete @-) "ে") + ("ai" (delete @-) "ৈ") + ("o" (delete @-) "ো") + ("au" (delete @-) "ৌ") + ("RRI" (delete @-) "ৄ") + ("R^I" (delete @-) "ৄ") + ("LLI" (delete @-) "ৣ") + ("L^I" (delete @-) "ৣ")) + + (return + ((Return))) + + (backspace + ((BackSpace) (undo)))) + +(state + (init + (starter (pushback 1) (shift intermediate))) + + (intermediate + (consonant (shift second)) + (independent (shift finish)) + (backspace) + (return (shift init))) + + (second + (consonant) + (dependent (shift finish)) + (backspace) + (return (shift init))) + + (finish + (return) + (t (shift init)))) + +;; Local Variables: +;; coding: utf-8 +;; mode: lisp +;; End: diff --git a/bng-itrans.mim b/bng-itrans.mim deleted file mode 100644 index d9a77d0..0000000 --- a/bng-itrans.mim +++ /dev/null @@ -1,185 +0,0 @@ -;; bng-itrans.mim -- Bengali input method with ITRANS method -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • bng-itrans.mim -;;; -;;; Input method for Bengali script (Bengali language) with ITRANS -;;; method. For the detail of ITRAN, see the page -;;; http://www.aczone.com/itrans/. - -(title "ক") - -(map - (starter - (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) - ("0") ("1") ("2") ("3") ("4") - ("5") ("6") ("7") ("8") ("9") - ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") - ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") - ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") - ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") - ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) - - (consonant - ("k" "ক্") - ("kh" "খ্") - ("g" "গ্") - ("gh" "ঘ্") - ("~N" "ঙ্") - ("N^" "ঙ্") - ("ch" "চ্") - ("Ch" "ছ্") - ("chh" "ছ্") - ("j" "জ্") - ("jh" "ঝ্") - ("~n" "ঞ্") - ("JN" "ঞ্") - ("T" "ট্") - ("Th" "ঠ্") - ("D" "ড্") - ("Dh" "ঢ্") - ("N" "ণ্") - ("t" "ত্") - ("th" "থ্") - ("d" "দ্") - ("dh" "ধ্") - ("n" "ন্") - ("p" "প্") - ("ph" "ফ্") - ("b" "ব্") - ("bh" "ভ্") - ("m" "ম্") - ("y" "য্") - ("r" "র্") - ("l" "ল্") - ("sh" "শ্") - ("Sh" "ষ্") - ("shh" "ষ্") - ("s" "স্") - ("h" "হ্") - (".D" "ড়্") - (".Dh" "ঢ়্") - ("Y" "য়্") - ("yh" "য়্") - ("GY" "জ্ঞ্") - ("dny" "জ্ঞ্") - ("x" "ক্ষ্")) - - (independent - ("a" "অ") - ("aa" "আ") - ("A" "আ") - ("i" "ই") - ("ii" "ঈ") - ("I" "ঈ") - ("u" "উ") - ("uu" "ঊ") - ("U" "ঊ") - ("RRi" "ঋ") - ("R^i" "ঋ") - ("LLi" "ঌ") - ("L^i" "ঌ") - ("e" "এ") - ("ai" "ঐ") - ("o" "ও") - ("au" "ঔ") - ("RRI" "ৠ") - ("R^I" "ৠ") - ("LLI" "ৡ") - ("L^I" "ৡ") - (".N" "ঁ") - (".n" "ং") - ("M" "ং") - ("H" "ঃ") - (".h" "্") - ("0" "০") - ("1" "১") - ("2" "২") - ("3" "৩") - ("4" "৪") - ("5" "৫") - ("6" "৬") - ("7" "৭") - ("8" "৮") - ("9" "৯") - ("#" "্র") - ("$" "র্") - ("^" "ত্র") - ("*" "শ্র") - ("]" "়") - ((S-\ ) "‌") - ((C-@) "‍")) - - (dependent - ("a" (delete @-) "") - ("aa" (delete @-) "া") - ("A" (delete @-) "া") - ("i" (delete @-) "ি") - ("ii" (delete @-) "ী") - ("I" (delete @-) "ী") - ("u" (delete @-) "ু") - ("uu" (delete @-) "ূ") - ("U" (delete @-) "ূ") - ("RRi" (delete @-) "ৃ") - ("R^i" (delete @-) "ৃ") - ("LLi" (delete @-) "ৢ") - ("L^i" (delete @-) "ৢ") - ("e" (delete @-) "ে") - ("ai" (delete @-) "ৈ") - ("o" (delete @-) "ো") - ("au" (delete @-) "ৌ") - ("RRI" (delete @-) "ৄ") - ("R^I" (delete @-) "ৄ") - ("LLI" (delete @-) "ৣ") - ("L^I" (delete @-) "ৣ")) - - (return - ((Return))) - - (backspace - ((BackSpace) (undo)))) - -(state - (init - (starter (pushback 1) (shift intermediate))) - - (intermediate - (consonant (shift second)) - (independent (shift finish)) - (backspace) - (return (shift init))) - - (second - (consonant) - (dependent (shift finish)) - (backspace) - (return (shift init))) - - (finish - (return) - (t (shift init)))) - -;; Local Variables: -;; coding: utf-8 -;; mode: lisp -;; End: diff --git a/dev-itrans.mim b/dev-itrans.mim deleted file mode 100644 index e608088..0000000 --- a/dev-itrans.mim +++ /dev/null @@ -1,210 +0,0 @@ -;; dev-itrans.mim -- Devanagari input method with ITRANS method -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • dev-itrans.mim -;;; -;;; Input method for Devanagari script with ITRANS method. For the -;;; detail of ITRAN, see the page http://www.aczone.com/itrans/. - -(title "क") - -(map - (starter - (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) - ("0") ("1") ("2") ("3") ("4") - ("5") ("6") ("7") ("8") ("9") - ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") - ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") - ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") - ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") - ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) - - (consonant - ("k" "क्") - ("kh" "ख्") - ("g" "ग्") - ("gh" "घ्") - ("~N" "ङ्") - ("N^" "ङ्") - ("ch" "च्") - ("Ch" "छ्") - ("chh" "छ्") - ("j" "ज्") - ("jh" "झ्") - ("~n" "ञ्") - ("JN" "ञ्") - ("T" "ट्") - ("Th" "ठ्") - ("D" "ड्") - ("Dh" "ढ्") - ("N" "ण्") - ("t" "त्") - ("th" "थ्") - ("d" "द्") - ("dh" "ध्") - ("n" "न्") - ("nh" "ऩ्") - ("p" "प्") - ("ph" "फ्") - ("b" "ब्") - ("bh" "भ्") - ("m" "म्") - ("y" "य्") - ("r" "र्") - ("rh" "ऱ्") - ("l" "ल्") - ("L" "ळ्") - ("ld" "ळ्") - ("v" "व्") - ("w" "व्") - ("sh" "श्") - ("Sh" "ष्") - ("shh" "ष्") - ("s" "स्") - ("h" "ह्") - ("q" "क़्") - ("K" "ख़्") - ("G" "ग़्") - ("J" "ज़्") - ("z" "ज़्") - (".D" "ड़्") - (".Dh" "ढ़्") - ("f" "फ़्") - ("Y" "य़्") - ("yh" "य़्") - ("GY" "ज्ञ्") - ("dny" "ज्ञ्") - ("x" "क्ष्")) - - (independent - ("a" "अ") - ("aa" "आ") - ("A" "आ") - ("i" "इ") - ("ii" "ई") - ("I" "ई") - ("u" "उ") - ("uu" "ऊ") - ("U" "ऊ") - ("RRi" "ऋ") - ("R^i" "ऋ") - ("LLi" "ऌ") - ("L^i" "ऌ") - (".c" "ऍ") - ("e.c" "ऍ") - ("E" "ऎ") - ("e" "ए") - ("ai" "ऐ") - ("o.c" "ऑ") - ("O" "ऒ") - ("o" "ओ") - ("au" "औ") - ("RRI" "ॠ") - ("R^I" "ॠ") - ("LLI" "ॡ") - ("L^I" "ॡ") - (".N" "ँ") - (".n" "ं") - ("M" "ं") - ("H" "ः") - (".a" "ऽ") - (".h" "्") - ("AUM" "ॐ") - ("OM" "ॐ") - (".." "।") - ("0" "०") - ("1" "१") - ("2" "२") - ("3" "३") - ("4" "४") - ("5" "५") - ("6" "६") - ("7" "७") - ("8" "८") - ("9" "९") - ("#" "्र") - ("$" "र्") - ("^" "त्र") - ("*" "श्र") - ("]" "़") - ((S-\ ) "‌") - ((C-@) "‍")) - - (dependent - ("a" (delete @-) "") - ("aa" (delete @-) "ा") - ("A" (delete @-) "ा") - ("i" (delete @-) "ि") - ("ii" (delete @-) "ी") - ("I" (delete @-) "ी") - ("u" (delete @-) "ु") - ("uu" (delete @-) "ू") - ("U" (delete @-) "ू") - ("RRi" (delete @-) "ृ") - ("R^i" (delete @-) "ृ") - ("LLi" (delete @-) "ॢ") - ("L^i" (delete @-) "ॢ") - (".c" (delete @-) "ॅ") - ("e.c" (delete @-) "ॅ") - ("E" (delete @-) "ॆ") - ("e" (delete @-) "े") - ("ai" (delete @-) "ै") - ("o.c" (delete @-) "ॉ") - ("O" (delete @-) "ॊ") - ("o" (delete @-) "ो") - ("au" (delete @-) "ौ") - ("RRI" (delete @-) "ॄ") - ("R^I" (delete @-) "ॄ") - ("LLI" (delete @-) "ॣ") - ("L^I" (delete @-) "ॣ")) - - (return - ((Return))) - - (backspace - ((BackSpace) (undo)))) - -(state - (init - (starter (pushback 1) (shift intermediate))) - - (intermediate - (consonant (shift second)) - (independent (shift finish)) - (backspace) - (return (shift init))) - - (second - (consonant) - (dependent (shift finish)) - (backspace) - (return (shift init))) - - (finish - (return) - (t (shift init)))) - -;; Local Variables: -;; coding: utf-8 -;; mode: lisp -;; End: diff --git a/gjr-itrans.mim b/gjr-itrans.mim deleted file mode 100644 index 6706b7b..0000000 --- a/gjr-itrans.mim +++ /dev/null @@ -1,186 +0,0 @@ -;; gjr-itrans.mim -- Gujarati input method with ITRANS method -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • gjr-itrans.mim -;;; -;;; Input method for Gujarati script with ITRANS method. For the -;;; detail of ITRAN, see the page http://www.aczone.com/itrans/. - -(title "ક") - -(map - (starter - (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) - ("0") ("1") ("2") ("3") ("4") - ("5") ("6") ("7") ("8") ("9") - ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") - ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") - ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") - ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") - ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) - - (consonant - ("k" "ક્") - ("kh" "ખ્") - ("g" "ગ્") - ("gh" "ઘ્") - ("~N" "ઙ્") - ("N^" "ઙ્") - ("ch" "ચ્") - ("Ch" "છ્") - ("chh" "છ્") - ("j" "જ્") - ("jh" "ઝ્") - ("~n" "ઞ્") - ("JN" "ઞ્") - ("T" "ટ્") - ("Th" "ઠ્") - ("D" "ડ્") - ("Dh" "ઢ્") - ("N" "ણ્") - ("t" "ત્") - ("th" "થ્") - ("d" "દ્") - ("dh" "ધ્") - ("n" "ન્") - ("p" "પ્") - ("ph" "ફ્") - ("b" "બ્") - ("bh" "ભ્") - ("m" "મ્") - ("y" "ય્") - ("r" "ર્") - ("l" "લ્") - ("L" "ળ્") - ("ld" "ળ્") - ("v" "વ્") - ("w" "વ્") - ("sh" "શ્") - ("Sh" "ષ્") - ("shh" "ષ્") - ("s" "સ્") - ("h" "હ્") - ("GY" "જ્ઞ્") - ("dny" "જ્ઞ્") - ("x" "ક્ષ્")) - - (independent - ("a" "અ") - ("aa" "આ") - ("A" "આ") - ("i" "ઇ") - ("ii" "ઈ") - ("I" "ઈ") - ("u" "ઉ") - ("uu" "ઊ") - ("U" "ઊ") - ("RRi" "ઋ") - ("R^i" "ઋ") - (".c" "ઍ") - ("e.c" "ઍ") - ("e" "એ") - ("ai" "ઐ") - ("o.c" "ઑ") - ("o" "ઓ") - ("au" "ઔ") - ("RRI" "à« ") - ("R^I" "à« ") - (".N" "ઁ") - (".n" "ં") - ("M" "ં") - ("H" "ઃ") - (".a" "ઽ") - (".h" "્") - ("AUM" "ૐ") - ("OM" "ૐ") - ("0" "૦") - ("1" "૧") - ("2" "૨") - ("3" "à«©") - ("4" "૪") - ("5" "à««") - ("6" "૬") - ("7" "à«­") - ("8" "à«®") - ("9" "૯") - ("#" "્ર") - ("$" "ર્") - ("^" "ત્ર") - ("*" "શ્ર") - ("]" "઼") - ((S-\ ) "‌") - ((C-@) "‍")) - - (dependent - ("a" (delete @-) "") - ("aa" (delete @-) "ા") - ("A" (delete @-) "ા") - ("i" (delete @-) "િ") - ("ii" (delete @-) "ી") - ("I" (delete @-) "ી") - ("u" (delete @-) "ુ") - ("uu" (delete @-) "ૂ") - ("U" (delete @-) "ૂ") - ("RRi" (delete @-) "ૃ") - ("R^i" (delete @-) "ૃ") - (".c" (delete @-) "ૅ") - ("e.c" (delete @-) "ૅ") - ("e" (delete @-) "ે") - ("ai" (delete @-) "ૈ") - ("o.c" (delete @-) "ૉ") - ("o" (delete @-) "ો") - ("au" (delete @-) "ૌ") - ("RRI" (delete @-) "ૄ") - ("R^I" (delete @-) "ૄ")) - - (return - ((Return))) - - (backspace - ((BackSpace) (undo)))) - - -(state - (init - (starter (pushback 1) (shift intermediate))) - - (intermediate - (consonant (shift second)) - (independent (shift finish)) - (backspace) - (return (shift init))) - - (second - (consonant) - (dependent (shift finish)) - (backspace) - (return (shift init))) - - (finish - (return) - (t (shift init)))) - -;; Local Variables: -;; coding: utf-8 -;; mode: lisp -;; End: diff --git a/gu-itrans.mim b/gu-itrans.mim new file mode 100644 index 0000000..6706b7b --- /dev/null +++ b/gu-itrans.mim @@ -0,0 +1,186 @@ +;; gjr-itrans.mim -- Gujarati input method with ITRANS method +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • gjr-itrans.mim +;;; +;;; Input method for Gujarati script with ITRANS method. For the +;;; detail of ITRAN, see the page http://www.aczone.com/itrans/. + +(title "ક") + +(map + (starter + (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) + ("0") ("1") ("2") ("3") ("4") + ("5") ("6") ("7") ("8") ("9") + ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") + ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") + ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") + ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") + ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) + + (consonant + ("k" "ક્") + ("kh" "ખ્") + ("g" "ગ્") + ("gh" "ઘ્") + ("~N" "ઙ્") + ("N^" "ઙ્") + ("ch" "ચ્") + ("Ch" "છ્") + ("chh" "છ્") + ("j" "જ્") + ("jh" "ઝ્") + ("~n" "ઞ્") + ("JN" "ઞ્") + ("T" "ટ્") + ("Th" "ઠ્") + ("D" "ડ્") + ("Dh" "ઢ્") + ("N" "ણ્") + ("t" "ત્") + ("th" "થ્") + ("d" "દ્") + ("dh" "ધ્") + ("n" "ન્") + ("p" "પ્") + ("ph" "ફ્") + ("b" "બ્") + ("bh" "ભ્") + ("m" "મ્") + ("y" "ય્") + ("r" "ર્") + ("l" "લ્") + ("L" "ળ્") + ("ld" "ળ્") + ("v" "વ્") + ("w" "વ્") + ("sh" "શ્") + ("Sh" "ષ્") + ("shh" "ષ્") + ("s" "સ્") + ("h" "હ્") + ("GY" "જ્ઞ્") + ("dny" "જ્ઞ્") + ("x" "ક્ષ્")) + + (independent + ("a" "અ") + ("aa" "આ") + ("A" "આ") + ("i" "ઇ") + ("ii" "ઈ") + ("I" "ઈ") + ("u" "ઉ") + ("uu" "ઊ") + ("U" "ઊ") + ("RRi" "ઋ") + ("R^i" "ઋ") + (".c" "ઍ") + ("e.c" "ઍ") + ("e" "એ") + ("ai" "ઐ") + ("o.c" "ઑ") + ("o" "ઓ") + ("au" "ઔ") + ("RRI" "à« ") + ("R^I" "à« ") + (".N" "ઁ") + (".n" "ં") + ("M" "ં") + ("H" "ઃ") + (".a" "ઽ") + (".h" "્") + ("AUM" "ૐ") + ("OM" "ૐ") + ("0" "૦") + ("1" "૧") + ("2" "૨") + ("3" "à«©") + ("4" "૪") + ("5" "à««") + ("6" "૬") + ("7" "à«­") + ("8" "à«®") + ("9" "૯") + ("#" "્ર") + ("$" "ર્") + ("^" "ત્ર") + ("*" "શ્ર") + ("]" "઼") + ((S-\ ) "‌") + ((C-@) "‍")) + + (dependent + ("a" (delete @-) "") + ("aa" (delete @-) "ા") + ("A" (delete @-) "ા") + ("i" (delete @-) "િ") + ("ii" (delete @-) "ી") + ("I" (delete @-) "ી") + ("u" (delete @-) "ુ") + ("uu" (delete @-) "ૂ") + ("U" (delete @-) "ૂ") + ("RRi" (delete @-) "ૃ") + ("R^i" (delete @-) "ૃ") + (".c" (delete @-) "ૅ") + ("e.c" (delete @-) "ૅ") + ("e" (delete @-) "ે") + ("ai" (delete @-) "ૈ") + ("o.c" (delete @-) "ૉ") + ("o" (delete @-) "ો") + ("au" (delete @-) "ૌ") + ("RRI" (delete @-) "ૄ") + ("R^I" (delete @-) "ૄ")) + + (return + ((Return))) + + (backspace + ((BackSpace) (undo)))) + + +(state + (init + (starter (pushback 1) (shift intermediate))) + + (intermediate + (consonant (shift second)) + (independent (shift finish)) + (backspace) + (return (shift init))) + + (second + (consonant) + (dependent (shift finish)) + (backspace) + (return (shift init))) + + (finish + (return) + (t (shift init)))) + +;; Local Variables: +;; coding: utf-8 +;; mode: lisp +;; End: diff --git a/hi-itrans.mim b/hi-itrans.mim new file mode 100644 index 0000000..e608088 --- /dev/null +++ b/hi-itrans.mim @@ -0,0 +1,210 @@ +;; dev-itrans.mim -- Devanagari input method with ITRANS method +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • dev-itrans.mim +;;; +;;; Input method for Devanagari script with ITRANS method. For the +;;; detail of ITRAN, see the page http://www.aczone.com/itrans/. + +(title "क") + +(map + (starter + (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) + ("0") ("1") ("2") ("3") ("4") + ("5") ("6") ("7") ("8") ("9") + ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") + ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") + ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") + ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") + ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) + + (consonant + ("k" "क्") + ("kh" "ख्") + ("g" "ग्") + ("gh" "घ्") + ("~N" "ङ्") + ("N^" "ङ्") + ("ch" "च्") + ("Ch" "छ्") + ("chh" "छ्") + ("j" "ज्") + ("jh" "झ्") + ("~n" "ञ्") + ("JN" "ञ्") + ("T" "ट्") + ("Th" "ठ्") + ("D" "ड्") + ("Dh" "ढ्") + ("N" "ण्") + ("t" "त्") + ("th" "थ्") + ("d" "द्") + ("dh" "ध्") + ("n" "न्") + ("nh" "ऩ्") + ("p" "प्") + ("ph" "फ्") + ("b" "ब्") + ("bh" "भ्") + ("m" "म्") + ("y" "य्") + ("r" "र्") + ("rh" "ऱ्") + ("l" "ल्") + ("L" "ळ्") + ("ld" "ळ्") + ("v" "व्") + ("w" "व्") + ("sh" "श्") + ("Sh" "ष्") + ("shh" "ष्") + ("s" "स्") + ("h" "ह्") + ("q" "क़्") + ("K" "ख़्") + ("G" "ग़्") + ("J" "ज़्") + ("z" "ज़्") + (".D" "ड़्") + (".Dh" "ढ़्") + ("f" "फ़्") + ("Y" "य़्") + ("yh" "य़्") + ("GY" "ज्ञ्") + ("dny" "ज्ञ्") + ("x" "क्ष्")) + + (independent + ("a" "अ") + ("aa" "आ") + ("A" "आ") + ("i" "इ") + ("ii" "ई") + ("I" "ई") + ("u" "उ") + ("uu" "ऊ") + ("U" "ऊ") + ("RRi" "ऋ") + ("R^i" "ऋ") + ("LLi" "ऌ") + ("L^i" "ऌ") + (".c" "ऍ") + ("e.c" "ऍ") + ("E" "ऎ") + ("e" "ए") + ("ai" "ऐ") + ("o.c" "ऑ") + ("O" "ऒ") + ("o" "ओ") + ("au" "औ") + ("RRI" "ॠ") + ("R^I" "ॠ") + ("LLI" "ॡ") + ("L^I" "ॡ") + (".N" "ँ") + (".n" "ं") + ("M" "ं") + ("H" "ः") + (".a" "ऽ") + (".h" "्") + ("AUM" "ॐ") + ("OM" "ॐ") + (".." "।") + ("0" "०") + ("1" "१") + ("2" "२") + ("3" "३") + ("4" "४") + ("5" "५") + ("6" "६") + ("7" "७") + ("8" "८") + ("9" "९") + ("#" "्र") + ("$" "र्") + ("^" "त्र") + ("*" "श्र") + ("]" "़") + ((S-\ ) "‌") + ((C-@) "‍")) + + (dependent + ("a" (delete @-) "") + ("aa" (delete @-) "ा") + ("A" (delete @-) "ा") + ("i" (delete @-) "ि") + ("ii" (delete @-) "ी") + ("I" (delete @-) "ी") + ("u" (delete @-) "ु") + ("uu" (delete @-) "ू") + ("U" (delete @-) "ू") + ("RRi" (delete @-) "ृ") + ("R^i" (delete @-) "ृ") + ("LLi" (delete @-) "ॢ") + ("L^i" (delete @-) "ॢ") + (".c" (delete @-) "ॅ") + ("e.c" (delete @-) "ॅ") + ("E" (delete @-) "ॆ") + ("e" (delete @-) "े") + ("ai" (delete @-) "ै") + ("o.c" (delete @-) "ॉ") + ("O" (delete @-) "ॊ") + ("o" (delete @-) "ो") + ("au" (delete @-) "ौ") + ("RRI" (delete @-) "ॄ") + ("R^I" (delete @-) "ॄ") + ("LLI" (delete @-) "ॣ") + ("L^I" (delete @-) "ॣ")) + + (return + ((Return))) + + (backspace + ((BackSpace) (undo)))) + +(state + (init + (starter (pushback 1) (shift intermediate))) + + (intermediate + (consonant (shift second)) + (independent (shift finish)) + (backspace) + (return (shift init))) + + (second + (consonant) + (dependent (shift finish)) + (backspace) + (return (shift init))) + + (finish + (return) + (t (shift init)))) + +;; Local Variables: +;; coding: utf-8 +;; mode: lisp +;; End: diff --git a/kh-yannis.mim b/kh-yannis.mim deleted file mode 100644 index cd455a3..0000000 --- a/kh-yannis.mim +++ /dev/null @@ -1,165 +0,0 @@ -;; kh-yannis.mim -- Khmer input method suggested by Dr. Yannis Haralanbous -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • kh-yannis.mim -;;; -;;; Input method for Khmer suggested by Dr. Yannis. - -(title "ក") -(map - (consonant - ("k" "ក") - ("kh" "ខ") - ("K" "គ") - ("Kh" "ឃ") - ("KH" "ឃ") - ("g" "ង") - ("c" "ច") - ("ch" "ឆ") - ("C" "ជ") - ("Ch" "ឈ") - ("CH" "ឈ") - ("j" "ញ") - ("d" "ដ") - ("dh" "ឋ") - ("D" "ឌ") - ("Dh" "ឍ") - ("DH" "ឍ") - ("N" "ណ") - ("t" "ត") - ("th" "ថ") - ("T" "ទ") - ("Th" "ធ") - ("TH" "ធ") - ("n" "ន") - ("b" "ប") - ("ph" "ផ") - ("P" "ព") - ("Ph" "ភ") - ("PH" "ភ") - ("m" "ម") - ("y" "យ") - ("r" "រ") - ("l" "ល") - ("v" "វ") - ("sh" "ឝ") - ("S" "ឞ") - ("s" "ស") - ("h" "ហ") - ("L" "ឡ") - ("'" "អ")) - - (wirama - ("/" "្")) - - (vowel - ("A" "ា") - ("e" "ិ") - ("ey" "ី") - ("u" "ឹ") - ("ui" "ឺ") - ("o" "ុ") - ("ou" "ូ") - ("ua" "ួ") - ("au" "ើ") - ("Iu" "ឿ") - ("Ie" "ៀ") - ("ei" "េ") - ("ae" "ែ") - ("ay" "ៃ") - ("Ao" "ោ") - ("Aw" "ៅ")) - - (quality - ("q1" "៉") - ("q2" "៊")) - - (diacritic - ("M" "ំ") - ("H" "ះ") - (":" "ៈ") - ("D1" "់") - ("D2" "៌") - ("D3" "៍") - ("D4" "៎") - ("D5" "៏") - ("D6" "័")) - - (ind-vowel - ("V1" "ឥ") - ("V2" "ឦ") - ("V3" "ឧ") - ("V4" "ឨ") - ("V5" "ឩ") - ("V6" "ឪ") - ("V7" "ឫ") - ("V8" "ឬ") - ("V9" "ឭ") - ("VA" "ឮ") - ("VB" "ឯ") - ("VC" "ឰ") - ("VD" "ឱ") - ("VE" "ឲ") - ("VF" "ឳ")) - - (misc - ("." "។") - ("=" "៕") - ("%" "៖") - ("]" "ៗ") - ("_" "៘") - ("@" "៙") - (">" "៛") - ("$" "ៜ") - ("/" "្")) - - (space - (" " ""))) - -(state - (init - (consonant (shift c-state)) - (vowel) - (quality) - (diacritic) - (ind-vowel) - (misc)) - - (c-state - (wirama (shift cw-state)) - (space (shift init))) - - (cw-state - (consonant (shift cwc-state)) - (space (shift init))) - - (cwc-state - (wirama (shift cwcw-state)) - (space (shift init))) - - (cwcw-state - (consonant (shift init)))) - -;; Local Variables: -;; mode: lisp -;; End: diff --git a/km-yannis.mim b/km-yannis.mim new file mode 100644 index 0000000..cd455a3 --- /dev/null +++ b/km-yannis.mim @@ -0,0 +1,165 @@ +;; kh-yannis.mim -- Khmer input method suggested by Dr. Yannis Haralanbous +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • kh-yannis.mim +;;; +;;; Input method for Khmer suggested by Dr. Yannis. + +(title "ក") +(map + (consonant + ("k" "ក") + ("kh" "ខ") + ("K" "គ") + ("Kh" "ឃ") + ("KH" "ឃ") + ("g" "ង") + ("c" "ច") + ("ch" "ឆ") + ("C" "ជ") + ("Ch" "ឈ") + ("CH" "ឈ") + ("j" "ញ") + ("d" "ដ") + ("dh" "ឋ") + ("D" "ឌ") + ("Dh" "ឍ") + ("DH" "ឍ") + ("N" "ណ") + ("t" "ត") + ("th" "ថ") + ("T" "ទ") + ("Th" "ធ") + ("TH" "ធ") + ("n" "ន") + ("b" "ប") + ("ph" "ផ") + ("P" "ព") + ("Ph" "ភ") + ("PH" "ភ") + ("m" "ម") + ("y" "យ") + ("r" "រ") + ("l" "ល") + ("v" "វ") + ("sh" "ឝ") + ("S" "ឞ") + ("s" "ស") + ("h" "ហ") + ("L" "ឡ") + ("'" "អ")) + + (wirama + ("/" "្")) + + (vowel + ("A" "ា") + ("e" "ិ") + ("ey" "ី") + ("u" "ឹ") + ("ui" "ឺ") + ("o" "ុ") + ("ou" "ូ") + ("ua" "ួ") + ("au" "ើ") + ("Iu" "ឿ") + ("Ie" "ៀ") + ("ei" "េ") + ("ae" "ែ") + ("ay" "ៃ") + ("Ao" "ោ") + ("Aw" "ៅ")) + + (quality + ("q1" "៉") + ("q2" "៊")) + + (diacritic + ("M" "ំ") + ("H" "ះ") + (":" "ៈ") + ("D1" "់") + ("D2" "៌") + ("D3" "៍") + ("D4" "៎") + ("D5" "៏") + ("D6" "័")) + + (ind-vowel + ("V1" "ឥ") + ("V2" "ឦ") + ("V3" "ឧ") + ("V4" "ឨ") + ("V5" "ឩ") + ("V6" "ឪ") + ("V7" "ឫ") + ("V8" "ឬ") + ("V9" "ឭ") + ("VA" "ឮ") + ("VB" "ឯ") + ("VC" "ឰ") + ("VD" "ឱ") + ("VE" "ឲ") + ("VF" "ឳ")) + + (misc + ("." "។") + ("=" "៕") + ("%" "៖") + ("]" "ៗ") + ("_" "៘") + ("@" "៙") + (">" "៛") + ("$" "ៜ") + ("/" "្")) + + (space + (" " ""))) + +(state + (init + (consonant (shift c-state)) + (vowel) + (quality) + (diacritic) + (ind-vowel) + (misc)) + + (c-state + (wirama (shift cw-state)) + (space (shift init))) + + (cw-state + (consonant (shift cwc-state)) + (space (shift init))) + + (cwc-state + (wirama (shift cwcw-state)) + (space (shift init))) + + (cwcw-state + (consonant (shift init)))) + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/kn-itrans.mim b/kn-itrans.mim new file mode 100644 index 0000000..8782a6c --- /dev/null +++ b/kn-itrans.mim @@ -0,0 +1,189 @@ +;; knd-itrans.mim -- Kannada input method with ITRANS method +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • knd-itrans.mim +;;; +;;; Input method for Kannada script with ITRANS method. For the +;;; detail of ITRAN, see the page http://www.aczone.com/itrans/. + +(title "ಕ") + +(map + (starter + (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) + ("0") ("1") ("2") ("3") ("4") + ("5") ("6") ("7") ("8") ("9") + ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") + ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") + ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") + ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") + ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) + + (consonant + ("k" "ಕ್") + ("kh" "ಖ್") + ("g" "ಗ್") + ("gh" "ಘ್") + ("~N" "ಙ್") + ("N^" "ಙ್") + ("ch" "ಚ್") + ("Ch" "ಛ್") + ("chh" "ಛ್") + ("j" "ಜ್") + ("jh" "ಝ್") + ("~n" "ಞ್") + ("JN" "ಞ್") + ("T" "ಟ್") + ("Th" "ಠ್") + ("D" "ಡ್") + ("Dh" "ಢ್") + ("N" "ಣ್") + ("t" "ತ್") + ("th" "ಥ್") + ("d" "ದ್") + ("dh" "ಧ್") + ("n" "ನ್") + ("p" "ಪ್") + ("ph" "ಫ್") + ("b" "ಬ್") + ("bh" "ಭ್") + ("m" "ಮ್") + ("y" "ಯ್") + ("r" "ರ್") + ("rh" "ಱ್") + ("l" "ಲ್") + ("L" "ಳ್") + ("ld" "ಳ್") + ("v" "ವ್") + ("w" "ವ್") + ("sh" "ಶ್") + ("Sh" "ಷ್") + ("shh" "ಷ್") + ("s" "ಸ್") + ("h" "ಹ್") + ("f" "ೞ್") + ("GY" "ಜ್ಞ್") + ("dny" "ಜ್ಞ್") + ("x" "ಕ್ಷ್")) + + (independent + ("a" "ಅ") + ("aa" "ಆ") + ("A" "ಆ") + ("i" "ಇ") + ("ii" "ಈ") + ("I" "ಈ") + ("u" "ಉ") + ("uu" "ಊ") + ("U" "ಊ") + ("RRi" "ಋ") + ("R^i" "ಋ") + ("LLi" "ಌ") + ("L^i" "ಌ") + ("E" "ಏ") + ("e" "ಎ") + ("ai" "ಐ") + ("O" "ಓ") + ("o" "ಒ") + ("au" "ಔ") + ("RRI" "à³ ") + ("R^I" "à³ ") + ("LLI" "ೡ") + ("L^I" "ೡ") + (".n" "ಂ") + ("M" "ಂ") + ("H" "ಃ") + (".h" "್") + ("0" "೦") + ("1" "೧") + ("2" "೨") + ("3" "೩") + ("4" "೪") + ("5" "೫") + ("6" "೬") + ("7" "à³­") + ("8" "à³®") + ("9" "೯") + ("#" "್ರ") + ("$" "ರ್") + ("^" "ತ್ರ") + ("*" "ಶ್ರ") + ((S-\ ) "‌") + ((C-@) "‍")) + + (dependent + ("a" (delete @-) "") + ("aa" (delete @-) "ಾ") + ("A" (delete @-) "ಾ") + ("i" (delete @-) "ಿ") + ("ii" (delete @-) "ೀ") + ("I" (delete @-) "ೀ") + ("u" (delete @-) "ು") + ("uu" (delete @-) "ೂ") + ("U" (delete @-) "ೂ") + ("RRi" (delete @-) "ೃ") + ("R^i" (delete @-) "ೃ") + ("LLi" (delete @-) "") + ("L^i" (delete @-) "") + ("E" (delete @-) "ೇ") + ("e" (delete @-) "ೆ") + ("ai" (delete @-) "ೈ") + ("O" (delete @-) "ೋ") + ("o" (delete @-) "ೊ") + ("au" (delete @-) "ೌ") + ("RRI" (delete @-) "ೄ") + ("R^I" (delete @-) "ೄ") + ("LLI" (delete @-) "") + ("L^I" (delete @-) "")) + + (return + ((Return))) + + (backspace + ((BackSpace) (undo)))) + + +(state + (init + (starter (pushback 1) (shift intermediate))) + + (intermediate + (consonant (shift second)) + (independent (shift finish)) + (backspace) + (return (shift init))) + + (second + (consonant) + (dependent (shift finish)) + (backspace) + (return (shift init))) + + (finish + (return) + (t (shift init)))) + +;; Local Variables: +;; coding: utf-8 +;; mode: lisp +;; End: diff --git a/knd-itrans.mim b/knd-itrans.mim deleted file mode 100644 index 8782a6c..0000000 --- a/knd-itrans.mim +++ /dev/null @@ -1,189 +0,0 @@ -;; knd-itrans.mim -- Kannada input method with ITRANS method -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • knd-itrans.mim -;;; -;;; Input method for Kannada script with ITRANS method. For the -;;; detail of ITRAN, see the page http://www.aczone.com/itrans/. - -(title "ಕ") - -(map - (starter - (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) - ("0") ("1") ("2") ("3") ("4") - ("5") ("6") ("7") ("8") ("9") - ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") - ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") - ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") - ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") - ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) - - (consonant - ("k" "ಕ್") - ("kh" "ಖ್") - ("g" "ಗ್") - ("gh" "ಘ್") - ("~N" "ಙ್") - ("N^" "ಙ್") - ("ch" "ಚ್") - ("Ch" "ಛ್") - ("chh" "ಛ್") - ("j" "ಜ್") - ("jh" "ಝ್") - ("~n" "ಞ್") - ("JN" "ಞ್") - ("T" "ಟ್") - ("Th" "ಠ್") - ("D" "ಡ್") - ("Dh" "ಢ್") - ("N" "ಣ್") - ("t" "ತ್") - ("th" "ಥ್") - ("d" "ದ್") - ("dh" "ಧ್") - ("n" "ನ್") - ("p" "ಪ್") - ("ph" "ಫ್") - ("b" "ಬ್") - ("bh" "ಭ್") - ("m" "ಮ್") - ("y" "ಯ್") - ("r" "ರ್") - ("rh" "ಱ್") - ("l" "ಲ್") - ("L" "ಳ್") - ("ld" "ಳ್") - ("v" "ವ್") - ("w" "ವ್") - ("sh" "ಶ್") - ("Sh" "ಷ್") - ("shh" "ಷ್") - ("s" "ಸ್") - ("h" "ಹ್") - ("f" "ೞ್") - ("GY" "ಜ್ಞ್") - ("dny" "ಜ್ಞ್") - ("x" "ಕ್ಷ್")) - - (independent - ("a" "ಅ") - ("aa" "ಆ") - ("A" "ಆ") - ("i" "ಇ") - ("ii" "ಈ") - ("I" "ಈ") - ("u" "ಉ") - ("uu" "ಊ") - ("U" "ಊ") - ("RRi" "ಋ") - ("R^i" "ಋ") - ("LLi" "ಌ") - ("L^i" "ಌ") - ("E" "ಏ") - ("e" "ಎ") - ("ai" "ಐ") - ("O" "ಓ") - ("o" "ಒ") - ("au" "ಔ") - ("RRI" "à³ ") - ("R^I" "à³ ") - ("LLI" "ೡ") - ("L^I" "ೡ") - (".n" "ಂ") - ("M" "ಂ") - ("H" "ಃ") - (".h" "್") - ("0" "೦") - ("1" "೧") - ("2" "೨") - ("3" "೩") - ("4" "೪") - ("5" "೫") - ("6" "೬") - ("7" "à³­") - ("8" "à³®") - ("9" "೯") - ("#" "್ರ") - ("$" "ರ್") - ("^" "ತ್ರ") - ("*" "ಶ್ರ") - ((S-\ ) "‌") - ((C-@) "‍")) - - (dependent - ("a" (delete @-) "") - ("aa" (delete @-) "ಾ") - ("A" (delete @-) "ಾ") - ("i" (delete @-) "ಿ") - ("ii" (delete @-) "ೀ") - ("I" (delete @-) "ೀ") - ("u" (delete @-) "ು") - ("uu" (delete @-) "ೂ") - ("U" (delete @-) "ೂ") - ("RRi" (delete @-) "ೃ") - ("R^i" (delete @-) "ೃ") - ("LLi" (delete @-) "") - ("L^i" (delete @-) "") - ("E" (delete @-) "ೇ") - ("e" (delete @-) "ೆ") - ("ai" (delete @-) "ೈ") - ("O" (delete @-) "ೋ") - ("o" (delete @-) "ೊ") - ("au" (delete @-) "ೌ") - ("RRI" (delete @-) "ೄ") - ("R^I" (delete @-) "ೄ") - ("LLI" (delete @-) "") - ("L^I" (delete @-) "")) - - (return - ((Return))) - - (backspace - ((BackSpace) (undo)))) - - -(state - (init - (starter (pushback 1) (shift intermediate))) - - (intermediate - (consonant (shift second)) - (independent (shift finish)) - (backspace) - (return (shift init))) - - (second - (consonant) - (dependent (shift finish)) - (backspace) - (return (shift init))) - - (finish - (return) - (t (shift init)))) - -;; Local Variables: -;; coding: utf-8 -;; mode: lisp -;; End: diff --git a/latin-post.mim b/latin-post.mim deleted file mode 100644 index 761b2a2..0000000 --- a/latin-post.mim +++ /dev/null @@ -1,269 +0,0 @@ -;; latin-post.mim -- Latin input method with postfix modifiers -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database, a sub-part of the m17n library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU General Public License as -;; published by the Free Software Foundation; either version 2, or (at -;; your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with the m17n library; see the file COPYING. If not, write to -;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. - -;;;
  • latin-post.mim -;;; -;;; Input method for Latin script with postfix modifiers. -;;; @image html latin-post.png -;;; @image latex latin-post.eps "Examples" width=\narrowwidth - -;; | mark | postfix | examples -;; |------------+---------+---------- -;; | acute | ' | a' -> á -;; | grave | ` | a` -> à -;; | circumflex | ^ | a^ -> â -;; | diaeresis | " | a" -> ä -;; | tilde | ~ | a~ -> ã -;; | cedilla | , | c, -> ç -;; | ogonek | , | a, -> ą -;; | breve | ~ | g~ -> ğ -;; | caron | ~ | c~ -> č -;; | dbl. acute | : | o: -> ő -;; | ring | . | u. -> ů -;; | dot | . | z. -> ż -;; | stroke | / | l/ -> ł -;; | others | /, etc. | d/ -> ð t/ -> þ a/ -> Ã¥ o/ -> ø -;; | | | ae/ -> æ ij -> ij oe/ -> œ s/ -> ß -;; | | | ?/ -> ¿ !/ -> ¡ // -> ° -;; | | | << -> « >> -> » o_ -> º a_ -> ª -;; -;; Repeating the postfix changes ambiguous combining marks: -;; Ex: A~ -> Ã, A~~ -> Ă, A~~~ -> A~ - -(title "Latin-post") - -(map - (trans - ("!/" "¡") - ("!//" "!/") - ("//" "°") - ("///" "//") - ("<<" "\«") - ("<<<" "<<") - (">>" "\»") - (">>>" ">>") - ("?/" "¿") - ("?//" "?/") - ("$/" "£") - ("$//" "¤") - ("$///" "$/") - - ("A'" "Á") ("a'" "á") - ("A''" "A'") ("a''" "a'") - ("A," "Ą") ("a," "ą") - ("A,," "A,") ("a,," "a,") - ("A-" "Ā") ("a-" "ā") - ("A--" "A-") ("a--" "a-") - ("A/" "Å") ("a/" "Ã¥") - ("A//" "A/") ("a//" "a/") - ("A\"" "Ä") ("a\"" "ä") - ("A\"\"" "A\"") ("a\"\"" "a\"") - ("A^" "Â") ("a^" "â") - ("A^^" "A^") ("a^^" "a^") - ("A`" "À") ("a`" "à") - ("A``" "A`") ("a``" "a`") - ("A~" "Ã") ("a~" "ã") - ("A~~" "Ă") ("a~~" "ă") - ("A~~~" "A~") ("a~~~" "a~") - ("AE/" "Æ") ("ae/" "æ") - ("AE//" "Æ/") ("ae//" "æ/") - ("AE///" "AE/") ("ae///" "ae/") - ("a_" "ª") - ("a__" "a_") - ("C'" "Ć") ("c'" "ć") - ("C''" "C'") ("c''" "c'") - ("C," "Ç") ("c," "ç") - ("C,," "C,") ("c,," "c,") - ("C." "Ċ") ("c." "ċ") - ("C.." "C.") ("c.." "c.") - ("C^" "Ĉ") ("c^" "ĉ") - ("C^^" "C^") ("c^^" "c^") - ("C~" "Č") ("c~" "č") - ("C~~" "C~") ("c~~" "c~") - ("c/" "¢") - ("c//" "c/") - ("D/" "Ð") ("d/" "ð") - ("D//" "Đ") ("d//" "đ") - ("D///" "D/") ("d///" "d/") - ("D~" "Ď") ("d~" "ď") - ("D~~" "D~") ("d~~" "d~") - ("E'" "É") ("e'" "é") - ("E''" "E'") ("e''" "e'") - ("E," "Ę") ("e," "ę") - ("E,," "E,") ("e,," "e,") - ("E-" "Ē") ("e-" "ē") - ("E--" "E-") ("e--" "e-") - ("E." "Ė") ("e." "ė") - ("E.." "E.") ("e.." "e.") - ("E\"" "Ë") ("e\"" "ë") - ("E\"\"" "E\"") ("e\"\"" "e\"") - ("E^" "Ê") ("e^" "ê") - ("E^^" "E^") ("e^^" "e^") - ("E`" "È") ("e`" "è") - ("E``" "E`") ("e``" "e`") - ("E~" "Ě") ("e~" "ě") - ("E~~" "Ĕ") ("e~~" "ĕ") - ("E~~~" "E~") ("e~~~" "e~") - ("e=" "€") - ("e==" "e=") - ("G," "Ä¢") ("g," "Ä£") - ("G,," "G,") ("g,," "g,") - ("G." "Ä ") ("g." "Ä¡") - ("G.." "G.") ("g.." "g.") - ("G^" "Ĝ") ("g^" "ĝ") - ("G^^" "G^") ("g^^" "g^") - ("G~" "Ğ") ("g~" "ğ") - ("G~~" "G~") ("g~~" "g~") - ("H/" "Ħ") ("h/" "ħ") - ("H//" "H/") ("h//" "h/") - ("H^" "Ĥ") ("h^" "Ä¥") - ("H^^" "H^") ("h^^" "h^") - ("I'" "Í") ("i'" "í") - ("I''" "I'") ("i''" "i'") - ("I," "Ä®") ("i," "į") - ("I,," "I,") ("i,," "i,") - ("I-" "Ī") ("i-" "Ä«") - ("I--" "I-") ("i--" "i-") - ("I." "Ä°") ("i." "ı") - ("I.." "I.") ("i.." "i.") - ("I\"" "Ï") ("i\"" "ï") - ("I\"\"" "I\"") ("i\"\"" "i\"") - ("I^" "Î") ("i^" "î") - ("I^^" "I^") ("i^^" "i^") - ("I`" "Ì") ("i`" "ì") - ("I``" "I`") ("i``" "i`") - ("I~" "Ĩ") ("i~" "Ä©") - ("I~~" "Ĭ") ("i~~" "Ä­") - ("I~~~" "I~") ("i~~~" "i~") - ("IJ/" "IJ") ("ij/" "ij") - ("IJ//" "IJ/") ("ij//" "ij/") - ("IJ///" "IJ/") ("ij///" "ij/") - ("J^" "Ä´") ("j^" "ĵ") - ("J^^" "J^") ("j^^" "j^") - ("K," "Ķ") ("k," "Ä·") - ("K,," "K,") ("k,," "k,") - ("k/" "ĸ") - ("k//" "k/") - ("L'" "Ĺ") ("l'" "ĺ") - ("L''" "L'") ("l''" "l'") - ("L," "Ä»") ("l," "ļ") - ("L,," "L,") ("l,," "l,") - ("L." "Ä¿") ("l." "ŀ") - ("L.." "L.") ("l.." "l.") - ("L/" "Ł") ("l/" "ł") - ("L//" "L/") ("l//" "l/") - ("L~" "Ľ") ("l~" "ľ") - ("L~~" "L~") ("l~~" "l~") - ("N'" "Ń") ("n'" "ń") - ("N''" "N'") ("n''" "n'") - ("N," "Ņ") ("n," "ņ") - ("N,," "N,") ("n,," "n,") - ("N/" "Ŋ") ("n/" "ŋ") - ("N//" "N/") ("n//" "n/") - ("N~" "Ñ") ("n~" "ñ") - ("N~~" "Ň") ("n~~" "ň") - ("N~~~" "N~") ("n~~~" "n~") - ("O'" "Ó") ("o'" "ó") - ("O''" "O'") ("o''" "o'") - ("O-" "Ō") ("o-" "ō") - ("O--" "O-") ("o--" "o-") - ("O/" "Ø") ("o/" "ø") - ("O//" "O/") ("o//" "o/") - ("O:" "Ő") ("o:" "ő") - ("O::" "O:") ("o::" "o:") - ("O\"" "Ö") ("o\"" "ö") - ("O\"\"" "O\"") ("o\"\"" "o\"") - ("O^" "Ô") ("o^" "ô") - ("O^^" "O^") ("o^^" "o^") - ("O`" "Ò") ("o`" "ò") - ("O``" "O`") ("o``" "o`") - ("O~" "Õ") ("o~" "õ") - ("O~~" "Ŏ") ("o~~" "ŏ") - ("O~~~" "O~") ("o~~~" "o~") - ("OE/" "Œ") ("oe/" "œ") - ("OE//" "Œ/") ("oe//" "œ/") - ("OE///" "OE/") ("oe///" "oe/") - ("o_" "º") - ("o__" "o_") - ("R'" "Ŕ") ("r'" "ŕ") - ("R''" "R'") ("r''" "r'") - ("R," "Ŗ") ("r," "ŗ") - ("R,," "R,") ("r,," "r,") - ("R~" "Ř") ("r~" "ř") - ("R~~" "R~") ("r~~" "r~") - ("S'" "Ś") ("s'" "ś") - ("S''" "S'") ("s''" "s'") - ("S," "Ş") ("s," "ş") - ("S,," "S,") ("s,," "s,") - ("S^" "Ŝ") ("s^" "ŝ") - ("S^^" "S^") ("s^^" "s^") - ("S~" "Å ") ("s~" "Å¡") - ("S~~" "S~") ("s~~" "s~") - ("s/" "ß") - ("s//" "s/") - ("T," "Å¢") ("t," "Å£") - ("T,," "T,") ("t,," "t,") - ("T/" "Þ") ("t/" "þ") - ("T//" "Ŧ") ("t//" "ŧ") - ("T///" "T/") ("t///" "t/") - ("T~" "Ť") ("t~" "Å¥") - ("T~~" "T~") ("t~~" "t~") - ("U'" "Ú") ("u'" "ú") - ("U''" "U'") ("u''" "u'") - ("U," "Ų") ("u," "ų") - ("U,," "U,") ("u,," "u,") - ("U-" "Ū") ("u-" "Å«") - ("U--" "U-") ("u--" "u-") - ("U/" "Å®") ("u/" "ů") - ("U//" "U/") ("u//" "u/") - ("U:" "Å°") ("u:" "ű") - ("U::" "U:") ("u::" "u:") - ("U\"" "Ü") ("u\"" "ü") - ("U\"\"" "U\"") ("u\"\"" "u\"") - ("U^" "Û") ("u^" "û") - ("U^^" "U^") ("u^^" "u^") - ("U`" "Ù") ("u`" "ù") - ("U``" "U`") ("u``" "u`") - ("U~" "Ũ") ("u~" "Å©") - ("U~~" "Ŭ") ("u~~" "Å­") - ("U~~~" "U~") ("u~~~" "u~") - ("W^" "Å´") ("w^" "ŵ") - ("W^^" "W^") ("w^^" "w^") - ("Y'" "Ý") ("y'" "ý") - ("Y''" "Y'") ("y''" "y'") - ("Y^" "Ŷ") ("y^" "Å·") - ("Y^^" "Y^") ("y^^" "y^") - ("Y\"" "Ÿ") ("y\"" "ÿ") - ("Y\"\"" "Y\"") ("y\"\"" "y\"") - ("Y=" "Â¥") - ("Y==" "Y=") - ("Z'" "Ź") ("z'" "ź") - ("Z''" "Z'") ("z''" "z'") - ("Z." "Å»") ("z." "ż") - ("Z.." "Z.") ("z.." "z.") - ("Z~" "Ž") ("z~" "ž") - ("Z~~" "Z~") ("z~~" "z~") - )) - -(state - (init - (trans))) diff --git a/latn-post.mim b/latn-post.mim new file mode 100644 index 0000000..761b2a2 --- /dev/null +++ b/latn-post.mim @@ -0,0 +1,269 @@ +;; latin-post.mim -- Latin input method with postfix modifiers +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database, a sub-part of the m17n library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or (at +;; your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with the m17n library; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;;
  • latin-post.mim +;;; +;;; Input method for Latin script with postfix modifiers. +;;; @image html latin-post.png +;;; @image latex latin-post.eps "Examples" width=\narrowwidth + +;; | mark | postfix | examples +;; |------------+---------+---------- +;; | acute | ' | a' -> á +;; | grave | ` | a` -> à +;; | circumflex | ^ | a^ -> â +;; | diaeresis | " | a" -> ä +;; | tilde | ~ | a~ -> ã +;; | cedilla | , | c, -> ç +;; | ogonek | , | a, -> ą +;; | breve | ~ | g~ -> ğ +;; | caron | ~ | c~ -> č +;; | dbl. acute | : | o: -> ő +;; | ring | . | u. -> ů +;; | dot | . | z. -> ż +;; | stroke | / | l/ -> ł +;; | others | /, etc. | d/ -> ð t/ -> þ a/ -> Ã¥ o/ -> ø +;; | | | ae/ -> æ ij -> ij oe/ -> œ s/ -> ß +;; | | | ?/ -> ¿ !/ -> ¡ // -> ° +;; | | | << -> « >> -> » o_ -> º a_ -> ª +;; +;; Repeating the postfix changes ambiguous combining marks: +;; Ex: A~ -> Ã, A~~ -> Ă, A~~~ -> A~ + +(title "Latin-post") + +(map + (trans + ("!/" "¡") + ("!//" "!/") + ("//" "°") + ("///" "//") + ("<<" "\«") + ("<<<" "<<") + (">>" "\»") + (">>>" ">>") + ("?/" "¿") + ("?//" "?/") + ("$/" "£") + ("$//" "¤") + ("$///" "$/") + + ("A'" "Á") ("a'" "á") + ("A''" "A'") ("a''" "a'") + ("A," "Ą") ("a," "ą") + ("A,," "A,") ("a,," "a,") + ("A-" "Ā") ("a-" "ā") + ("A--" "A-") ("a--" "a-") + ("A/" "Å") ("a/" "Ã¥") + ("A//" "A/") ("a//" "a/") + ("A\"" "Ä") ("a\"" "ä") + ("A\"\"" "A\"") ("a\"\"" "a\"") + ("A^" "Â") ("a^" "â") + ("A^^" "A^") ("a^^" "a^") + ("A`" "À") ("a`" "à") + ("A``" "A`") ("a``" "a`") + ("A~" "Ã") ("a~" "ã") + ("A~~" "Ă") ("a~~" "ă") + ("A~~~" "A~") ("a~~~" "a~") + ("AE/" "Æ") ("ae/" "æ") + ("AE//" "Æ/") ("ae//" "æ/") + ("AE///" "AE/") ("ae///" "ae/") + ("a_" "ª") + ("a__" "a_") + ("C'" "Ć") ("c'" "ć") + ("C''" "C'") ("c''" "c'") + ("C," "Ç") ("c," "ç") + ("C,," "C,") ("c,," "c,") + ("C." "Ċ") ("c." "ċ") + ("C.." "C.") ("c.." "c.") + ("C^" "Ĉ") ("c^" "ĉ") + ("C^^" "C^") ("c^^" "c^") + ("C~" "Č") ("c~" "č") + ("C~~" "C~") ("c~~" "c~") + ("c/" "¢") + ("c//" "c/") + ("D/" "Ð") ("d/" "ð") + ("D//" "Đ") ("d//" "đ") + ("D///" "D/") ("d///" "d/") + ("D~" "Ď") ("d~" "ď") + ("D~~" "D~") ("d~~" "d~") + ("E'" "É") ("e'" "é") + ("E''" "E'") ("e''" "e'") + ("E," "Ę") ("e," "ę") + ("E,," "E,") ("e,," "e,") + ("E-" "Ē") ("e-" "ē") + ("E--" "E-") ("e--" "e-") + ("E." "Ė") ("e." "ė") + ("E.." "E.") ("e.." "e.") + ("E\"" "Ë") ("e\"" "ë") + ("E\"\"" "E\"") ("e\"\"" "e\"") + ("E^" "Ê") ("e^" "ê") + ("E^^" "E^") ("e^^" "e^") + ("E`" "È") ("e`" "è") + ("E``" "E`") ("e``" "e`") + ("E~" "Ě") ("e~" "ě") + ("E~~" "Ĕ") ("e~~" "ĕ") + ("E~~~" "E~") ("e~~~" "e~") + ("e=" "€") + ("e==" "e=") + ("G," "Ä¢") ("g," "Ä£") + ("G,," "G,") ("g,," "g,") + ("G." "Ä ") ("g." "Ä¡") + ("G.." "G.") ("g.." "g.") + ("G^" "Ĝ") ("g^" "ĝ") + ("G^^" "G^") ("g^^" "g^") + ("G~" "Ğ") ("g~" "ğ") + ("G~~" "G~") ("g~~" "g~") + ("H/" "Ħ") ("h/" "ħ") + ("H//" "H/") ("h//" "h/") + ("H^" "Ĥ") ("h^" "Ä¥") + ("H^^" "H^") ("h^^" "h^") + ("I'" "Í") ("i'" "í") + ("I''" "I'") ("i''" "i'") + ("I," "Ä®") ("i," "į") + ("I,," "I,") ("i,," "i,") + ("I-" "Ī") ("i-" "Ä«") + ("I--" "I-") ("i--" "i-") + ("I." "Ä°") ("i." "ı") + ("I.." "I.") ("i.." "i.") + ("I\"" "Ï") ("i\"" "ï") + ("I\"\"" "I\"") ("i\"\"" "i\"") + ("I^" "Î") ("i^" "î") + ("I^^" "I^") ("i^^" "i^") + ("I`" "Ì") ("i`" "ì") + ("I``" "I`") ("i``" "i`") + ("I~" "Ĩ") ("i~" "Ä©") + ("I~~" "Ĭ") ("i~~" "Ä­") + ("I~~~" "I~") ("i~~~" "i~") + ("IJ/" "IJ") ("ij/" "ij") + ("IJ//" "IJ/") ("ij//" "ij/") + ("IJ///" "IJ/") ("ij///" "ij/") + ("J^" "Ä´") ("j^" "ĵ") + ("J^^" "J^") ("j^^" "j^") + ("K," "Ķ") ("k," "Ä·") + ("K,," "K,") ("k,," "k,") + ("k/" "ĸ") + ("k//" "k/") + ("L'" "Ĺ") ("l'" "ĺ") + ("L''" "L'") ("l''" "l'") + ("L," "Ä»") ("l," "ļ") + ("L,," "L,") ("l,," "l,") + ("L." "Ä¿") ("l." "ŀ") + ("L.." "L.") ("l.." "l.") + ("L/" "Ł") ("l/" "ł") + ("L//" "L/") ("l//" "l/") + ("L~" "Ľ") ("l~" "ľ") + ("L~~" "L~") ("l~~" "l~") + ("N'" "Ń") ("n'" "ń") + ("N''" "N'") ("n''" "n'") + ("N," "Ņ") ("n," "ņ") + ("N,," "N,") ("n,," "n,") + ("N/" "Ŋ") ("n/" "ŋ") + ("N//" "N/") ("n//" "n/") + ("N~" "Ñ") ("n~" "ñ") + ("N~~" "Ň") ("n~~" "ň") + ("N~~~" "N~") ("n~~~" "n~") + ("O'" "Ó") ("o'" "ó") + ("O''" "O'") ("o''" "o'") + ("O-" "Ō") ("o-" "ō") + ("O--" "O-") ("o--" "o-") + ("O/" "Ø") ("o/" "ø") + ("O//" "O/") ("o//" "o/") + ("O:" "Ő") ("o:" "ő") + ("O::" "O:") ("o::" "o:") + ("O\"" "Ö") ("o\"" "ö") + ("O\"\"" "O\"") ("o\"\"" "o\"") + ("O^" "Ô") ("o^" "ô") + ("O^^" "O^") ("o^^" "o^") + ("O`" "Ò") ("o`" "ò") + ("O``" "O`") ("o``" "o`") + ("O~" "Õ") ("o~" "õ") + ("O~~" "Ŏ") ("o~~" "ŏ") + ("O~~~" "O~") ("o~~~" "o~") + ("OE/" "Œ") ("oe/" "œ") + ("OE//" "Œ/") ("oe//" "œ/") + ("OE///" "OE/") ("oe///" "oe/") + ("o_" "º") + ("o__" "o_") + ("R'" "Ŕ") ("r'" "ŕ") + ("R''" "R'") ("r''" "r'") + ("R," "Ŗ") ("r," "ŗ") + ("R,," "R,") ("r,," "r,") + ("R~" "Ř") ("r~" "ř") + ("R~~" "R~") ("r~~" "r~") + ("S'" "Ś") ("s'" "ś") + ("S''" "S'") ("s''" "s'") + ("S," "Ş") ("s," "ş") + ("S,," "S,") ("s,," "s,") + ("S^" "Ŝ") ("s^" "ŝ") + ("S^^" "S^") ("s^^" "s^") + ("S~" "Å ") ("s~" "Å¡") + ("S~~" "S~") ("s~~" "s~") + ("s/" "ß") + ("s//" "s/") + ("T," "Å¢") ("t," "Å£") + ("T,," "T,") ("t,," "t,") + ("T/" "Þ") ("t/" "þ") + ("T//" "Ŧ") ("t//" "ŧ") + ("T///" "T/") ("t///" "t/") + ("T~" "Ť") ("t~" "Å¥") + ("T~~" "T~") ("t~~" "t~") + ("U'" "Ú") ("u'" "ú") + ("U''" "U'") ("u''" "u'") + ("U," "Ų") ("u," "ų") + ("U,," "U,") ("u,," "u,") + ("U-" "Ū") ("u-" "Å«") + ("U--" "U-") ("u--" "u-") + ("U/" "Å®") ("u/" "ů") + ("U//" "U/") ("u//" "u/") + ("U:" "Å°") ("u:" "ű") + ("U::" "U:") ("u::" "u:") + ("U\"" "Ü") ("u\"" "ü") + ("U\"\"" "U\"") ("u\"\"" "u\"") + ("U^" "Û") ("u^" "û") + ("U^^" "U^") ("u^^" "u^") + ("U`" "Ù") ("u`" "ù") + ("U``" "U`") ("u``" "u`") + ("U~" "Ũ") ("u~" "Å©") + ("U~~" "Ŭ") ("u~~" "Å­") + ("U~~~" "U~") ("u~~~" "u~") + ("W^" "Å´") ("w^" "ŵ") + ("W^^" "W^") ("w^^" "w^") + ("Y'" "Ý") ("y'" "ý") + ("Y''" "Y'") ("y''" "y'") + ("Y^" "Ŷ") ("y^" "Å·") + ("Y^^" "Y^") ("y^^" "y^") + ("Y\"" "Ÿ") ("y\"" "ÿ") + ("Y\"\"" "Y\"") ("y\"\"" "y\"") + ("Y=" "Â¥") + ("Y==" "Y=") + ("Z'" "Ź") ("z'" "ź") + ("Z''" "Z'") ("z''" "z'") + ("Z." "Å»") ("z." "ż") + ("Z.." "Z.") ("z.." "z.") + ("Z~" "Ž") ("z~" "ž") + ("Z~~" "Z~") ("z~~" "z~") + )) + +(state + (init + (trans))) diff --git a/mdb.dir b/mdb.dir index 10635f2..a7743bb 100644 --- a/mdb.dir +++ b/mdb.dir @@ -89,6 +89,7 @@ (input-method as itrans "asm-itrans.mim") (input-method bn itrans "bng-itrans.mim") (input-method bo wylie "bo-wylie.mim") +(input-method dv phonetic "dv-phonetic.mim") (input-method el kbd "el-kbd.mim") (input-method en ispell "ispell.mim") (input-method ar kbd "ar-kbd.mim") @@ -121,6 +122,7 @@ (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") ;;; diff --git a/ml-itrans.mim b/ml-itrans.mim new file mode 100644 index 0000000..3442b28 --- /dev/null +++ b/ml-itrans.mim @@ -0,0 +1,179 @@ +;; mlm-itrans.mim -- Malayalam input method with ITRANS method +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • mlm-itrans.mim +;;; +;;; Input method for Malayalam script with ITRANS method. For the +;;; detail of ITRAN, see the page http://www.aczone.com/itrans/. + +(title "ക") + +(map + (starter + (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) + ("0") ("1") ("2") ("3") ("4") + ("5") ("6") ("7") ("8") ("9") + ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") + ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") + ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") + ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") + ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) + + (consonant + ("k" "ക്") + ("kh" "ഖ്") + ("g" "ഗ്") + ("gh" "ഘ്") + ("~N" "ങ്") + ("N^" "ങ്") + ("ch" "ച്") + ("Ch" "ഛ്") + ("chh" "ഛ്") + ("j" "ജ്") + ("jh" "ഝ്") + ("~n" "ഞ്") + ("JN" "ഞ്") + ("T" "ട്") + ("Th" "ഠ്") + ("D" "ഡ്") + ("Dh" "ഢ്") + ("N" "ണ്") + ("t" "ത്") + ("th" "ഥ്") + ("d" "ദ്") + ("dh" "ധ്") + ("n" "ന്") + ("p" "പ്") + ("ph" "ഫ്") + ("b" "ബ്") + ("bh" "ഭ്") + ("m" "മ്") + ("y" "യ്") + ("r" "ര്") + ("rh" "റ്") + ("l" "ല്") + ("L" "ള്") + ("ld" "ള്") + ("v" "വ്") + ("w" "വ്") + ("sh" "ശ്") + ("Sh" "ഷ്") + ("shh" "ഷ്") + ("s" "സ്") + ("h" "ഹ്") + ("GY" "ജ്ഞ്") + ("dny" "ജ്ഞ്") + ("x" "ക്ഷ്")) + + (independent + ("a" "അ") + ("aa" "ആ") + ("A" "ആ") + ("i" "ഇ") + ("ii" "ഈ") + ("I" "ഈ") + ("u" "ഉ") + ("uu" "ഊ") + ("U" "ഊ") + ("RRi" "ഋ") + ("R^i" "ഋ") + ("LLi" "ഌ") + ("L^i" "ഌ") + ("E" "ഏ") + ("e" "എ") + ("ai" "ഐ") + ("O" "ഓ") + ("o" "ഒ") + ("au" "ഔ") + (".n" "ം") + ("M" "ം") + ("H" "ഃ") + (".h" "്") + ("0" "൦") + ("1" "൧") + ("2" "൨") + ("3" "൩") + ("4" "൪") + ("5" "൫") + ("6" "൬") + ("7" "൭") + ("8" "൮") + ("9" "൯") + ("#" "്ര") + ("$" "ര്") + ("^" "ത്ര") + ("*" "ശ്ര") + ((S-\ ) "‌") + ((C-@) "‍")) + + (dependent + ("a" (delete @-) "") + ("aa" (delete @-) "à´¾") + ("A" (delete @-) "à´¾") + ("i" (delete @-) "à´¿") + ("ii" (delete @-) "ീ") + ("I" (delete @-) "ീ") + ("u" (delete @-) "ു") + ("uu" (delete @-) "ൂ") + ("U" (delete @-) "ൂ") + ("RRi" (delete @-) "ൃ") + ("R^i" (delete @-) "ൃ") + ("LLi" (delete @-) "") + ("L^i" (delete @-) "") + ("E" (delete @-) "േ") + ("e" (delete @-) "െ") + ("ai" (delete @-) "ൈ") + ("O" (delete @-) "ോ") + ("o" (delete @-) "ൊ") + ("au" (delete @-) "ൌ")) + + (return + ((Return))) + + (backspace + ((BackSpace) (undo)))) + +(state + (init + (starter (pushback 1) (shift intermediate))) + + (intermediate + (consonant (shift second)) + (independent (shift finish)) + (backspace) + (return (shift init))) + + (second + (consonant) + (dependent (shift finish)) + (backspace) + (return (shift init))) + + (finish + (return) + (t (shift init)))) + +;; Local Variables: +;; coding: utf-8 +;; mode: lisp +;; End: diff --git a/mlm-itrans.mim b/mlm-itrans.mim deleted file mode 100644 index 3442b28..0000000 --- a/mlm-itrans.mim +++ /dev/null @@ -1,179 +0,0 @@ -;; mlm-itrans.mim -- Malayalam input method with ITRANS method -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • mlm-itrans.mim -;;; -;;; Input method for Malayalam script with ITRANS method. For the -;;; detail of ITRAN, see the page http://www.aczone.com/itrans/. - -(title "ക") - -(map - (starter - (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) - ("0") ("1") ("2") ("3") ("4") - ("5") ("6") ("7") ("8") ("9") - ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") - ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") - ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") - ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") - ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) - - (consonant - ("k" "ക്") - ("kh" "ഖ്") - ("g" "ഗ്") - ("gh" "ഘ്") - ("~N" "ങ്") - ("N^" "ങ്") - ("ch" "ച്") - ("Ch" "ഛ്") - ("chh" "ഛ്") - ("j" "ജ്") - ("jh" "ഝ്") - ("~n" "ഞ്") - ("JN" "ഞ്") - ("T" "ട്") - ("Th" "ഠ്") - ("D" "ഡ്") - ("Dh" "ഢ്") - ("N" "ണ്") - ("t" "ത്") - ("th" "ഥ്") - ("d" "ദ്") - ("dh" "ധ്") - ("n" "ന്") - ("p" "പ്") - ("ph" "ഫ്") - ("b" "ബ്") - ("bh" "ഭ്") - ("m" "മ്") - ("y" "യ്") - ("r" "ര്") - ("rh" "റ്") - ("l" "ല്") - ("L" "ള്") - ("ld" "ള്") - ("v" "വ്") - ("w" "വ്") - ("sh" "ശ്") - ("Sh" "ഷ്") - ("shh" "ഷ്") - ("s" "സ്") - ("h" "ഹ്") - ("GY" "ജ്ഞ്") - ("dny" "ജ്ഞ്") - ("x" "ക്ഷ്")) - - (independent - ("a" "അ") - ("aa" "ആ") - ("A" "ആ") - ("i" "ഇ") - ("ii" "ഈ") - ("I" "ഈ") - ("u" "ഉ") - ("uu" "ഊ") - ("U" "ഊ") - ("RRi" "ഋ") - ("R^i" "ഋ") - ("LLi" "ഌ") - ("L^i" "ഌ") - ("E" "ഏ") - ("e" "എ") - ("ai" "ഐ") - ("O" "ഓ") - ("o" "ഒ") - ("au" "ഔ") - (".n" "ം") - ("M" "ം") - ("H" "ഃ") - (".h" "്") - ("0" "൦") - ("1" "൧") - ("2" "൨") - ("3" "൩") - ("4" "൪") - ("5" "൫") - ("6" "൬") - ("7" "൭") - ("8" "൮") - ("9" "൯") - ("#" "്ര") - ("$" "ര്") - ("^" "ത്ര") - ("*" "ശ്ര") - ((S-\ ) "‌") - ((C-@) "‍")) - - (dependent - ("a" (delete @-) "") - ("aa" (delete @-) "à´¾") - ("A" (delete @-) "à´¾") - ("i" (delete @-) "à´¿") - ("ii" (delete @-) "ീ") - ("I" (delete @-) "ീ") - ("u" (delete @-) "ു") - ("uu" (delete @-) "ൂ") - ("U" (delete @-) "ൂ") - ("RRi" (delete @-) "ൃ") - ("R^i" (delete @-) "ൃ") - ("LLi" (delete @-) "") - ("L^i" (delete @-) "") - ("E" (delete @-) "േ") - ("e" (delete @-) "െ") - ("ai" (delete @-) "ൈ") - ("O" (delete @-) "ോ") - ("o" (delete @-) "ൊ") - ("au" (delete @-) "ൌ")) - - (return - ((Return))) - - (backspace - ((BackSpace) (undo)))) - -(state - (init - (starter (pushback 1) (shift intermediate))) - - (intermediate - (consonant (shift second)) - (independent (shift finish)) - (backspace) - (return (shift init))) - - (second - (consonant) - (dependent (shift finish)) - (backspace) - (return (shift init))) - - (finish - (return) - (t (shift init)))) - -;; Local Variables: -;; coding: utf-8 -;; mode: lisp -;; End: diff --git a/or-itrans.mim b/or-itrans.mim new file mode 100644 index 0000000..825a2b8 --- /dev/null +++ b/or-itrans.mim @@ -0,0 +1,187 @@ +;; ori-itrans.mim -- Oriya input method with ITRANS method +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • ori-itrans.mim +;;; +;;; Input method for Oriya script with ITRANS method. For the detail +;;; of ITRAN, see the page http://www.aczone.com/itrans/. + +(title "କ") + +(map + (starter + (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) + ("0") ("1") ("2") ("3") ("4") + ("5") ("6") ("7") ("8") ("9") + ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") + ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") + ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") + ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") + ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) + + (consonant + ("k" "କ୍") + ("kh" "ଖ୍") + ("g" "ଗ୍") + ("gh" "ଘ୍") + ("~N" "ଙ୍") + ("N^" "ଙ୍") + ("ch" "ଚ୍") + ("Ch" "ଛ୍") + ("chh" "ଛ୍") + ("j" "ଜ୍") + ("jh" "ଝ୍") + ("~n" "ଞ୍") + ("JN" "ଞ୍") + ("T" "ଟ୍") + ("Th" "ଠ୍") + ("D" "ଡ୍") + ("Dh" "ଢ୍") + ("N" "ଣ୍") + ("t" "ତ୍") + ("th" "ଥ୍") + ("d" "ଦ୍") + ("dh" "ଧ୍") + ("n" "ନ୍") + ("p" "ପ୍") + ("ph" "ଫ୍") + ("b" "ବ୍") + ("bh" "ଭ୍") + ("m" "ମ୍") + ("y" "ଯ୍") + ("r" "ର୍") + ("l" "ଲ୍") + ("L" "ଳ୍") + ("ld" "ଳ୍") + ("sh" "ଶ୍") + ("Sh" "ଷ୍") + ("shh" "ଷ୍") + ("s" "ସ୍") + ("h" "ହ୍") + (".D" "ଡ଼୍") + (".Dh" "ଢ଼୍") + ("Y" "ୟ୍") + ("yh" "ୟ୍") + ("GY" "ଜ୍ଞ୍") + ("dny" "ଜ୍ଞ୍") + ("x" "କ୍ଷ୍")) + + (independent + ("a" "ଅ") + ("aa" "ଆ") + ("A" "ଆ") + ("i" "ଇ") + ("ii" "ଈ") + ("I" "ଈ") + ("u" "ଉ") + ("uu" "ଊ") + ("U" "ଊ") + ("RRi" "ଋ") + ("R^i" "ଋ") + ("LLi" "ଌ") + ("L^i" "ଌ") + ("e" "ଏ") + ("ai" "ଐ") + ("o" "ଓ") + ("au" "ଔ") + ("RRI" "à­ ") + ("R^I" "à­ ") + ("LLI" "à­¡") + ("L^I" "à­¡") + (".N" "ଁ") + (".n" "ଂ") + ("M" "ଂ") + ("H" "ଃ") + (".a" "ଽ") + (".h" "୍") + ("0" "à­¦") + ("1" "à­§") + ("2" "à­¨") + ("3" "à­©") + ("4" "à­ª") + ("5" "à­«") + ("6" "à­¬") + ("7" "à­­") + ("8" "à­®") + ("9" "à­¯") + ("#" "୍ର") + ("$" "ର୍") + ("^" "ତ୍ର") + ("*" "ଶ୍ର") + ("]" "଼") + ((S-\ ) "‌") + ((C-@) "‍")) + + (dependent + ("a" (delete @-) "") + ("aa" (delete @-) "ା") + ("A" (delete @-) "ା") + ("i" (delete @-) "ି") + ("ii" (delete @-) "ୀ") + ("I" (delete @-) "ୀ") + ("u" (delete @-) "ୁ") + ("uu" (delete @-) "ୂ") + ("U" (delete @-) "ୂ") + ("RRi" (delete @-) "ୃ") + ("R^i" (delete @-) "ୃ") + ("LLi" (delete @-) "") + ("L^i" (delete @-) "") + ("e" (delete @-) "େ") + ("ai" (delete @-) "ୈ") + ("o" (delete @-) "ୋ") + ("au" (delete @-) "ୌ") + ("RRI" (delete @-) "") + ("R^I" (delete @-) "") + ("LLI" (delete @-) "") + ("L^I" (delete @-) "")) + + (return + ((Return))) + + (backspace + ((BackSpace) (undo)))) + +(state + (init + (starter (pushback 1) (shift intermediate))) + + (intermediate + (consonant (shift second)) + (independent (shift finish)) + (backspace) + (return (shift init))) + + (second + (consonant) + (dependent (shift finish)) + (backspace) + (return (shift init))) + + (finish + (return) + (t (shift init)))) + +;; Local Variables: +;; coding: utf-8 +;; mode: lisp +;; End: diff --git a/ori-itrans.mim b/ori-itrans.mim deleted file mode 100644 index 825a2b8..0000000 --- a/ori-itrans.mim +++ /dev/null @@ -1,187 +0,0 @@ -;; ori-itrans.mim -- Oriya input method with ITRANS method -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • ori-itrans.mim -;;; -;;; Input method for Oriya script with ITRANS method. For the detail -;;; of ITRAN, see the page http://www.aczone.com/itrans/. - -(title "କ") - -(map - (starter - (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) - ("0") ("1") ("2") ("3") ("4") - ("5") ("6") ("7") ("8") ("9") - ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") - ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") - ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") - ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") - ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) - - (consonant - ("k" "କ୍") - ("kh" "ଖ୍") - ("g" "ଗ୍") - ("gh" "ଘ୍") - ("~N" "ଙ୍") - ("N^" "ଙ୍") - ("ch" "ଚ୍") - ("Ch" "ଛ୍") - ("chh" "ଛ୍") - ("j" "ଜ୍") - ("jh" "ଝ୍") - ("~n" "ଞ୍") - ("JN" "ଞ୍") - ("T" "ଟ୍") - ("Th" "ଠ୍") - ("D" "ଡ୍") - ("Dh" "ଢ୍") - ("N" "ଣ୍") - ("t" "ତ୍") - ("th" "ଥ୍") - ("d" "ଦ୍") - ("dh" "ଧ୍") - ("n" "ନ୍") - ("p" "ପ୍") - ("ph" "ଫ୍") - ("b" "ବ୍") - ("bh" "ଭ୍") - ("m" "ମ୍") - ("y" "ଯ୍") - ("r" "ର୍") - ("l" "ଲ୍") - ("L" "ଳ୍") - ("ld" "ଳ୍") - ("sh" "ଶ୍") - ("Sh" "ଷ୍") - ("shh" "ଷ୍") - ("s" "ସ୍") - ("h" "ହ୍") - (".D" "ଡ଼୍") - (".Dh" "ଢ଼୍") - ("Y" "ୟ୍") - ("yh" "ୟ୍") - ("GY" "ଜ୍ଞ୍") - ("dny" "ଜ୍ଞ୍") - ("x" "କ୍ଷ୍")) - - (independent - ("a" "ଅ") - ("aa" "ଆ") - ("A" "ଆ") - ("i" "ଇ") - ("ii" "ଈ") - ("I" "ଈ") - ("u" "ଉ") - ("uu" "ଊ") - ("U" "ଊ") - ("RRi" "ଋ") - ("R^i" "ଋ") - ("LLi" "ଌ") - ("L^i" "ଌ") - ("e" "ଏ") - ("ai" "ଐ") - ("o" "ଓ") - ("au" "ଔ") - ("RRI" "à­ ") - ("R^I" "à­ ") - ("LLI" "à­¡") - ("L^I" "à­¡") - (".N" "ଁ") - (".n" "ଂ") - ("M" "ଂ") - ("H" "ଃ") - (".a" "ଽ") - (".h" "୍") - ("0" "à­¦") - ("1" "à­§") - ("2" "à­¨") - ("3" "à­©") - ("4" "à­ª") - ("5" "à­«") - ("6" "à­¬") - ("7" "à­­") - ("8" "à­®") - ("9" "à­¯") - ("#" "୍ର") - ("$" "ର୍") - ("^" "ତ୍ର") - ("*" "ଶ୍ର") - ("]" "଼") - ((S-\ ) "‌") - ((C-@) "‍")) - - (dependent - ("a" (delete @-) "") - ("aa" (delete @-) "ା") - ("A" (delete @-) "ା") - ("i" (delete @-) "ି") - ("ii" (delete @-) "ୀ") - ("I" (delete @-) "ୀ") - ("u" (delete @-) "ୁ") - ("uu" (delete @-) "ୂ") - ("U" (delete @-) "ୂ") - ("RRi" (delete @-) "ୃ") - ("R^i" (delete @-) "ୃ") - ("LLi" (delete @-) "") - ("L^i" (delete @-) "") - ("e" (delete @-) "େ") - ("ai" (delete @-) "ୈ") - ("o" (delete @-) "ୋ") - ("au" (delete @-) "ୌ") - ("RRI" (delete @-) "") - ("R^I" (delete @-) "") - ("LLI" (delete @-) "") - ("L^I" (delete @-) "")) - - (return - ((Return))) - - (backspace - ((BackSpace) (undo)))) - -(state - (init - (starter (pushback 1) (shift intermediate))) - - (intermediate - (consonant (shift second)) - (independent (shift finish)) - (backspace) - (return (shift init))) - - (second - (consonant) - (dependent (shift finish)) - (backspace) - (return (shift init))) - - (finish - (return) - (t (shift init)))) - -;; Local Variables: -;; coding: utf-8 -;; mode: lisp -;; End: diff --git a/pa-itrans.mim b/pa-itrans.mim new file mode 100644 index 0000000..261ef71 --- /dev/null +++ b/pa-itrans.mim @@ -0,0 +1,171 @@ +;; pnj-itrans.mim -- Punjabi input method with ITRANS method +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • pnj-itrans.mim +;;; +;;; Input method for Gurmukhi script (Punjabi language) with ITRANS +;;; method. For the detail of ITRAN, see the page +;;; http://www.aczone.com/itrans/. + +(title "ਕ") + +(map + (starter + (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) + ("0") ("1") ("2") ("3") ("4") + ("5") ("6") ("7") ("8") ("9") + ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") + ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") + ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") + ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") + ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) + + (consonant + ("k" "ਕ੍") + ("kh" "ਖ੍") + ("g" "ਗ੍") + ("gh" "ਘ੍") + ("~N" "ਙ੍") + ("N^" "ਙ੍") + ("ch" "ਚ੍") + ("Ch" "ਛ੍") + ("chh" "ਛ੍") + ("j" "ਜ੍") + ("jh" "ਝ੍") + ("~n" "ਞ੍") + ("JN" "ਞ੍") + ("T" "ਟ੍") + ("Th" "ਠ੍") + ("D" "ਡ੍") + ("Dh" "ਢ੍") + ("N" "ਣ੍") + ("t" "ਤ੍") + ("th" "ਥ੍") + ("d" "ਦ੍") + ("dh" "ਧ੍") + ("n" "ਨ੍") + ("p" "ਪ੍") + ("ph" "ਫ੍") + ("b" "ਬ੍") + ("bh" "ਭ੍") + ("m" "ਮ੍") + ("y" "ਯ੍") + ("r" "ਰ੍") + ("l" "ਲ੍") + ("L" "ਲ਼੍") + ("ld" "ਲ਼੍") + ("v" "ਵ੍") + ("w" "ਵ੍") + ("sh" "ਸ਼੍") + ("s" "ਸ੍") + ("h" "ਹ੍") + ("K" "ਖ਼੍") + ("G" "ਗ਼੍") + ("J" "ਜ਼੍") + ("z" "ਜ਼੍") + (".D" "ੜ੍") + ("f" "ਫ਼੍") + ("GY" "ਜ੍ਞ੍") + ("dny" "ਜ੍ਞ੍")) + + (independent + ("a" "ਅ") + ("aa" "ਆ") + ("A" "ਆ") + ("i" "ਇ") + ("ii" "ਈ") + ("I" "ਈ") + ("u" "ਉ") + ("uu" "ਊ") + ("U" "ਊ") + ("e" "ਏ") + ("ai" "ਐ") + ("o" "ਓ") + ("au" "ਔ") + (".n" "ਂ") + ("M" "ਂ") + (".h" "੍") + ("0" "੦") + ("1" "੧") + ("2" "੨") + ("3" "à©©") + ("4" "੪") + ("5" "à©«") + ("6" "੬") + ("7" "à©­") + ("8" "à©®") + ("9" "੯") + ("#" "੍ਰ") + ("$" "ਰ੍") + ("^" "ਤ੍ਰ") + ("*" "ਸ਼੍ਰ") + ("]" "਼") + ((S-\ ) "‌") + ((C-@) "‍")) + + (dependent + ("a" (delete @-) "") + ("aa" (delete @-) "ਾ") + ("A" (delete @-) "ਾ") + ("i" (delete @-) "ਿ") + ("ii" (delete @-) "ੀ") + ("I" (delete @-) "ੀ") + ("u" (delete @-) "ੁ") + ("uu" (delete @-) "ੂ") + ("U" (delete @-) "ੂ") + ("e" (delete @-) "ੇ") + ("ai" (delete @-) "ੈ") + ("o" (delete @-) "ੋ") + ("au" (delete @-) "ੌ")) + + (return + ((Return))) + + (backspace + ((BackSpace) (undo)))) + + +(state + (init + (starter (pushback 1) (shift intermediate))) + + (intermediate + (consonant (shift second)) + (independent (shift finish)) + (backspace) + (return (shift init))) + + (second + (consonant) + (dependent (shift finish)) + (backspace) + (return (shift init))) + + (finish + (return) + (t (shift init)))) + +;; Local Variables: +;; coding: utf-8 +;; mode: lisp +;; End: diff --git a/pnj-itrans.mim b/pnj-itrans.mim deleted file mode 100644 index 261ef71..0000000 --- a/pnj-itrans.mim +++ /dev/null @@ -1,171 +0,0 @@ -;; pnj-itrans.mim -- Punjabi input method with ITRANS method -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • pnj-itrans.mim -;;; -;;; Input method for Gurmukhi script (Punjabi language) with ITRANS -;;; method. For the detail of ITRAN, see the page -;;; http://www.aczone.com/itrans/. - -(title "ਕ") - -(map - (starter - (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) - ("0") ("1") ("2") ("3") ("4") - ("5") ("6") ("7") ("8") ("9") - ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") - ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") - ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") - ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") - ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) - - (consonant - ("k" "ਕ੍") - ("kh" "ਖ੍") - ("g" "ਗ੍") - ("gh" "ਘ੍") - ("~N" "ਙ੍") - ("N^" "ਙ੍") - ("ch" "ਚ੍") - ("Ch" "ਛ੍") - ("chh" "ਛ੍") - ("j" "ਜ੍") - ("jh" "ਝ੍") - ("~n" "ਞ੍") - ("JN" "ਞ੍") - ("T" "ਟ੍") - ("Th" "ਠ੍") - ("D" "ਡ੍") - ("Dh" "ਢ੍") - ("N" "ਣ੍") - ("t" "ਤ੍") - ("th" "ਥ੍") - ("d" "ਦ੍") - ("dh" "ਧ੍") - ("n" "ਨ੍") - ("p" "ਪ੍") - ("ph" "ਫ੍") - ("b" "ਬ੍") - ("bh" "ਭ੍") - ("m" "ਮ੍") - ("y" "ਯ੍") - ("r" "ਰ੍") - ("l" "ਲ੍") - ("L" "ਲ਼੍") - ("ld" "ਲ਼੍") - ("v" "ਵ੍") - ("w" "ਵ੍") - ("sh" "ਸ਼੍") - ("s" "ਸ੍") - ("h" "ਹ੍") - ("K" "ਖ਼੍") - ("G" "ਗ਼੍") - ("J" "ਜ਼੍") - ("z" "ਜ਼੍") - (".D" "ੜ੍") - ("f" "ਫ਼੍") - ("GY" "ਜ੍ਞ੍") - ("dny" "ਜ੍ਞ੍")) - - (independent - ("a" "ਅ") - ("aa" "ਆ") - ("A" "ਆ") - ("i" "ਇ") - ("ii" "ਈ") - ("I" "ਈ") - ("u" "ਉ") - ("uu" "ਊ") - ("U" "ਊ") - ("e" "ਏ") - ("ai" "ਐ") - ("o" "ਓ") - ("au" "ਔ") - (".n" "ਂ") - ("M" "ਂ") - (".h" "੍") - ("0" "੦") - ("1" "੧") - ("2" "੨") - ("3" "à©©") - ("4" "੪") - ("5" "à©«") - ("6" "੬") - ("7" "à©­") - ("8" "à©®") - ("9" "੯") - ("#" "੍ਰ") - ("$" "ਰ੍") - ("^" "ਤ੍ਰ") - ("*" "ਸ਼੍ਰ") - ("]" "਼") - ((S-\ ) "‌") - ((C-@) "‍")) - - (dependent - ("a" (delete @-) "") - ("aa" (delete @-) "ਾ") - ("A" (delete @-) "ਾ") - ("i" (delete @-) "ਿ") - ("ii" (delete @-) "ੀ") - ("I" (delete @-) "ੀ") - ("u" (delete @-) "ੁ") - ("uu" (delete @-) "ੂ") - ("U" (delete @-) "ੂ") - ("e" (delete @-) "ੇ") - ("ai" (delete @-) "ੈ") - ("o" (delete @-) "ੋ") - ("au" (delete @-) "ੌ")) - - (return - ((Return))) - - (backspace - ((BackSpace) (undo)))) - - -(state - (init - (starter (pushback 1) (shift intermediate))) - - (intermediate - (consonant (shift second)) - (independent (shift finish)) - (backspace) - (return (shift init))) - - (second - (consonant) - (dependent (shift finish)) - (backspace) - (return (shift init))) - - (finish - (return) - (t (shift init)))) - -;; Local Variables: -;; coding: utf-8 -;; mode: lisp -;; End: diff --git a/ta-itrans.mim b/ta-itrans.mim new file mode 100644 index 0000000..c6be8f6 --- /dev/null +++ b/ta-itrans.mim @@ -0,0 +1,155 @@ +;; tml-itrans.mim -- Tamil input method with ITRANS method +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • tml-itrans.mim +;;; +;;; Input method for Tamil script with ITRANS method. For the detail +;;; of ITRAN, see the page http://www.aczone.com/itrans/. + +(title "க") + +(map + (starter + (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) + ("0") ("1") ("2") ("3") ("4") + ("5") ("6") ("7") ("8") ("9") + ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") + ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") + ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") + ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") + ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) + + (consonant + ("k" "க்") + ("~N" "ங்") + ("N^" "ங்") + ("ch" "ச்") + ("j" "ஜ்") + ("~n" "ஞ்") + ("JN" "ஞ்") + ("T" "ட்") + ("N" "ண்") + ("t" "த்") + ("n" "ந்") + ("nh" "ன்") + ("p" "ப்") + ("m" "ம்") + ("y" "ய்") + ("r" "ர்") + ("rh" "ற்") + ("l" "ல்") + ("L" "ள்") + ("ld" "ள்") + ("v" "வ்") + ("w" "வ்") + ("Sh" "ஷ்") + ("shh" "ஷ்") + ("s" "ஸ்") + ("h" "ஹ்") + ("GY" "ஜ்ஞ்") + ("dny" "ஜ்ஞ்") + ("x" "க்ஷ்")) + + (independent + ("a" "அ") + ("aa" "ஆ") + ("A" "ஆ") + ("i" "இ") + ("ii" "ஈ") + ("I" "ஈ") + ("u" "உ") + ("uu" "ஊ") + ("U" "ஊ") + ("E" "ஏ") + ("e" "எ") + ("ai" "ஐ") + ("O" "ஓ") + ("o" "ஒ") + ("au" "ஔ") + (".n" "ஂ") + ("M" "ஂ") + ("H" "ஃ") + (".h" "்") + ("1" "௧") + ("2" "௨") + ("3" "௩") + ("4" "௪") + ("5" "௫") + ("6" "௬") + ("7" "௭") + ("8" "௮") + ("9" "௯") + ("#" "்ர") + ("$" "ர்") + ("^" "த்ர") + ((S-\ ) "‌") + ((C-@) "‍")) + + (dependent + ("a" (delete @-) "") + ("aa" (delete @-) "ா") + ("A" (delete @-) "ா") + ("i" (delete @-) "ி") + ("ii" (delete @-) "ீ") + ("I" (delete @-) "ீ") + ("u" (delete @-) "ு") + ("uu" (delete @-) "ூ") + ("U" (delete @-) "ூ") + ("E" (delete @-) "ே") + ("e" (delete @-) "ெ") + ("ai" (delete @-) "ை") + ("O" (delete @-) "ோ") + ("o" (delete @-) "ொ") + ("au" (delete @-) "ௌ")) + + (return + ((Return))) + + (backspace + ((BackSpace) (undo)))) + +(state + (init + (starter (pushback 1) (shift intermediate))) + + (intermediate + (consonant (shift second)) + (independent (shift finish)) + (backspace) + (return (shift init)) + (nil (shift init))) + + (second + (consonant) + (dependent (shift finish)) + (backspace) + (return (shift init))) + + (finish + (return) + (t (shift init)))) + +;; Local Variables: +;; coding: utf-8 +;; mode: lisp +;; End: diff --git a/te-itrans.mim b/te-itrans.mim new file mode 100644 index 0000000..20fde47 --- /dev/null +++ b/te-itrans.mim @@ -0,0 +1,188 @@ +;; tlg-itrans.mim -- Telugu input method with ITRANS method +;; Copyright (C) 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • tlg-itrans.mim +;;; +;;; Input method for Telugu script with ITRANS method. For the detail +;;; of ITRAN, see the page http://www.aczone.com/itrans/. + +(title "క") + +(map + (starter + (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) + ("0") ("1") ("2") ("3") ("4") + ("5") ("6") ("7") ("8") ("9") + ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") + ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") + ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") + ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") + ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) + + (consonant + ("k" "క్") + ("kh" "ఖ్") + ("g" "గ్") + ("gh" "ఘ్") + ("~N" "ఙ్") + ("N^" "ఙ్") + ("ch" "చ్") + ("Ch" "ఛ్") + ("chh" "ఛ్") + ("j" "జ్") + ("jh" "ఝ్") + ("~n" "ఞ్") + ("JN" "ఞ్") + ("T" "ట్") + ("Th" "ఠ్") + ("D" "డ్") + ("Dh" "ఢ్") + ("N" "ణ్") + ("t" "త్") + ("th" "థ్") + ("d" "ద్") + ("dh" "ధ్") + ("n" "న్") + ("p" "ప్") + ("ph" "ఫ్") + ("b" "బ్") + ("bh" "భ్") + ("m" "మ్") + ("y" "య్") + ("r" "ర్") + ("rh" "ఱ్") + ("l" "ల్") + ("L" "ళ్") + ("ld" "ళ్") + ("v" "వ్") + ("w" "వ్") + ("sh" "శ్") + ("Sh" "ష్") + ("shh" "ష్") + ("s" "స్") + ("h" "హ్") + ("GY" "జ్ఞ్") + ("dny" "జ్ఞ్") + ("x" "క్ష్")) + + (independent + ("a" "అ") + ("aa" "ఆ") + ("A" "ఆ") + ("i" "ఇ") + ("ii" "ఈ") + ("I" "ఈ") + ("u" "ఉ") + ("uu" "ఊ") + ("U" "ఊ") + ("RRi" "ఋ") + ("R^i" "ఋ") + ("LLi" "ఌ") + ("L^i" "ఌ") + ("E" "ఏ") + ("e" "ఎ") + ("ai" "ఐ") + ("O" "ఓ") + ("o" "ఒ") + ("au" "ఔ") + ("RRI" "à± ") + ("R^I" "à± ") + ("LLI" "ౡ") + ("L^I" "ౡ") + (".N" "ఁ") + (".n" "ం") + ("M" "ం") + ("H" "ః") + (".h" "్") + ("0" "౦") + ("1" "౧") + ("2" "౨") + ("3" "౩") + ("4" "౪") + ("5" "౫") + ("6" "౬") + ("7" "à±­") + ("8" "à±®") + ("9" "౯") + ("#" "్ర") + ("$" "ర్") + ("^" "త్ర") + ("*" "శ్ర") + ((S-\ ) "‌") + ((C-@) "‍")) + + (dependent + ("a" (delete @-) "") + ("aa" (delete @-) "à°¾") + ("A" (delete @-) "à°¾") + ("i" (delete @-) "à°¿") + ("ii" (delete @-) "ీ") + ("I" (delete @-) "ీ") + ("u" (delete @-) "ు") + ("uu" (delete @-) "ూ") + ("U" (delete @-) "ూ") + ("RRi" (delete @-) "ృ") + ("R^i" (delete @-) "ృ") + ("LLi" (delete @-) "") + ("L^i" (delete @-) "") + ("E" (delete @-) "ే") + ("e" (delete @-) "ె") + ("ai" (delete @-) "ై") + ("O" (delete @-) "ో") + ("o" (delete @-) "ొ") + ("au" (delete @-) "ౌ") + ("RRI" (delete @-) "ౄ") + ("R^I" (delete @-) "ౄ") + ("LLI" (delete @-) "") + ("L^I" (delete @-) "")) + + (return + ((Return))) + + (backspace + ((BackSpace) (undo)))) + +(state + (init + (starter (pushback 1) (shift intermediate))) + + (intermediate + (consonant (shift second)) + (independent (shift finish)) + (backspace) + (return (shift init))) + + (second + (consonant) + (dependent (shift finish)) + (backspace) + (return (shift init))) + + (finish + (return) + (t (shift init)))) + +;; Local Variables: +;; coding: utf-8 +;; mode: lisp +;; End: diff --git a/tlg-itrans.mim b/tlg-itrans.mim deleted file mode 100644 index 20fde47..0000000 --- a/tlg-itrans.mim +++ /dev/null @@ -1,188 +0,0 @@ -;; tlg-itrans.mim -- Telugu input method with ITRANS method -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • tlg-itrans.mim -;;; -;;; Input method for Telugu script with ITRANS method. For the detail -;;; of ITRAN, see the page http://www.aczone.com/itrans/. - -(title "క") - -(map - (starter - (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@)) - ("0") ("1") ("2") ("3") ("4") - ("5") ("6") ("7") ("8") ("9") - ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L") - ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y") - ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") - ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r") - ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")) - - (consonant - ("k" "క్") - ("kh" "ఖ్") - ("g" "గ్") - ("gh" "ఘ్") - ("~N" "ఙ్") - ("N^" "ఙ్") - ("ch" "చ్") - ("Ch" "ఛ్") - ("chh" "ఛ్") - ("j" "జ్") - ("jh" "ఝ్") - ("~n" "ఞ్") - ("JN" "ఞ్") - ("T" "ట్") - ("Th" "ఠ్") - ("D" "డ్") - ("Dh" "ఢ్") - ("N" "ణ్") - ("t" "త్") - ("th" "థ్") - ("d" "ద్") - ("dh" "ధ్") - ("n" "న్") - ("p" "ప్") - ("ph" "ఫ్") - ("b" "బ్") - ("bh" "భ్") - ("m" "మ్") - ("y" "య్") - ("r" "ర్") - ("rh" "ఱ్") - ("l" "ల్") - ("L" "ళ్") - ("ld" "ళ్") - ("v" "వ్") - ("w" "వ్") - ("sh" "శ్") - ("Sh" "ష్") - ("shh" "ష్") - ("s" "స్") - ("h" "హ్") - ("GY" "జ్ఞ్") - ("dny" "జ్ఞ్") - ("x" "క్ష్")) - - (independent - ("a" "అ") - ("aa" "ఆ") - ("A" "ఆ") - ("i" "ఇ") - ("ii" "ఈ") - ("I" "ఈ") - ("u" "ఉ") - ("uu" "ఊ") - ("U" "ఊ") - ("RRi" "ఋ") - ("R^i" "ఋ") - ("LLi" "ఌ") - ("L^i" "ఌ") - ("E" "ఏ") - ("e" "ఎ") - ("ai" "ఐ") - ("O" "ఓ") - ("o" "ఒ") - ("au" "ఔ") - ("RRI" "à± ") - ("R^I" "à± ") - ("LLI" "ౡ") - ("L^I" "ౡ") - (".N" "ఁ") - (".n" "ం") - ("M" "ం") - ("H" "ః") - (".h" "్") - ("0" "౦") - ("1" "౧") - ("2" "౨") - ("3" "౩") - ("4" "౪") - ("5" "౫") - ("6" "౬") - ("7" "à±­") - ("8" "à±®") - ("9" "౯") - ("#" "్ర") - ("$" "ర్") - ("^" "త్ర") - ("*" "శ్ర") - ((S-\ ) "‌") - ((C-@) "‍")) - - (dependent - ("a" (delete @-) "") - ("aa" (delete @-) "à°¾") - ("A" (delete @-) "à°¾") - ("i" (delete @-) "à°¿") - ("ii" (delete @-) "ీ") - ("I" (delete @-) "ీ") - ("u" (delete @-) "ు") - ("uu" (delete @-) "ూ") - ("U" (delete @-) "ూ") - ("RRi" (delete @-) "ృ") - ("R^i" (delete @-) "ృ") - ("LLi" (delete @-) "") - ("L^i" (delete @-) "") - ("E" (delete @-) "ే") - ("e" (delete @-) "ె") - ("ai" (delete @-) "ై") - ("O" (delete @-) "ో") - ("o" (delete @-) "ొ") - ("au" (delete @-) "ౌ") - ("RRI" (delete @-) "ౄ") - ("R^I" (delete @-) "ౄ") - ("LLI" (delete @-) "") - ("L^I" (delete @-) "")) - - (return - ((Return))) - - (backspace - ((BackSpace) (undo)))) - -(state - (init - (starter (pushback 1) (shift intermediate))) - - (intermediate - (consonant (shift second)) - (independent (shift finish)) - (backspace) - (return (shift init))) - - (second - (consonant) - (dependent (shift finish)) - (backspace) - (return (shift init))) - - (finish - (return) - (t (shift init)))) - -;; Local Variables: -;; coding: utf-8 -;; mode: lisp -;; End: diff --git a/tml-itrans.mim b/tml-itrans.mim deleted file mode 100644 index c6be8f6..0000000 --- a/tml-itrans.mim +++ /dev/null @@ -1,155 +0,0 @@ -;; tml-itrans.mim -- Tamil input method with ITRANS method -;; Copyright (C) 2003, 2004 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H15PRO112 - -;; This file is part of the m17n database; a sub-part of the m17n -;; library. - -;; The m17n library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public License -;; as published by the Free Software Foundation; either version 2.1 of -;; the License, or (at your option) any later version. - -;; The m17n library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. - -;; You should have received a copy of the GNU Lesser General Public -;; License along with the m17n library; if not, write to the Free -;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -;; 02111-1307, USA. - -;;;
  • 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: