--- m17n-db-1.3.3/si-wijesekera.mim.orig 2006-11-28 12:51:48.000000000 +0530 +++ m17n-db-1.3.3/si-wijesekera.mim 2006-10-16 18:47:08.000000000 +0530 @@ -1,4 +1,4 @@ -;; Copyright (C) 2005 +;; Copyright (C) 2006 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H15PRO112 @@ -20,491 +20,231 @@ ;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ;; 02111-1307, USA. -(input-method si wijesekera) +(input-method si wijesekera) (description "Sinhala input method based on SLS 1134 Rev. 2:2004. - + +Reference URL : http://http://www.fonts.lk/doc/sin-kbd-layout4.pdf + +This input method uses preedit rather than surrounding text. + +Key Summary : +ඳ --> alt-gr+o +ඟ --> alt-gr+. +ඬ --> alt-gr+v +ඦ --> alt-gr+c +ඃ --> alt-gr+x +෴ --> alt-gr+' + +Key summary: Tyronne Wickramarathne + ") -(title "Wijesekera") +(title "සි") (map (consonant - ("l" "ක") ; 0D9A - ("L" "ඛ") ; 0D9B - ("." "ග") ; 0D9C - (">" "ඝ") ; 0D9D - ("X" "ඞ") ; 0D9E - ((A-.) "ඟ") ; 0D9F - ("p" "ච") ; 0DA0 - ("P" "ඡ") ; 0DA1 - ("c" "ජ") ; 0DA2 - ("C" "ඣ") ; 0DA3 - ("\[" "ඤ") ; 0DA4 - ("{" "ඥ") ; 0DA5 - ((A-c) "ඦ") ; 0DA6 - ("g" "ට") ; 0DA7 - ("G" "ඨ") ; 0DA8 - ("v" "ඩ") ; 0DA9 - ("V" "ඪ") ; 0DAA - ("K" "ණ") ; 0DAB - ((A-v) "ඬ") ; 0DAC - (";" "ත") ; 0DAD - (":" "ථ") ; 0DAE - ("o" "ද") ; 0DAF - ("O" "ධ") ; 0DB0 - ("k" "න") ; 0DB1 - ((A-o) "ඳ") ; 0DB3 - ("m" "ප") ; 0DB4 - ("M" "ඵ") ; 0DB5 - ("n" "බ") ; 0DB6 - ("N" "භ") ; 0DB7 - ("u" "ම") ; 0DB8 - ("U" "ඹ") ; 0DB9 - ("h" "ය") ; 0DBA - ("r" "ර") ; 0DBB - ("," "ල") ; 0DBD - ("j" "ව") ; 0DC0 - ("Y" "ශ") ; 0DC1 - ("I" "ෂ") ; 0DC2 - ("i" "ස") ; 0DC3 - ("y" "හ") ; 0DC4 - ("<" "ළ") ; 0DC5 - ("F" "ෆ") ; 0DC6 - ) + ("l" "ක") ; 0D9A + ("L" "ඛ") ; 0D9B + ("." "ග") ; 0D9C + (">" "ඝ") ; 0D9D + ("X" "ඞ") ; 0D9E + ((A-.) "ඟ") ((0x2E A-z) "ඟ") ; 0D9F + ("p" "ච") ; 0DA0 + ("P" "ඡ") ; 0DA1 + ("c" "ජ") ; 0DA2 + ("C" "ඣ") ; 0DA3 + ("\[" "ඤ") ; 0DA4 + ("{" "ඥ") ; 0DA5 + ((A-c) "ඦ") ((0x63 A-z) "ඦ") ; 0DA6 + ("g" "ට") ; 0DA7 + ("G" "ඨ") ; 0DA8 + ("v" "ඩ") ; 0DA9 + ("V" "ඪ") ; 0DAA + ("K" "ණ") ; 0DAB + ((A-v) "ඬ") ((0x76 A-z) "ඬ") ; 0DAC + (";" "ත") ; 0DAD + (":" "ථ") ; 0DAE + ("o" "ද") ; 0DAF + ("O" "ධ") ; 0DB0 + ("k" "න") ; 0DB1 + ((A-o) "ඳ") ((0x6F A-z) "ඳ") ; 0DB3 + ("m" "ප") ; 0DB4 + ("M" "ඵ") ; 0DB5 + ("n" "බ") ; 0DB6 + ("N" "භ") ; 0DB7 + ("u" "ම") ; 0DB8 + ("U" "ඹ") ; 0DB9 + ("h" "ය") ; 0DBA + ("r" "ර") ; 0DBB + ("," "ල") ; 0DBD + ("j" "ව") ; 0DC0 + ("Y" "ශ") ; 0DC1 + ("I" "ෂ") ; 0DC2 + ("i" "ස") ; 0DC3 + ("y" "හ") ; 0DC4 + ("<" "ළ") ; 0DC5 + ("F" "ෆ") ; 0DC6 + + (" c 0x0DC6)) - (delete @-1) - 0x0D93) - (1 - 0x0D91))) - (1 - 0x0D91))) - - ("a" - (set c @-1) - (cond - ((= c 0x0D91) - (delete @-1) - 0x0D92) - ((= c 0x0D94) - (delete @-1) - 0x0D95) - ((= c 0x0DD9) - (delete @-1) - 0x0DDA) - ((= c 0x0DDC) - (delete @-1) - 0x0DDD) - (1 - 0x0DCA))) - - ("d" - (set c @-1) - (cond - ((= c 0x0D85) - (delete @-1) - 0x0D86) - ((= c 0x0DD9) - (delete @-1) - 0x0DDC) - (1 - 0x0DCF))) - - ("e" - (cond - ((= @-1 0x0D85) - (delete @-1) - 0x0D87) - (1 - 0x0DD0))) - - ("E" - (set c @-1) - (cond - ((= c 0x0D85) - (delete @-1) - 0x0D88) - ((= c 0x0DD4) - (cond - ((= @-2 0x0DC5) - (delete @-1) - 0x0DD6) - (1 - 0x0DD1))) - (1 - 0x0DD1))) - - ("D" - (set c @-1) - (cond - ((= c 0x0D8D) - (delete @-1) - 0x0D8E) - ((= c 0x0DD8) - (delete @-1) - 0x0DF2) - (1 - 0x0DD8))) - - ("A" - (set c @-1) - (cond - ((= c 0x0D8B) - (delete @-1) - 0x0D8C) - ((= c 0x0D8F) - (delete @-1) - 0x0D90) - ((= c 0x0D94) - (delete @-1) - 0x0D96) - ((= c 0x0DD9) - (delete @-1) - 0x0DDE) - (1 - 0x0DDF))) - - ("f" - (set c @+1) - (cond - ((& (> c 0x0D99) (< c 0x0DC7)) - (delete @+1) - (insert c) - (forward) - (set c @+1) - (cond - ((= c 0x0DCA) - (delete @+1) - 0x0DDA) - ((= c 0x0DD9) - (delete @+1) - 0x0DDB) - ((= c 0x0DCF) - (delete @+1) - 0x0DDC) - ((= c 0x0DDF) - (delete @+1) - 0x0DDE) - (1 - 0x0DD9))) - ((= c 0x0D91) - (delete @+1) - 0x0D93) - ((= c 0x0DD9) - (delete @+1) - 0x0DDB) - ((& (= c 0x200C) (= @+2 0x0DD9)) - (delete @+2) - 0x200C 0x0DDB) - ((& (= @-1 0x0DD9) - (| (< @-2 0x0D9A) (> @-2 0x0DC6))) - (delete @-1) - 0x0DDB) - ((& (> @-1 0x0D99) (< @-1 0xDC7)) - 0x200C 0x0DD9) - (1 - 0x0DD9))) - - ;; sanyaka letters - ((A-z) - (set c @-1) - (cond - ((= c 0x0DAF) - (delete @-1) - 0x0DB3) - ((= c 0x0D9C) - (delete @-1) - 0x0D9F) - ((= c 0x0DA9) - (delete @-1) - 0x0DAC) - ((= c 0x0DA2) - (delete @-1) - 0x0DA6))) - - ;; yansaya - ("H" - (set c @-1) - (cond - ((= c 0x0DD9) - (delete @-1)) - ((= c 0x0DDB) - (delete @-1)) - (1 - (set c 0))) - (cond - ((& (> @-1 0x0D99) (< @-1 0x0DC6)) - 0x0DCA 0x200D 0x0DBA)) - (cond - ((> c 0) - (insert c)))) - - ;; rakaransaya - ("`" - (set c @-1) - (cond - ((| (= c 0x0DD9) (= c 0x0DDB) (= c 0x0DD2) (= c 0x0DD3)) - (delete @-1)) - (1 - (set c 0))) - (cond - ((& (> @-1 0x0D99) (< @-1 0x0DC7)) - 0x0DCA 0x200D 0x0DBB)) - (cond - ((> c 0) - (insert c)))) - -;; Repaya is disabled. -;; ("~" -;; (set c @-1) -;; (cond -;; ((| (= c 0x0DD9) (= c 0x0DDB)) -;; (delete @-1)) -;; (1 -;; (set c 0))) -;; (backward) -;; (cond -;; ((& (> @-1 0x0D99) (< @-1 0x0DC7)) -;; (set c1 @-1) -;; (delete @-1) -;; (insert c1) -;; (move @<) -;; 0x0DBB 0x0DCA 0x200D)) -;; (cond -;; ((> c 0) -;; (move @>) -;; (insert c)))) - - ((BackSpace) - (delete-preceding-zw) - (set c @-1) - (cond - ((< c 0) - (unhandle))) - (delete @-1) - (cond - ((= c 0x0D86) - 0x0D85) - ((= c 0x0D87) - 0x0D85) - ((= c 0x0D88) - 0x0D85) - ((= c 0x0D8C) - 0x0D8B) - ((= c 0x0D8E) - 0x0D8D) - ((= c 0x0D90) - 0x0D8F) - ((= c 0x0D92) - 0x0D8F) - ((= c 0x0D93) - (cond ((& (> @-1 0x0D99) (< @-1 0x0DC7)) 0x200C)) - 0x0DD9) - ((= c 0x0D95) - 0x0D94) - ((= c 0x0D96) - 0x0D94) - - ((& (> c 0x0D99) (< c 0x0DC7) (= @-2 0x0DCA) (= @-1 0x200D)) - (delete @-2)) - - ((= c 0x0DD9) - (cond - ((| (< @-1 0x0D9A) (> @-1 0x0DC6))) - ((= @+1 0x0D91) - (delete @-1) - (delete @+1) - 0x0D93) - ((& (> @+1 0x0D99) (< @+1 0x0DC7)) - (set c1 @+1) - (cond - ((= @+2 0x0DD9) - (merge-combuva) - 0x0DDB) - ((= @+2 0x0DCA) - (merge-combuva) - 0x0DDA) - ((= @+2 0x0DCF) - (merge-combuva) - 0x0DDC) - ((= @+2 0x0DDF) - (merge-combuva) - 0x0DDE) - (1 - (delete @-1) - (delete @+1) - (insert c1) - 0x0DD9))) - ((& (> @-2 0x0D99) (< @-2 0x0DC7)) - (delete @-1) - 0x200C - 0x0DD9) - ((& (> @-4 0x0D99) (< @-4 0x0DC7) (= @-3 0x0DCA) (= @-2 0x200D)) - (delete @-3) - 0x0DD9) - (1 - (delete @-1) - 0x0DD9))) - - ((= c 0x0DDA) - 0x0DD9) - - ((= c 0x0DDB) - (cond - ((| (< @-1 0x0D9A) (> @-1 0x0DC6)) - 0x0DD9) - ((& (> @-2 0x0D99) (< @-2 0x0DC7)) - (delete @-1) - 0x200C - 0x0DDB) - ((& (> @-4 0x0D99) (< @-4 0x0DC7) (= @-3 0x0DCA) (= @-2 0x200D)) - (delete @-3) - 0x0DDB) - (1 - (delete @-1) - 0x0DDB))) - - ((= c 0x0DDC) - 0x0DD9) - ((= c 0x0DDD) - 0x0DDC) - ((= c 0x0DDE) - 0x0DD9) - ((= c 0x0DF2) - 0x0DD8)) - - (cond - ((& (> @-1 0x0D99) - (< @-1 0x0DC7) - (| (= @+1 0x0DD9) (= @+1 0x0DDB))) - 0x200C))) - - ("\\" (shift join)))) - -(macro - ;; prototype - (forward (set x 0)) - (backward (set x 0)) - (delete-preceding-zw (set x 0)) - - ;; skip following (virama zwj consonant)* sequence - (forward - (set cc3 @+3) - (cond - ((& (= @+1 0x0DCA) (= @+2 0x200D) (> cc3 0x0D99) (< cc3 0x0DC7)) - (delete @+3) - 0x0DCA 0x200D - (insert cc3) - (forward)))) - - (backward - (set cc1 @-1) - (cond - ((& (= @-3 0x0DCA) (= @-2 0x200D) (> cc1 0x0D99) (< cc1 0x0DC7)) - (delete @-3) - 0x0DCA - 0x200D - (insert cc1) - (move @<) - (backward)))) - - (delete-preceding-zw - (cond - ((| (= @-1 0x200C) (= @-1 0x200D)) - (delete @-1) - (delete-preceding-zw)))) - - (merge-combuva - (delete @-1) - (delete @+2) - (insert c1))) + (kombuva + ("f" "ෙ")) ; 0DD9 -(state - (init - (consonant - (cond - ((= @-1 0x0DD9) - (cond - ((= @-2 0x200C) - (delete @-2) - 0x0DD9) - ((| (< @-2 0x0D9A) (> @-2 0x0DC6)) - (delete @-1) - 0x0DD9))) - ((= @-1 0x0DDB) - (cond - ((= @-2 0x200C) - (delete @-2) - 0x0DDB) - ((| (< @-2 0x0D9A) (> @-2 0x0DC6)) - (delete @-1) - 0x0DDB))))) - (misc)) + (yansaka + ("H")) + + (rakaransaya + ("`")) + + (repaya + ("~")) + + (eyanna + ("w")) + + (al-lakuna + ("a")) + + (aela-pilla + ("d")) + + (gayanukitta + ("A")) (join - (consonant - (set c @-1) - (cond - ((| (= c 0x0DD9) (= c 0x0DDB)) - (cond - ((& (> @-2 0x0D99) (< @-2 0x0DC7)) - (delete @-1) - (move @<) - 0x0DCA 0x200D - (move @>) - (insert c)))) - ((& (> c 0x0D99) (< c 0x0DC7)) - (move @<) - 0x0DCA 0x200D)) - (shift init)) + ("\\") + ("|")) + + (backspace + ((BackSpace))) + ) - (nil - (shift init)))) +(state + (init + (consonant (shift consonant)) + (others) + (is-pilla (shift is-pilla)) + (kombuva (shift kombuva))) + + (consonant + (rakaransaya 0x0DCA 0x200D 0x0DBB) + (yansaya 0x0DCA 0x200D 0x0DBA) + (repaya (move @-) 0x0DBB 0x0DCA 0x200D (move @+)) + (is-pilla (shift is-pilla)) + (join 0x0DCA 0x200D (shift consonant+join))) + + (consonant+join + (consonant (shift consonant)) + (backspace (undo))) + + (is-pilla + (rakaransaya (move @-) 0x0DCA 0x200D 0x0DBB (shift init))) + + (kombuva + (eyanna (delete @<) 0x0D93 (shift init)) + (al-lakuna (delete @<) 0x0DDA (shift init)) + (kombuva (delete @<) 0x0DDB (shift combu_deka)) + (aela-pilla (delete @<) 0x0DDC (shift kombuva_haa_aela-pilla)) + (gayanukitta (delete @<) 0x0DDE (shift init)) + (consonant (move @1) (delete @0) (move @>) 0x0DD9 (shift consonant+kombuva)) + (backspace (undo))) + + (combu_deka + (consonant (move @1) (delete @0) (move @>) 0x0DDB (shift init)) + (backspace (undo))) + + (kombuva_haa_aela-pilla + (al-lakuna (delete @<) 0x0DDD (shift init)) + (backspace (undo))) + + (consonant+kombuva + (al-lakuna (delete @-) 0x0DDA (shift init)) + (aela-pilla (delete @-) 0x0DDC (shift consonant+kombuva_haa_aela-pilla)) + (gayanukitta (delete @-) 0x0DDE (shift init)) + (yansaka (move @-) 0x0DCA 0x200D 0x0DBA (move @>)) + (rakaransaya (move @-) 0x0DCA 0x200D 0x0DBB (move @>)) + (join (shift consonant+join+kombuva)) + (touch (move @-) 0x200D 0x0DCA (move @>)) + (backspace (undo))) + + (consonant+kombuva_haa_aela-pilla + (al-lakuna (delete @-) 0x0DDD (shift init)) + (backspace (undo))) + + (consonant+join+kombuva + (consonant (move @-) (delete @-) 0x0DCA 0x200D (move @+) 0x0DD9 + (shift consonant+kombuva)) + (backspace (undo))) + ) ;; Local Variables: ;; coding: utf-8 ;; mode: emacs-lisp ;; End: +