comparison lisp/x-compose.el @ 380:8626e4521993 r21-2-5

Import from CVS: tag r21-2-5
author cvs
date Mon, 13 Aug 2007 11:07:10 +0200
parents 41f2f0e326e9
children 74fd4e045ea6
comparison
equal deleted inserted replaced
379:76b7d63099ad 380:8626e4521993
102 102
103 ;;; Code: 103 ;;; Code:
104 104
105 (require 'x-iso8859-1) 105 (require 'x-iso8859-1)
106 106
107 (defun make-compose-map (map-sym) 107 (macrolet
108 (let ((map (make-sparse-keymap))) 108 ((define-compose-map (keymap-symbol)
109 (set map-sym map) 109 `(progn
110 (set-keymap-name map map-sym) 110 (defconst ,keymap-symbol (make-sparse-keymap ',keymap-symbol))
111 ;; Required to tell XEmacs the keymaps were actually autoloaded. 111 ;; Required to tell XEmacs the keymaps were actually autoloaded.
112 ;; #### Make this unnecessary! 112 ;; #### Make this unnecessary!
113 (fset map-sym map))) 113 (fset ',keymap-symbol ,keymap-symbol))))
114 114
115 (make-compose-map 'compose-map) 115 (define-compose-map compose-map)
116 (make-compose-map 'compose-acute-map) 116 (define-compose-map compose-acute-map)
117 (make-compose-map 'compose-grave-map) 117 (define-compose-map compose-grave-map)
118 (make-compose-map 'compose-cedilla-map) 118 (define-compose-map compose-cedilla-map)
119 (make-compose-map 'compose-diaeresis-map) 119 (define-compose-map compose-diaeresis-map)
120 (make-compose-map 'compose-circumflex-map) 120 (define-compose-map compose-circumflex-map)
121 (make-compose-map 'compose-tilde-map) 121 (define-compose-map compose-tilde-map)
122 (make-compose-map 'compose-ring-map) 122 (define-compose-map compose-ring-map))
123
124 (unintern 'make-compose-map)
125 123
126 (define-key compose-map 'acute compose-acute-map) 124 (define-key compose-map 'acute compose-acute-map)
127 (define-key compose-map 'grave compose-grave-map) 125 (define-key compose-map 'grave compose-grave-map)
128 (define-key compose-map 'cedilla compose-cedilla-map) 126 (define-key compose-map 'cedilla compose-cedilla-map)
129 (define-key compose-map 'diaeresis compose-diaeresis-map) 127 (define-key compose-map 'diaeresis compose-diaeresis-map)
130 (define-key compose-map 'circumflex compose-circumflex-map) 128 (define-key compose-map 'circumflex compose-circumflex-map)
131 (define-key compose-map 'tilde compose-tilde-map) 129 (define-key compose-map 'tilde compose-tilde-map)
132 (define-key compose-map 'degree compose-ring-map) 130 (define-key compose-map 'degree compose-ring-map)
133 131
134 ;;(eval-when-compile
135 ;; (defsubst define-dead-key-map (key map)
136 ;; (define-key function-key-map key map)
137 ;; (define-key compose-map key map)))
138
139 ;;;###utoload (autoload 'compose-map "x-compose" nil t 'keymap)
140 ;;;###utoload (autoload 'compose-acute-map "x-compose" nil t 'keymap)
141 ;;;###utoload (autoload 'compose-grave-map "x-compose" nil t 'keymap)
142 ;;;###utoload (autoload 'compose-cedilla-map "x-compose" nil t 'keymap)
143 ;;;###utoload (autoload 'compose-diaeresis-map "x-compose" nil t 'keymap)
144 ;;;###utoload (autoload 'compose-degree-map "x-compose" nil t 'keymap)
145 ;;;###utoload (define-key function-key-map [acute] 'compose-acute-map)
146 ;;;###utoload (define-key function-key-map [grave] 'compose-grave-map)
147 ;;;###utoload (define-key function-key-map [cedilla] 'compose-cedilla-map)
148 ;;;###utoload (define-key function-key-map [diaeresis] 'compose-diaeresis-map)
149 ;;;###utoload (define-key function-key-map [degree] 'compose-degree-map)
150 ;;;###utoload (define-key function-key-map [multi-key] 'compose-map)
151 ;;;###utoload (define-key global-map [multi-key] 'compose-map)
152
153 ;;(define-key function-key-map [multi-key] compose-map) 132 ;;(define-key function-key-map [multi-key] compose-map)
154
155 133
156 ;; The following is necessary, because one can't rebind [degree] 134 ;; The following is necessary, because one can't rebind [degree]
157 ;; and use it to insert the degree sign! 135 ;; and use it to insert the degree sign!
158 ;;(defun compose-insert-degree () 136 ;;(defun compose-insert-degree ()
159 ;; "Inserts a degree sign." 137 ;; "Inserts a degree sign."
160 ;; (interactive) 138 ;; (interactive)
161 ;; (insert ?\260)) 139 ;; (insert ?\260))
162
163 ;; The "Dead" keys:
164 ;;
165 ;;(define-dead-key-map [acute] compose-acute-map)
166 ;;(define-dead-key-map [cedilla] compose-cedilla-map)
167 ;;(define-dead-key-map [diaeresis] compose-diaeresis-map)
168 ;;(define-dead-key-map [degree] compose-ring-map)
169 140
170 (define-key compose-map [acute] compose-acute-map) 141 (define-key compose-map [acute] compose-acute-map)
171 (define-key compose-map [?'] compose-acute-map) 142 (define-key compose-map [?'] compose-acute-map)
172 (define-key compose-map [grave] compose-grave-map) 143 (define-key compose-map [grave] compose-grave-map)
173 (define-key compose-map [?`] compose-grave-map) 144 (define-key compose-map [?`] compose-grave-map)
179 (define-key compose-map [?^] compose-circumflex-map) 150 (define-key compose-map [?^] compose-circumflex-map)
180 (define-key compose-map [tilde] compose-tilde-map) 151 (define-key compose-map [tilde] compose-tilde-map)
181 (define-key compose-map [~] compose-tilde-map) 152 (define-key compose-map [~] compose-tilde-map)
182 (define-key compose-map [degree] compose-ring-map) 153 (define-key compose-map [degree] compose-ring-map)
183 (define-key compose-map [?*] compose-ring-map) 154 (define-key compose-map [?*] compose-ring-map)
184
185
186 ;;; The dead keys might really be called just about anything, depending
187 ;;; on the vendor. MIT thinks that the prefixes are "SunFA_", "D", and
188 ;;; "hpmute_" for Sun, DEC, and HP respectively. However, OpenWindows 3
189 ;;; thinks that the prefixes are "SunXK_FA_", "DXK_", and "hpXK_mute_".
190 ;;; And HP (who don't mention Sun and DEC at all) use "XK_mute_".
191 ;;; Go figure.
192
193 ;;; Presumably if someone is running OpenWindows, they won't be using
194 ;;; the DEC or HP keysyms, but if they are defined then that is possible,
195 ;;; so in that case we accept them all.
196
197 ;;; If things seem not to be working, you might want to check your
198 ;;; /usr/lib/X11/XKeysymDB file to see if your vendor has an equally
199 ;;; mixed up view of what these keys should be called.
200
201 ;; Sun according to MIT:
202 ;;
203
204 ;;(when (x-valid-keysym-name-p "SunFA_Acute")
205 ;; (define-dead-key-map [SunFA_Acute] compose-acute-map)
206 ;; (define-dead-key-map [SunFA_Grave] compose-grave-map)
207 ;; (define-dead-key-map [SunFA_Cedilla] compose-cedilla-map)
208 ;; (define-dead-key-map [SunFA_Diaeresis] compose-diaeresis-map)
209 ;; (define-dead-key-map [SunFA_Circum] compose-circumflex-map)
210 ;; (define-dead-key-map [SunFA_Tilde] compose-tilde-map)
211 ;; )
212 ;;
213 ;;;; Sun according to OpenWindows 2:
214 ;;;;
215 ;;(when (x-valid-keysym-name-p "Dead_Grave")
216 ;; (define-dead-key-map [Dead_Grave] compose-grave-map)
217 ;; (define-dead-key-map [Dead_Circum] compose-circumflex-map)
218 ;; (define-dead-key-map [Dead_Tilde] compose-tilde-map)
219 ;; )
220 ;;
221 ;;;; Sun according to OpenWindows 3:
222 ;;;;
223 ;;(when (x-valid-keysym-name-p "SunXK_FA_Acute")
224 ;; (define-dead-key-map [SunXK_FA_Acute] compose-acute-map)
225 ;; (define-dead-key-map [SunXK_FA_Grave] compose-grave-map)
226 ;; (define-dead-key-map [SunXK_FA_Cedilla] compose-cedilla-map)
227 ;; (define-dead-key-map [SunXK_FA_Diaeresis] compose-diaeresis-map)
228 ;; (define-dead-key-map [SunXK_FA_Circum] compose-circumflex-map)
229 ;; (define-dead-key-map [SunXK_FA_Tilde] compose-tilde-map)
230 ;; )
231 ;;
232 ;;;; DEC according to MIT:
233 ;;;;
234 ;;(when (x-valid-keysym-name-p "Dacute_accent")
235 ;; (define-dead-key-map [Dacute_accent] compose-acute-map)
236 ;; (define-dead-key-map [Dgrave_accent] compose-grave-map)
237 ;; (define-dead-key-map [Dcedilla_accent] compose-cedilla-map)
238 ;; (define-dead-key-map [Dcircumflex_accent] compose-circumflex-map)
239 ;; (define-dead-key-map [Dtilde] compose-tilde-map)
240 ;; (define-dead-key-map [Dring_accent] compose-ring-map)
241 ;; )
242 ;;
243 ;;;; DEC according to OpenWindows 3:
244 ;;;;
245 ;;(when (x-valid-keysym-name-p "DXK_acute_accent")
246 ;; (define-dead-key-map [DXK_acute_accent] compose-acute-map)
247 ;; (define-dead-key-map [DXK_grave_accent] compose-grave-map)
248 ;; (define-dead-key-map [DXK_cedilla_accent] compose-cedilla-map)
249 ;; (define-dead-key-map [DXK_circumflex_accent] compose-circumflex-map)
250 ;; (define-dead-key-map [DXK_tilde] compose-tilde-map)
251 ;; (define-dead-key-map [DXK_ring_accent] compose-ring-map)
252 ;; )
253 ;;
254 ;;;; HP according to MIT:
255 ;;;;
256 ;;(when (x-valid-keysym-name-p "hpmute_acute")
257 ;; (define-dead-key-map [hpmute_acute] compose-acute-map)
258 ;; (define-dead-key-map [hpmute_grave] compose-grave-map)
259 ;; (define-dead-key-map [hpmute_diaeresis] compose-diaeresis-map)
260 ;; (define-dead-key-map [hpmute_asciicircum] compose-circumflex-map)
261 ;; (define-dead-key-map [hpmute_asciitilde] compose-tilde-map)
262 ;; )
263 ;;
264 ;;;; HP according to OpenWindows 3:
265 ;;;;
266 ;;(when (x-valid-keysym-name-p "hpXK_mute_acute")
267 ;; (define-dead-key-map [hpXK_mute_acute] compose-acute-map)
268 ;; (define-dead-key-map [hpXK_mute_grave] compose-grave-map)
269 ;; (define-dead-key-map [hpXK_mute_diaeresis] compose-diaeresis-map)
270 ;; (define-dead-key-map [hpXK_mute_asciicircum] compose-circumflex-map)
271 ;; (define-dead-key-map [hpXK_mute_asciitilde] compose-tilde-map)
272 ;; )
273 ;;
274 ;;;; HP according to HP-UX 8.0:
275 ;;;;
276 ;;(when (x-valid-keysym-name-p "XK_mute_acute")
277 ;; (define-dead-key-map [XK_mute_acute] compose-acute-map)
278 ;; (define-dead-key-map [XK_mute_grave] compose-grave-map)
279 ;; (define-dead-key-map [XK_mute_diaeresis] compose-diaeresis-map)
280 ;; (define-dead-key-map [XK_mute_asciicircum] compose-circumflex-map)
281 ;; (define-dead-key-map [XK_mute_asciitilde] compose-tilde-map)
282 ;; )
283 ;;
284 ;;;; Xfree seems to use lower case and a hyphen
285 ;;(when (x-valid-keysym-name-p "dead-tilde")
286 ;; (define-dead-key-map [dead-acute] compose-acute-map)
287 ;; (define-dead-key-map [dead-grave] compose-grave-map)
288 ;; (define-dead-key-map [dead-cedilla] compose-cedilla-map)
289 ;; (define-dead-key-map [dead-diaeresis] compose-diaeresis-map)
290 ;; (define-dead-key-map [dead-circum] compose-circumflex-map)
291 ;; (define-dead-key-map [dead-tilde] compose-tilde-map)
292 ;; )
293
294 155
295 156
296 ;;; The contents of the "dead key" maps. These are shared by the 157 ;;; The contents of the "dead key" maps. These are shared by the
297 ;;; compose-map. 158 ;;; compose-map.
298 159