;; te-pothana.mim -- Telugu input method proposed by  Thirumala Krishna Desikachari along with Pothana font for Windows environments.
;; Adapted by Arjuna Rao Chavala (arjunaraoc@googlemail.com) for SCIM-m17n input method based on itrans.mim with minor modifications
;; This file (to be included in 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.

;; This 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
;; Boston, MA 02110-1301 USA.

(input-method te pothana)

(description 
"pothana Telugu input method Version 2.0 date 24 Nov 2007
Telugu input method by Pothana layout and transliteration 
(key pairs have fixed one to one mapping), originally proposed by
Thirumala Krishna Desikachari along with Pothana font for Windows 
environments. 
For the detail of Pothana layout, see the telugu wikipedia page 
on Pothana font and download the paper available in that page
http://te.wikipedia.org/w/index.php?title=%E0%B0%AA%E0%B1%8B%E0%B0%A4%E0%B0%A8_%28%E0%B0%AB%E0%B0%BE%E0%B0%82%E0%B0%9F%E0%B1%81%29&oldid=188094.
the key mappings are in the last two pages of the paper.
Alt Key gives third level characters and 
Alt+shift key gives fourth level characters
Tested on Fedora core 6 under KDE with default US keyboard layout
Please give feedback/bugs to arjunaraoc@googlemail.com.
#change from previous version
base characters now give vowel endings than halanth
# 
Thanks for your help
")


(title "పో")

(map
 (starter
  ((S-\ )) ((C-@))
  ((M-0)) ((M-1)) ((M-2)) ((M-3)) ((M-4))
  ((M-5)) ((M-6)) ((M-7)) ((M-8)) ((M-9))
 ((M-q)) ((M-e)) ((M-r)) ((M-y)) ((M-u)) ((M-i)) ((M-o)) ((M-\[)) ((M-\]))
  ((M-a))
;; ((M-l)) to determine unicode
  ((M-\;)) ((M-\'))
  ((M-,)) ((M-.))
;;  ((M-/)) avagraha
  ((M-E)) 
;;  ((S-M-Y)) need to check what 
 ((M-U)) ((M-I)) ((M-O)) ((M-\[))

  ("{") ("}")
  ("[") ("]")

  ("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")
  ("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" "క")
  ("K" "ఖ")
  ("g" "గ")
  ("G" "ఘ")
  ("c" "చ")
  ("C" "ఛ")
  ("j" "జ")
  ("J" "ఝ")
  ("t" "ట")
  ("T" "ఠ")
  ("z" "డ")
  ("Z" "ఢ")
  ("N" "ణ")
  ("w" "త")
  ("W" "థ")
  ("d" "ద")
  ("D" "ధ")
  ("n" "న")
  ("p" "ప")
  ("P" "ఫ")
  ("b" "బ")
  ("B" "భ")
  ("m" "మ")
  ("y" "య")
  ("r" "ర")
  ("R" "ఱ")
  ("H" "హ")
  ("l" "ల")
  ("L" "ళ")
  ("v" "వ")
  ("S" "శ")
  ("x" "ష")
  ("s" "స")
  ("X" "క్ష")
  ("h" "్")
  ("M" "ఙ")
  ("V" "ఞ"))

 (independent
  ("a" "అ")
  ("A" "ఆ")
  ("i" "ఇ")
  ("I" "ఈ")
  ("u" "ఉ")
  ("U" "ఊ")
  ("q" "ఋ")
  ("Q" "ౠ")
          ("{" "ఌ")
          ("}" "ౡ")
  ("e" "ఎ")
  ("E" "ఏ")
  ("Y" "ఐ")
  ("o" "ఒ")
  ("O" "ఓ")
           ("[" "ఔ")

  ("f" "ం")			
  ("F" "ఁ")
 		
           ("]" "ః")
 ;; (".a" "ఽ")				; not in Unicode 4.1
  ((M-0) "౦")
  ((M-1) "౧")
  ((M-2) "౨")
  ((M-3) "౩")
  ((M-4) "౪")
  ((M-5) "౫")
  ((M-6) "౬")
  ((M-7) "౭")
  ((M-8) "౮")
  ((M-9) "౯")
 
  ((M-q) "ృ")
  ((M-e) "ి") 
  ((M-r) "ౄ")
  ((M-y)  "ై")
  ((M-u) "ు")
  ((M-i) "ి") 
  ((M-o) "ొ")
  ((M-\[) "[")
  ((M-\]) "]")
  ((M-a) "ా")
;;  ((M-l) )  to determine unicode for this matra lu in ottu form
  ((M-\;) "{") 
  ((M-\')  "}")
  ((M-,)  08205) ;; ZWJ
  ((M-.)  08204) ;; ZWNJ
;;  ((M-/) )  avagraha
  ((M-E) "ీ") 
;;  ((M-Y)) need to check this with Tirumala is it tsa matra?
  ((M-U) "ూ") 
  ((M-I) "ీ")
  ((M-O) "ో") 
  ((M-\[)"ౌ")
  ((S-\ ) "‌")				; not in ITRANS Telugu table
  ((C-@) "‍"))				; not in ITRANS Telugu table

 (dependent
  ("a"  "")
  ("A"  "ా")
  ("i"  "ి")
  ("I" "ీ")
  ("u" "ు")
  ("U" "ూ")
  ("q"  "ృ")
  ("Q"  "ౄ")
  ("e"  "ె")
  ("E" "ే")
  ("Y"  "ై")
  ("o" "ొ")
  ("O" "ో")
            ("[" "ౌ"))

 (return
  ((Return)))

 (backspace
  ((BackSpace) (undo))))

(state
 (init
  (starter (pushback 1) (shift intermediate)))

 (intermediate
  (consonant (shift second))
  (independent (shift init))
  (backspace)
  (return (shift init)))

 (second
  (consonant)
  (dependent (shift init))
  (backspace)
  (return (shift init))))

;; Local Variables:
;; coding: utf-8
;; mode: emacs-lisp
;; End:
