2 ;; National Institute of Advanced Industrial Science and Technology (AIST)
3 ;; Registration Number H15PRO112
5 ;; This file is part of the m17n database; a sub-part of the m17n
8 ;; The m17n library is free software; you can redistribute it and/or
9 ;; modify it under the terms of the GNU Lesser General Public License
10 ;; as published by the Free Software Foundation; either version 2.1 of
11 ;; the License, or (at your option) any later version.
13 ;; The m17n library is distributed in the hope that it will be useful,
14 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 ;; Lesser General Public License for more details.
18 ;; You should have received a copy of the GNU Lesser General Public
19 ;; License along with the m17n library; if not, write to the Free
20 ;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
23 (input-method si wijesekera)
25 (description "Sinhala input method based on SLS 1134 Rev. 2:2004.
26 <http://http://www.fonts.lk/doc/sin-kbd-layout4.pdf>
105 ("|" "්") ; touch (ZWJ 0DCA)
106 ("J" "ළු") ; muurdhaja lu (0DC5 0DD4)
118 ((| (< c 0x0D9A) (> c 0x0DC6))
213 ((& (> c 0x0D99) (< c 0x0DC7))
239 ((& (= c 0x200C) (= @+2 0x0DD9))
243 (| (< @-2 0x0D9A) (> @-2 0x0DC6)))
246 ((& (> @-1 0x0D99) (< @-1 0xDC7))
279 ((& (> @-1 0x0D99) (< @-1 0x0DC6))
280 0x0DCA 0x200D 0x0DBA))
289 ((| (= c 0x0DD9) (= c 0x0DDB) (= c 0x0DD2) (= c 0x0DD3))
294 ((& (> @-1 0x0D99) (< @-1 0x0DC7))
295 0x0DCA 0x200D 0x0DBB))
300 ;; Repaya is disabled.
304 ;; ((| (= c 0x0DD9) (= c 0x0DDB))
310 ;; ((& (> @-1 0x0D99) (< @-1 0x0DC7))
315 ;; 0x0DBB 0x0DCA 0x200D))
322 (delete-preceding-zw)
344 (cond ((& (> @-1 0x0D99) (< @-1 0x0DC7)) 0x200C))
353 ((| (< @-1 0x0D9A) (> @-1 0x0DC6)))
354 ((& (> @-2 0x0D99) (< @-2 0x0DC7))
358 ((& (> @-4 0x0D99) (< @-1 0x0DC7) (= @-3 0x0DCA) (= @-2 0x200D))
370 ((| (< @-1 0x0D9A) (> @-1 0x0DC6))
372 ((& (> @-2 0x0D99) (< @-2 0x0DC7))
376 ((& (> @-4 0x0D99) (< @-1 0x0DC7) (= @-3 0x0DCA) (= @-2 0x200D))
391 ((& (> c 0x0D99) (< c 0x0DC7) (= @-2 0x0DCA) (= @-1 0x200D))
397 (| (= @+1 0x0DD9) (= @+1 0x0DDB)))
400 ("\\" (shift join))))
406 (delete-preceding-zw (set x 0))
408 ;; skip following (virama zwj consonant)* sequence
412 ((& (= @+1 0x0DCA) (= @+2 0x200D) (> cc3 0x0D99) (< cc3 0x0DC7))
421 ((& (= @-3 0x0DCA) (= @-2 0x200D) (> cc1 0x0D99) (< cc1 0x0DC7))
431 ((| (= @-1 0x200C) (= @-1 0x200D))
433 (delete-preceding-zw)))))
444 ((| (< @-2 0x0D9A) (> @-2 0x0DC6))
452 ((| (< @-2 0x0D9A) (> @-2 0x0DC6))
461 ((| (= c 0x0DD9) (= c 0x0DDB))
463 ((& (> @-2 0x0D99) (< @-2 0x0DC7))
469 ((& (> c 0x0D99) (< c 0x0DC7))