105 lines
3.3 KiB
Plaintext
105 lines
3.3 KiB
Plaintext
;; sa-itrans.mim -- Sanskrit input method with ITRANS method
|
|
;; Copyright (C) 2012 Kencihi Handa <handa@m17n.org>
|
|
|
|
;; 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.
|
|
|
|
;; This file is branched from hi-itrans.mim.
|
|
|
|
(input-method sa itrans)
|
|
|
|
(description "Sanskrit input method by ITRANS and Harvard-Kyoto
|
|
transliteration systems.
|
|
|
|
You can use all the standard ITRANS key sequences plus key
|
|
sequences such as the below.
|
|
|
|
nk->ङ्क्, nkh->ङ्ख्, ng->ङ्ग्, ngh->ङ्घ्
|
|
nch->ञ्च्, nCh->ञ्छ्, nc->ञ्च्, nC->ञ्छ्, nchh->ञ्छ्,
|
|
nj->ञ्ज्, njh->ञ्झ्, nT->ण्ट्, nTh->ण्ठ्, nD->ण्ड्, nDh->ण्ढ्
|
|
c->च्, C->छ्, z->श्, S->ष्, jn->ज्ञ्, R->ऋ
|
|
_->॑, ''->॒
|
|
|
|
For motivations and further details, see description of hi-itrans.mim.")
|
|
|
|
(title "क")
|
|
|
|
(variable (trim-last-halant nil 0)
|
|
(enable-udatta nil 1))
|
|
|
|
(include (hi itrans) map)
|
|
|
|
(map
|
|
(udattta
|
|
("_" "॒")
|
|
("''" "॑")))
|
|
|
|
(state
|
|
(init
|
|
(starter (pushback 1) (shift intermediate))
|
|
(udattta)
|
|
(misc))
|
|
|
|
(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))
|
|
(danda (shift init))
|
|
(udattta (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))))
|
|
(danda
|
|
(cond (trim-last-halant (move LAST-HALANT-POS) (delete @-) (move @>)))
|
|
(shift init))
|
|
(udattta
|
|
(cond (trim-last-halant (move LAST-HALANT-POS) (delete @-) (move @>)))
|
|
(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))
|
|
(danda (shift init))
|
|
(udattta (shift init))
|
|
(commit-key (shift init))
|
|
(nil (cond (DOT (delete @-) (pushback 1))) (shift init))))
|
|
|
|
;; Local Variables:
|
|
;; coding: utf-8
|
|
;; mode: emacs-lisp
|
|
;; End:
|