X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=MIM%2Fvi-telex.mim;h=98307f30f131e6c506052910cbcb3715cfaca626;hb=fb4c89602c2bac4788782a93bf8fbf08e78638a5;hp=968b06ceb29cd01cc1b1e593aa4fefc7580d21df;hpb=c2b8c24dc2803895e16853eac17113113b4e7041;p=m17n%2Fm17n-db.git diff --git a/MIM/vi-telex.mim b/MIM/vi-telex.mim index 968b06c..98307f3 100644 --- a/MIM/vi-telex.mim +++ b/MIM/vi-telex.mim @@ -1,5 +1,5 @@ ;; vi-telex.mim -- Input method for Vietnames with TELEX key sequence -;; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 +;; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H15PRO112 @@ -101,22 +101,29 @@ If the value is 1, Backspace key undoes the previous key (init ;; Initialize variables. C is the initial consonant. V-N is the ;; (N-1)th vowel from the last. C-AFTER-V is a number of consonants - ;; typed after vowel. + ;; typed after vowel. NST is 1 iff surrounding text is not supported. (t (set C @-1) (set V-1 0) (set V-2 0) (set V-3 0) (set C-AFTER-V 0) - (set SELECT 0)) + (set SELECT 0) (set NST (= @-0 -2))) - (consonant (set C @-1)) - (consonant-ext (set C @-1)) + (consonant (set C @-1) (cond (NST (shift after-c)))) + (consonant-ext (set C @-1) (cond (NST (shift after-c)))) (consonant-or-tone-mark - (cond ((| (= @-1 ?f) (= @-1 ?j) (= @-1 ?z) ; Invalid beginning consonants + (cond ((| (= @-1 ?f) (= @-1 ?j) (= @-1 ?z) ; Invalid beginning consonants (= @-1 ?F) (= @-1 ?J) (= @-1 ?Z)) (shift temporary-escape)) - (1 (set C @-1)))) + (1 (set C @-1) (cond (NST (shift after-c)))))) ;; Mark M remembers the preedit position after the last vowel. (vowel (mark M) (set V-2 V-1) (set V-1 @-1) (shift after-v)) (vowel-ext (mark M) (set V-2 V-1) (set V-1 @-1) (shift after-v)) (temporary-escape (shift temporary-escape)) - (permanent-escape (shift escape-in-normal-mode))) + (permanent-escape (shift escape-in-normal-mode)) + (smart-quotes)) + + ;; The state shifted to when an initial consonants is typed and + ;; surrounding text is not supported. + (after-c + (vowel (mark M) (set V-2 V-1) (set V-1 @-1) (shift after-v)) + (vowel-ext (mark M) (set V-2 V-1) (set V-1 @-1) (shift after-v))) ;; The state shifted to when a vowel is typed. (after-v