(handle-mark): Don't delte the previous
authorhanda <handa>
Wed, 23 Jan 2008 04:36:08 +0000 (04:36 +0000)
committerhanda <handa>
Wed, 23 Jan 2008 04:36:08 +0000 (04:36 +0000)
character here.
(after-v): When a vowel is typed, adjust tone mark place.
(after-t): Delete the just inserted character before calling
handle-mark.

MIM/vi-telex.mim

index edbe435..0b522ab 100644 (file)
@@ -49,7 +49,6 @@ If the value is 1, Backspace key undoes the previous key
 
 (macro
  (handle-mark
-  (delete @-)
   ;; At first, cancel the tone mark if already put.
   (move T) (select 0)
   (move M)
@@ -166,7 +165,8 @@ If the value is 1, Backspace key undoes the previous key
  ;; The state shifted to when a vowel is typed.
  (after-v
   (consonant (shift after-vc))
-  (vowel (mark M) (set V-3 V-2) (set V-2 V-1) (set V-1 @-1))
+  (vowel (mark M) (set V-3 V-2) (set V-2 V-1) (set V-1 @-1)
+        (move T) (select 0) (handle-mark) (move M))
   (consonant-or-tone-mark (delete @-) (pushback 1) (shift after-t))
   (backspace (delete @-)
             (cond (V-3 (set V-1 V-2) (set V-2 V-3) (set V-3 0))
@@ -187,7 +187,7 @@ If the value is 1, Backspace key undoes the previous key
   (t (set CURRENT-SELECT -1))
   (tone-mark (cond ((= CURRENT-SELECT SELECT) (move T) (select 0) (move @>)
                    (shift temporary-escape))
-                  (1 (handle-mark) (set CURRENT-SELECT SELECT))))
+                  (1 (delete @-) (handle-mark) (set CURRENT-SELECT SELECT))))
   (nil (cond (C-AFTER-V (shift after-vc))
             (1 (shift after-v)))))