annotate lisp/mule/mule-keyboard.el @ 165:5a88923fcbfe r20-3b9

Import from CVS: tag r20-3b9
author cvs
date Mon, 13 Aug 2007 09:44:42 +0200
parents 6608ceec7cf8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
1 ;;; mule-keyboard.el --- Direct input of multilingual chars from keyboard.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
2
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
3 ;; Copyright (C) 1992 Free Software Foundation, Inc.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
4
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
5 ;; This file is part of XEmacs.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
6
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
7 ;; XEmacs is free software; you can redistribute it and/or modify it
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
8 ;; under the terms of the GNU General Public License as published by
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
9 ;; the Free Software Foundation; either version 2, or (at your option)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
10 ;; any later version.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
11
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
12 ;; XEmacs is distributed in the hope that it will be useful, but
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
13 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
14 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
15 ;; General Public License for more details.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
16
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
17 ;; You should have received a copy of the GNU General Public License
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
18 ;; along with XEmacs; see the file COPYING. If not, write to the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
19 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
20 ;; Boston, MA 02111-1307, USA.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
21
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
22 ;;; 92.3.5 created for Mule Ver.0.9.0 by K.Handa <handa@etl.go.jp>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
23
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
24 ;;;###autoload
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
25 (defvar keyboard-allow-latin-input nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
26 "If non-nil, \"ESC , Fe\" and \"ESC - Fe\" are used for inputting
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
27 Latin characters.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
28
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
29 ;; common global variables of internal use
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
30 (defvar _keyboard-first-byte_ nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
31 "Character buffer for the first byte of two-byte character.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
32 (defvar _keyboard-SS2_ nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
33 "Flag to indicate Single Shift SS2.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
34 (defvar _keyboard-SS3_ nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
35 "Flag to indicate Single Shift SS3.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
36 (defvar _keyboard-saved-local-map_ nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
37 "Saved local keymap.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
38 (defvar _saved-local-map-single-shift_ nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
39 "Saved single shift local map.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
40
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
41 (defvar _current-g0_ 0)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
42 (defvar _current-g1_ nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
43 (defvar _current-g2_ nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
44 (defvar _current-g3_ nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
45
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
46 (defconst local-map-iso nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
47 "Local keymap used while inputing ISO2022 code directly.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
48 (defconst local-map-shift-jis nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
49 "Local keymap used while inputing Shift-JIS code directly.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
50 (defconst local-map-big5 nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
51 "Local keymap used while inputing Big5 code directly.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
52
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
53 (defconst esc-dol-map nil "Keys to designate 94n or 96n charset.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
54 (defconst esc-openpar-map nil "Keys to designate 94 charset to GL.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
55 (defconst esc-closepar-map nil "Keys to designate 94 charset to GR.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
56 (defconst esc-comma-map nil "Keys to designate 96 charset to GL.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
57 (defconst esc-minus-map nil "Keys to designate 96 charset to GR.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
58 (defconst esc-dol-openpar-map nil "Keys to designate 94n charset to GL.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
59 (defconst esc-dol-closepar-map nil "Keys to designate 94n charset to GR.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
60 (defconst esc-dol-comma-map nil "Keys to designate 96n charset to GL.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
61 (defconst esc-dol-minus-map nil "Keys to designate 96n charset to GR.")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
62
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
63 ;;;###autoload
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
64 (defun set-keyboard-coding-system (codesys)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
65 "Set variable keyboard-coding-system to CODESYS and modify keymap for it."
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
66 (interactive "zKeyboard-coding-system: ")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
67 (let ((type (coding-system-type codesys)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
68 (cond ((eq type 'shift-jis)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
69 (set-keyboard-coding-system-shift-jis))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
70 ((eq type 'iso2022)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
71 (set-keyboard-coding-system-iso2022 codesys))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
72 ((eq type 'big5)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
73 (set-keyboard-coding-system-big5))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
74 (t
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
75 (error "Direct input of code %s is not supported." codesys)))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
76
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
77 (defsubst keyboard-define-key (map key command)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
78 (define-key map (char-to-string key) command t))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
79
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
80 (defun keyboard-set-input-mode (value)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
81 (let ((mode (current-input-mode)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
82 ;; current-input-mode returns (INTERRUPT FLOW META QUIT-CHAR)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
83 ;; set META to value.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
84 (setcar (nthcdr 2 mode) value)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
85 (apply (function set-input-mode) mode)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
86
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
87
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
88 (defun keyboard-select-keymap (&rest maps)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
89 (or (nth (get-code-type keyboard-coding-system) maps)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
90 (error "invalid keyboard-coding-system")))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
91
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
92 (defun keyboard-self-insert-do-insert (char)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
93 (self-insert-internal char)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
94 (check-auto-fill))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
95
138
6608ceec7cf8 Import from CVS: tag r20-2b3
cvs
parents: 70
diff changeset
96 ;; ### I think this is the right function to put this on... must check further
6608ceec7cf8 Import from CVS: tag r20-2b3
cvs
parents: 70
diff changeset
97 ;; wire us into pending-delete
6608ceec7cf8 Import from CVS: tag r20-2b3
cvs
parents: 70
diff changeset
98 (put 'keyboard-self-insert-do-insert 'pending-delete t)
6608ceec7cf8 Import from CVS: tag r20-2b3
cvs
parents: 70
diff changeset
99
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
100 (defun keyboard-use-local-map-do-insert (map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
101 (use-local-map map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
102
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
103 (defun keyboard-current-local-map-do-insert ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
104 (current-local-map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
105
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
106 (defun keyboard-local-map-do-insert ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
107 (keyboard-select-keymap nil local-map-shift-jis local-map-iso local-map-big5))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
108
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
109
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
110 (defconst keyboard-self-insert-function
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
111 (function keyboard-self-insert-do-insert))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
112
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
113 (defconst keyboard-use-local-map-function
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
114 (function keyboard-use-local-map-do-insert))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
115
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
116 (defconst keyboard-current-local-map-function
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
117 (function keyboard-current-local-map-do-insert))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
118
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
119 (defconst keyboard-local-map-function
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
120 (function keyboard-local-map-do-insert))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
121
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
122 (defun keyboard-self-insert (char)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
123 (funcall keyboard-self-insert-function char))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
124
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
125 (defun keyboard-current-local-map ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
126 (funcall keyboard-current-local-map-function))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
127
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
128 (defun keyboard-use-local-map (map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
129 (funcall keyboard-use-local-map-function map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
130
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
131 (defun keyboard-local-map ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
132 (funcall keyboard-local-map-function))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
133
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
134
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
135 (defun keyboard-reset-state ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
136 (setq _keyboard-first-byte_ nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
137 _keyboard-SS2_ nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
138 _keyboard-SS3_ nil))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
139
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
140 (defun keyboard-define-global-map-iso (map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
141 (let ((i 160))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
142 (while (< i 256)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
143 (keyboard-define-key map i 'self-insert-iso)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
144 (setq i (1+ i))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
145 (define-key map "\216" 'keyboard-SS2 t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
146 (define-key map "\217" 'keyboard-SS3 t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
147 (define-key map "\e(" 'esc-openpar-prefix)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
148 (define-key map "\e)" 'esc-closepar-prefix)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
149 (if keyboard-allow-latin-input
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
150 (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
151 (define-key map "\e," 'esc-comma-prefix)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
152 (define-key map "\e-" 'esc-minus-prefix)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
153 (define-key map "\e$" 'esc-dol-prefix))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
154
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
155 (defun keyboard-define-local-map-iso (map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
156 (let ((i 33))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
157 (while (< i 127)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
158 (keyboard-define-key map i 'self-insert-iso)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
159 (setq i (1+ i)))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
160
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
161 (defun set-keyboard-coding-system-iso2022 (code)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
162 (setq _current-g0_ (coding-system-charset code 0))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
163 (setq _current-g1_ (coding-system-charset code 1))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
164 (setq _current-g2_ (coding-system-charset code 2))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
165 (setq _current-g3_ (coding-system-charset code 3))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
166 (if (null _current-g1_)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
167 (keyboard-set-input-mode t) ; enable Meta-key
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
168 (keyboard-set-input-mode 0)) ; enable 8bit input as chars.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
169 (let (i)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
170 (setq i 160)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
171 (while (< i 256)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
172 (keyboard-define-key global-map i 'self-insert-iso)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
173 (setq i (1+ i))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
174 (if local-map-iso nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
175 (setq local-map-iso (make-keymap))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
176 (let (i map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
177 (setq i 33)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
178 (while (< i 127)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
179 (keyboard-define-key local-map-iso i 'self-insert-iso)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
180 (setq i (1+ i)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
181 (setq map (current-global-map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
182 (setq i 161)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
183 (while (< i 255)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
184 (keyboard-define-key map i 'self-insert-iso)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
185 (setq i (1+ i))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
186 (define-key local-map-iso "\C-g" 'mule-keyboard-quit))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
187 (if esc-dol-map nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
188 (setq esc-dol-map (make-keymap)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
189 esc-openpar-map (make-keymap)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
190 esc-closepar-map (make-keymap)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
191 esc-comma-map (make-keymap)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
192 esc-minus-map (make-keymap)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
193 esc-dol-openpar-map (make-keymap)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
194 esc-dol-closepar-map (make-keymap)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
195 esc-dol-comma-map (make-keymap)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
196 esc-dol-minus-map (make-keymap))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
197 (fset 'esc-dol-prefix esc-dol-map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
198 (fset 'esc-openpar-prefix esc-openpar-map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
199 (fset 'esc-closepar-prefix esc-closepar-map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
200 (fset 'esc-comma-prefix esc-comma-map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
201 (fset 'esc-minus-prefix esc-minus-map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
202 (fset 'esc-dol-openpar-prefix esc-dol-openpar-map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
203 (fset 'esc-dol-closepar-prefix esc-dol-closepar-map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
204 (fset 'esc-dol-comma-prefix esc-dol-comma-map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
205 (fset 'esc-dol-minus-prefix esc-dol-minus-map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
206 (define-key esc-dol-map "(" 'esc-dol-openpar-prefix)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
207 (define-key esc-dol-map ")" 'esc-dol-closepar-prefix)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
208 (define-key esc-dol-map "," 'esc-dol-comma-prefix)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
209 (define-key esc-dol-map "-" 'esc-dol-minus-prefix)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
210 (let (i)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
211 (setq i ?0)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
212 (while (< i ?`)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
213 (keyboard-define-key esc-openpar-map i 'keyboard-designate-94-GL)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
214 (keyboard-define-key esc-closepar-map i 'keyboard-designate-94-GR)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
215 (keyboard-define-key esc-comma-map i 'keyboard-designate-96-GL)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
216 (keyboard-define-key esc-minus-map i 'keyboard-designate-96-GR)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
217 (keyboard-define-key esc-dol-map i 'keyboard-designate-94n-GL)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
218 (keyboard-define-key esc-dol-openpar-map i 'keyboard-designate-94n-GL)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
219 (keyboard-define-key esc-dol-closepar-map i 'keyboard-designate-94n-GR)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
220 (keyboard-define-key esc-dol-comma-map i 'keyboard-designate-96n-GL)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
221 (keyboard-define-key esc-dol-minus-map i 'keyboard-designate-96n-GR)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
222 (setq i (1+ i)))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
223 (define-key global-map "\216" 'keyboard-SS2 t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
224 (define-key global-map "\217" 'keyboard-SS3 t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
225 (define-key esc-map "(" 'esc-openpar-prefix)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
226 (define-key esc-map ")" 'esc-closepar-prefix)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
227 (if keyboard-allow-latin-input
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
228 (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
229 (define-key esc-map "," 'esc-comma-prefix)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
230 (define-key esc-map "-" 'esc-minus-prefix)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
231 (define-key esc-map "$" 'esc-dol-prefix)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
232 (keyboard-reset-state)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
233 (setq keyboard-coding-system code)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
234 )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
235
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
236 (defun mule-keyboard-quit ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
237 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
238 (keyboard-reset-state)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
239 (if _keyboard-saved-local-map_
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
240 (keyboard-use-local-map _keyboard-saved-local-map_))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
241 (keyboard-quit))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
242
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
243 (defun keyboard-change-local-map-for-iso ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
244 (if (eq (keyboard-current-local-map) (keyboard-local-map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
245 nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
246 (setq _keyboard-saved-local-map_ (keyboard-current-local-map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
247 (keyboard-use-local-map (keyboard-local-map))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
248
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
249 (defun keyboard-designate-94-GL ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
250 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
251 (if (and (coding-system-use-japanese-jisx0201-roman keyboard-coding-system)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
252 (eq 'japanese-jisx0201-roman
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
253 (charset-from-attributes 1 94 last-command-char)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
254 (setq _current-g0_ 'ascii)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
255 (setq _current-g0_ (charset-from-attributes 1 94 last-command-char)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
256 (if (eq _current-g0_ 'ascii)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
257 (keyboard-use-local-map _keyboard-saved-local-map_)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
258 (keyboard-change-local-map-for-iso)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
259
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
260 (defun keyboard-designate-94-GR ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
261 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
262 (setq _current-g1_ (charset-from-attributes 1 94 last-command-char)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
263
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
264 (defun keyboard-designate-96-GL ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
265 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
266 (setq _current-g0_ (charset-from-attributes 1 96 last-command-char))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
267 (keyboard-change-local-map-for-iso))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
268
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
269 (defun keyboard-designate-96-GR ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
270 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
271 (setq _current-g1_ (charset-from-attributes 1 96 last-command-char)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
272
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
273 (defun keyboard-designate-94n-GL ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
274 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
275 (if (and (coding-system-use-japanese-jisx0208-1978 keyboard-coding-system)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
276 (eq 'japanese-jisx0208-1978
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
277 (charset-from-attributes 2 94 last-command-char)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
278 (setq _current-g0_ 'japanese-jisx0208)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
279 (setq _current-g0_ (charset-from-attributes 2 94 last-command-char)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
280 (keyboard-change-local-map-for-iso))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
281
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
282 (defun keyboard-designate-94n-GR ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
283 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
284 (setq _current-g1_ (charset-from-attributes 2 94 last-command-char)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
285
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
286 (defun keyboard-designate-96n-GL ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
287 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
288 (setq _current-g0_ (charset-from-attributes 2 96 last-command-char))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
289 (keyboard-change-local-map-for-iso))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
290
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
291 (defun keyboard-designate-96n-GR ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
292 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
293 (setq _current-g1_ (charset-from-attributes 2 96 last-command-char)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
294
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
295 (defun keyboard-SS2 ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
296 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
297 (setq _keyboard-SS2_ t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
298 (setq _saved-local-map-single-shift_ (keyboard-current-local-map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
299 (keyboard-change-local-map-for-iso))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
300
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
301 (defun keyboard-SS3 ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
302 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
303 (setq _keyboard-SS3_ t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
304 (setq _saved-local-map-single-shift_ (keyboard-current-local-map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
305 (keyboard-change-local-map-for-iso))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
306
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
307 (defun self-insert-iso ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
308 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
309 (let ((charset (cond (_keyboard-SS2_ _current-g2_)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
310 (_keyboard-SS3_ _current-g3_)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
311 ((< last-command-char 128) _current-g0_)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
312 (t _current-g1_))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
313 (if (not charset) (mule-keyboard-quit))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
314 (if (= (charset-dimension charset) 1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
315 (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
316 (keyboard-self-insert (make-char charset last-command-char))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
317 (if (or _keyboard-SS2_ _keyboard-SS3_)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
318 (keyboard-use-local-map _saved-local-map-single-shift_))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
319 (keyboard-reset-state))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
320 (if _keyboard-first-byte_
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
321 (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
322 (keyboard-self-insert (make-char charset _keyboard-first-byte_
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
323 last-command-char))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
324 (if (or _keyboard-SS2_ _keyboard-SS3_)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
325 (keyboard-use-local-map _saved-local-map-single-shift_))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
326 (keyboard-reset-state))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
327 (setq _keyboard-first-byte_ last-command-char)))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
328
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
329
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
330 (defun keyboard-define-global-map-shift-jis (map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
331 (let ((i 128))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
332 (while (< i 160)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
333 (keyboard-define-key map i 'self-insert-shift-jis-japanese)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
334 (setq i (1+ i)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
335 (while (< i 224)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
336 (keyboard-define-key map i 'self-insert-shift-jis-kana)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
337 (setq i (1+ i)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
338 (while (< i 256)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
339 (keyboard-define-key map i 'self-insert-shift-jis-japanese)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
340 (setq i (1+ i)))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
341
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
342 (defun keyboard-define-local-map-shift-jis (map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
343 (let ((i 64))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
344 (while (< i 256)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
345 (keyboard-define-key map i 'self-insert-shift-jis-japanese2)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
346 (setq i (1+ i)))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
347
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
348 (defun set-keyboard-coding-system-shift-jis ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
349 (keyboard-set-input-mode 0) ; enable 8bit input as chars
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
350 (keyboard-define-global-map-shift-jis global-map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
351 (if local-map-shift-jis
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
352 nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
353 (setq local-map-shift-jis (make-keymap))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
354 (keyboard-define-local-map-shift-jis local-map-shift-jis)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
355 (define-key local-map-shift-jis "\C-g" 'mule-keyboard-quit))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
356 (setq _keyboard-first-byte_ nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
357 (setq keyboard-coding-system 'shift-jis))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
358
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
359 (defun self-insert-shift-jis-japanese ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
360 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
361 (setq _keyboard-first-byte_ last-command-char)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
362 (setq _keyboard-saved-local-map_ (keyboard-current-local-map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
363 (keyboard-use-local-map (keyboard-local-map)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
364
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
365 (defun self-insert-shift-jis-japanese2 ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
366 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
367 (if _keyboard-first-byte_
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
368 (let ((char
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
369 (decode-shift-jis-char _keyboard-first-byte_ last-command-char)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
370 (keyboard-self-insert char)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
371 (setq _keyboard-first-byte_ nil)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
372 (keyboard-use-local-map _keyboard-saved-local-map_))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
373
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
374 (defun self-insert-shift-jis-kana ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
375 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
376 (keyboard-self-insert (make-char 'japanese-jisx0201-kana last-command-char)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
377
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
378
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
379 (defun keyboard-define-global-map-big5 (map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
380 (let ((i ?\xA1))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
381 (while (< i ?\xFE)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
382 (keyboard-define-key map i 'self-insert-big5-1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
383 (setq i (1+ i)))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
384
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
385 (defun keyboard-define-local-map-big5 (map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
386 (let ((i ?\x40))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
387 (while (< i ?\x7F)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
388 (keyboard-define-key map i 'self-insert-big5-2)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
389 (setq i (1+ i)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
390 (setq i ?\xA1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
391 (while (< i ?\xFF)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
392 (keyboard-define-key map i 'self-insert-big5-2)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
393 (setq i (1+ i)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
394 ))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
395
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
396 (defun set-keyboard-coding-system-big5 ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
397 (require 'chinese)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
398 (keyboard-set-input-mode 0) ; enable 8bit input as chars
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
399 (keyboard-define-global-map-big5 global-map)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
400 (if local-map-big5
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
401 nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
402 (setq local-map-big5 (make-keymap))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
403 (keyboard-define-local-map-big5 local-map-big5)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
404 (define-key local-map-big5 "\C-g" 'mule-keyboard-quit))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
405 (setq _keyboard-first-byte_ 0)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
406 (setq keyboard-coding-system 'big5))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
407
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
408 (defun self-insert-big5-1 ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
409 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
410 (setq _keyboard-first-byte_ last-command-char)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
411 (setq _keyboard-saved-local-map_ (keyboard-current-local-map))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
412 (keyboard-use-local-map (keyboard-local-map)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
413
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
414 (defun self-insert-big5-2 ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
415 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
416 (if _keyboard-first-byte_
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
417 (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
418 (keyboard-self-insert
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
419 (decode-big5-char _keyboard-first-byte_ last-command-char
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
420 'character))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
421 (setq _keyboard-first-byte_ nil)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
422 (keyboard-use-local-map _keyboard-saved-local-map_))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
423
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
424
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
425 (defun check-auto-fill ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
426 (if (and auto-fill-function (> (current-column) fill-column))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
427 (funcall auto-fill-function)))