Move the JOIN and TOUCH keys to more accessible key combinations.
authorntakahas <ntakahas>
Mon, 2 Jul 2007 04:27:20 +0000 (04:27 +0000)
committerntakahas <ntakahas>
Mon, 2 Jul 2007 04:27:20 +0000 (04:27 +0000)
Implement the correct handling of BackSpace.

im/si-phonetic-static.mim

index 152504a..f7d0f00 100644 (file)
@@ -1,7 +1,7 @@
 ;; si-phonetic-static.mim -- Sinhala phonetic static keymap
 ;; m17n Keymap file for Sinhala (Sri Lanka) (2006-04-26)
 ;; Maintainer: Harshula Jayasuriya <harshula@gmail.com>
-;; Last Updated: 2007-06-14
+;; Last Updated: 2007-07-01
 ;; This is a phonetic static mapping for a standard US-English keyboard
 ;; (qwerty)
 ;; http://www.nongnu.org/sinhala/doc/keymaps/sinhala-keyboard_3.html
   ("Y" "්‍ය")            ;  0x0dca,0x200d,0x0dba - yansaya
   ((A-r) "ර්‍")          ;  0x0dbb,0x0dca,0x200d - repaya
 
-  ;; Need the first backslash to escape the second.
-  ((A-\\) "්‍")            ; 0x0dca,0x200d - join - conjunct letters cons 0DCA ZWJ cons
-  ((A-|) "‍්")             ; 0x200d,0x0dca - touch - cons ZWJ 0DCA cons
+  ((A-,) "්‍")             ; 0x0dca,0x200d - join - conjunct letters cons 0DCA ZWJ cons
+  ((A-/) "‍්")             ; 0x200d,0x0dca - touch - cons ZWJ 0DCA cons
 
   ;; Shift-space and Alt-space
   ((S-\ ) " ")                ; 0x00a0 - no-break space
   ((A-\ ) "‌")               ; 0x200c - ZWNJ
 
+  ((BackSpace)
+   (cond
+    ;; rakaaranshaya and yansaya
+    ((| (= @-1 0x0DBA) (= @-1 0x0DBB))
+     (delete @-1)
+     (delete-al-zwj)
+    )
+    ;; touch
+    ((& (= @-2 0x200D) (= @-1 0x0DCA))
+     (delete @-1)
+     (delete @-1)
+    )
+    ;; join
+    ((= @-1 0x200D)
+     (delete-al-zwj)
+    )
+    (1
+     (delete @-1)
+    )
+   )
+  )
+
  )
 )
 
+(macro
+ (delete-al-zwj (set x 0))
+
+ (delete-al-zwj
+  (cond
+   ((& (= @-2 0x0DCA) (= @-1 0x200D))
+    (delete @-1)
+    (delete @-1)
+    ;; repaya
+    (cond
+     ((= @-1 0x0DBB)
+      (delete @-1)
+     )
+    )
+   )
+  )
+ )
+
+)
 
 (state
  (init
   (phon)
  )
 )
-