;; mr-gamabhana.mim -- Marathi input method by GaMaBhaNa ;; 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., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. (input-method mr gamabhana) (description "Based on Hindi input method by ITRANS and Harvard-Kyoto") (title "ग") (variable (trim-last-halant (_"If this variable is 1 (the default), the last Halant in a syllable is removed if it is followed by non Devanagari letter. For instance, typing \"har..\" produces \"हर।\", not \"हर्।\".") 1 0 1)) (map (starter (".") ("~") ("#") ("$") ("^") ("*") ("]") ("|") (":") ("-") ((S-\ )) ((C-@)) ("0") ("1") ("2") ("3") ("4") ("5") ("6") ("7") ("8") ("9") ("A") ("B") ("C") ("D") ("E") ("G") ("H") ("I") ("J") ("K") ("L") ("M") ("N") ("O") ("P") ("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") ((KP_1)) ((KP_2)) ((KP_3)) ((KP_4)) ((KP_5)) ((KP_6)) ((KP_7)) ((KP_8)) ((KP_9)) ((KP_0))) (consonant ("k" "क्") ("kh" "ख्") ("K" "ख्") ("g" "ग्") ("gh" "घ्") ("G" "घ्") (".k" "क़") (".kh" "ख़्") (".K" "ख़") (".g" "ग़्") ("~N" "ङ्") ("N^" "ङ्") ("NG" "ङ्") ("ch" "च्") ("Ch" "छ्") ("c" "च्") (".c" "च़") ("C" "छ्") ("chh" "छ्") ("j" "ज्") (".j" "ज़्") ("jh" "झ्") ("J" "झ्") ("z" "झ्") ("~n" "ञ्") ("JN" "ञ्") ("NY" "ञ्") ("T" "ट्") ("Th" "ठ्") ("D" "ड्") ("Dh" "ढ्") (".D" "ड़्") (".Dh" "ढ़्") ("N" "ण्") ("t" "त्") ("th" "थ्") ("d" "द्") ("dh" "ध्") ("n" "न्") (".n" "ऩ्") ("p" "प्") ("ph" "फ्") ("P" "फ्") (".ph" "फ़्") ("f" "फ्") ("b" "ब्") ("bh" "भ्") ("B" "भ्") ("m" "म्") ("y" "य्") (".y" "य़्") ("r" "र्") ("l" "ल्") ("L" "ळ्") ("v" "व्") ("w" "व्") ("sh" "श्") ("S" "ष्") ("Sh" "ष्") ("shh" "ष्") ("s" "स्") ("h" "ह्") ("jNy" "ज्ञ्") ("jn" "ज्ञ्") ("j~n" "ज्ञ्") ("GY" "ज्ञ्") ("Gy" "ज्ञ्") ("dny" "ज्ञ्") ("x" "क्ष्") ("kSh" "क्ष्") ("Ry" "ऱ्य्") ("Rh" "ऱ्ह्") ("dhd" "द्ध्") ("vd" "द्व्")) (independent ("a" "अ") ("aa" "आ") ("A" "आ") ("i" "इ") ("ii" "ई") ("I" "ई") ("ee" (set CANDRA-E-O 0) "ई") ("u" "उ") ("uu" "ऊ") ("U" "ऊ") ("oo" (set CANDRA-E-O 0) "ऊ") ("Ru" "ऋ") ("RU" "ऋ") ("Ri" "ऋ") ("RI" "ऋ") ("RRi" "ऋ") ("R^i" "ऋ") ("e" (set CANDRA-E-O ?ऍ) "ए") ("E" "ॲ") ("EM" "अँ") ("O" "ऑ") ("ai" "ऐ") ("o" (set CANDRA-E-O ?ऑ) "ओ") ("oa" "ऑ") ("au" "औ") ("ou" "औ") ("|" "।") ("||" "॥") ("Rs" "₹") (".n" "ं") ("M" "ं") ("H" "ः") (":" "ः") (".a" "ऽ") (".h" "्") ("AUM" "ॐ") ("OM" "ॐ") ("---" "‌") ("--" "‍") ((S-\ ) "‌") ((C-@) "‍")) (digit ("0" "०") ("1" "१") ("2" "२") ("3" "३") ("4" "४") ("5" "५") ("6" "६") ("7" "७") ("8" "८") ("9" "९") ((KP_0) "०") ((KP_1) "१") ((KP_2) "२") ((KP_3) "३") ((KP_4) "४") ((KP_5) "५") ((KP_6) "६") ((KP_7) "७") ((KP_8) "८") ((KP_9) "९")) (dependent ("a" (delete @-) "") ("aa" (delete @-) "ा") ("A" (delete @-) "ा") ("i" (delete @-) "ि") ("ii" (delete @-) "ी") ("I" (delete @-) "ी") ("ee" (delete @-) (set CANDRA-E-O 0) "ी") ("u" (delete @-) "ु") ("uu" (delete @-) "ू") ("U" (delete @-) "ू") ("oo" (delete @-) (set CANDRA-E-O 0) "ू") ("R" (delete @-) "ृ") ("Ru" (delete @-) "ृ") ("RU" (delete @-) "ृ") ("Ri" (delete @-) "ृ") ("RI" (delete @-) "ृ") ("e" (delete @-) (set CANDRA-E-O ?ॅ) "े") ("E" (delete @-) "ॅ") ("ea" (delete @-) "ॅ") ("EM" (delete @-) "ँ") (".N" (delete @-) "ँ") ("ai" (delete @-) "ै") ("o" (delete @-) (set CANDRA-E-O ?ॉ) "ो") ("O" (delete @-) "ॉ") ("oa" (delete @-) "ॉ") ("OM" (delete @-) "ाँ") ("au" (delete @-) "ौ") ("ou" (delete @-) "ौ") ("q" (delete @-) "़")) (dot ("." (set DOT 1) ".")) (eo-dot-c (".c" (delete @-) (insert CANDRA-E-O))) (commit-key ((S-C-Return))) (backspace ((BackSpace) (undo)))) (state (init (starter (pushback 1) (shift intermediate))) (intermediate ;; CANDRA-E-O is set to the character CANDRA E or CANDRA O when "e" ;; or "o" is typed, and in that case, if ".c" is typed, the ;; character set to CANDRA-E-O is inserted. (t (set CANDRA-E-O 0)) ;; LAST-HALANT-POS is set to the position after a consonat + HALANT ;; sequence. If the following key is for non-letter, that HALANT ;; character is removed. (consonant (mark LAST-HALANT-POS) (shift second)) (independent (cond (CANDRA-E-O (shift after-eo)) (1 (shift init)))) (digit (shift init)) (backspace) (commit-key (shift init))) (second ;; CANDRA-E-O is set to the character CANDRA E or CANDRA O when "e" ;; or "o" is typed, and in that case, if ".c" is typed, the ;; character set to CANDRA-E-O is inserted. (t (set CANDRA-E-O 0)) (consonant (mark LAST-HALANT-POS)) (dependent (cond (CANDRA-E-O (shift after-eo)) (1 (shift init)))) (backspace) (commit-key (shift init)) (nil (cond (trim-last-halant (move LAST-HALANT-POS) (delete @-) (move @>))) (shift init))) (after-eo (t (set DOT 0)) (dot) (eo-dot-c (shift init)) (commit-key (shift init)) (nil (cond (DOT (delete @-) (pushback 1))) (shift init)))) ;; Local Variables: ;; coding: utf-8 ;; mode: emacs-lisp ;; End: