New file.
authorhanda <handa>
Wed, 26 Oct 2005 08:07:00 +0000 (08:07 +0000)
committerhanda <handa>
Wed, 26 Oct 2005 08:07:00 +0000 (08:07 +0000)
zh-util.mim [new file with mode: 0644]

diff --git a/zh-util.mim b/zh-util.mim
new file mode 100644 (file)
index 0000000..8c256ee
--- /dev/null
@@ -0,0 +1,89 @@
+;; zh-util.mim -- Provide utilities for Chinese input methods.
+;; Copyright (C) 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H15PRO112
+
+;; This file is part of the m17n library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+(input-method t nil zh-util)
+
+(description "Provide utilities for Chinese input methods.
+This is acutually not a standalone input method, but is expected
+to be included in the other Chinese input method (e.g. zh-py).
+")
+
+(map
+ ;; Typing 1, 2, ..., 0 selects the 0th, 1st, ..., 9th candidate.
+ (choose
+  ("1" (select 0))
+  ("2" (select 1))
+  ("3" (select 2))
+  ("4" (select 3))
+  ("5" (select 4))
+  ("6" (select 5))
+  ("7" (select 6))
+  ("8" (select 7))
+  ("9" (select 8))
+  ("0" (select 9)))
+
+ (change-candidate
+  ((Left) (select @-))
+  ((C-b) (select @-))
+  ((Right) (select @+))
+  ((C-f) (select @+))
+  ((Up) (select @[))
+  ((C-p) (select @[))
+  ((Down) (select @]))
+  ((C-n) (select @])))
+
+ (focus-change
+  ;; When an input spot is moved, commit the current predit by shifting
+  ;; to init.
+  ((input-focus-move) (shift init))
+  ;; When an input focus is out or in, keep the current preedit.
+  ((input-focus-out) (set KK @@) (sub KK 1) (undo KK))
+  ((input-focus-in) (set KK @@) (sub KK 1) (undo KK)))
+
+ (backspace
+  ((BackSpace)))
+
+ (commit-preedit
+  ((S-\ ))))
+
+(state
+ (check-undo
+  ;; When Backspace is typed, cancel the last input.
+  (backspace (undo))
+  (focus-change)
+  ;; When anything else is typed, produce the current candidate (if
+  ;; any), and re-handle the last input in "init" state.
+  (nil (hide) (shift init)))
+
+ (select
+  (t (set K @@) (sub K 1))
+  ;; When a number is typed, select the corresponding canidate,
+  ;; produce it, and shift to "init" state.
+  (focus-change)
+  (choose (hide) (shift init))
+  (change-candidate)
+  (backspace (undo K))
+  ;; When key to force committing, commit the current preedit.
+  (commit-preedit (shift init))
+  ;; When anything else is typed, produce the current candidate,
+  ;; and re-handle the last input in "init" state.
+  (nil (hide) (shift init))))