Mercurial > hg > xemacs-beta
comparison lisp/x11/x-compose.el @ 183:e121b013d1f0 r20-3b18
Import from CVS: tag r20-3b18
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:54:23 +0200 |
parents | 3bb7ccffb0c0 |
children | 3d6bfa290dbd |
comparison
equal
deleted
inserted
replaced
182:f07455f06202 | 183:e121b013d1f0 |
---|---|
28 ;;; Synched up with: Not in FSF. | 28 ;;; Synched up with: Not in FSF. |
29 | 29 |
30 ;;; Commentary: | 30 ;;; Commentary: |
31 | 31 |
32 ;; created by jwz, 14-jun-92. | 32 ;; created by jwz, 14-jun-92. |
33 ;;; changed by Jan Vroonhof, July 1997: Use function-key-map instead | |
34 ;;; of global map. | |
35 ;;; Preliminary support for | |
36 ;;; XFree86 deadkeys | |
33 | 37 |
34 ;; This file implements DEC-, OpenWindows-, and HP-compatible "Compose" | 38 ;; This file implements DEC-, OpenWindows-, and HP-compatible "Compose" |
35 ;; processing for XEmacs. | 39 ;; processing for XEmacs. |
36 | 40 |
37 ;; If you are running a version of X which already does compose processing, | 41 ;; If you are running a version of X which already does compose processing, |
106 (defvar compose-tilde-map (make-sparse-keymap)) | 110 (defvar compose-tilde-map (make-sparse-keymap)) |
107 (defvar compose-ring-map (make-sparse-keymap)) | 111 (defvar compose-ring-map (make-sparse-keymap)) |
108 | 112 |
109 ;;; The command `compose-key' exists so that this file may be autoloaded. | 113 ;;; The command `compose-key' exists so that this file may be autoloaded. |
110 ;;;this doesn't work yet###autoload | 114 ;;;this doesn't work yet###autoload |
111 (define-function 'compose-key compose-map) | 115 ;; (define-function 'compose-key compose-map) |
112 | 116 |
113 ;; The "Compose" key: | 117 ;; The "Compose" key: |
114 ;; (keysym is lower case because we downcase everything in the Symbol font...) | 118 ;; (keysym is lower case because we downcase everything in the Symbol font...) |
115 ;; | 119 ;; |
116 ;;;this doesn't work yet###autoload | 120 ;;;this doesn't work yet###autoload |
117 (define-key global-map [multi-key] 'compose-key) | 121 ;; Ditched JV, (define-key function-key-map [multi-key] 'compose-key) |
122 (define-key function-key-map [multi-key] compose-map) | |
118 | 123 |
119 ;; The following is necessary, because one can't rebind [degree] | 124 ;; The following is necessary, because one can't rebind [degree] |
120 ;; and use it to insert the degree sign! | 125 ;; and use it to insert the degree sign! |
121 (defun compose-insert-degree () | 126 (defun compose-insert-degree () |
122 "Inserts a degree sign." | 127 "Inserts a degree sign." |
123 (interactive) | 128 (interactive) |
124 (insert ?\260)) | 129 (insert ?\260)) |
125 | 130 |
126 ;; The "Dead" keys: | 131 ;; The "Dead" keys: |
127 ;; | 132 ;; |
128 (define-key global-map [acute] compose-acute-map) | 133 (define-key function-key-map [acute] compose-acute-map) |
129 (define-key global-map [cedilla] compose-cedilla-map) | 134 (define-key function-key-map [cedilla] compose-cedilla-map) |
130 (define-key global-map [diaeresis] compose-diaeresis-map) | 135 (define-key function-key-map [diaeresis] compose-diaeresis-map) |
131 (define-key global-map [degree] compose-ring-map) | 136 (define-key function-key-map [degree] compose-ring-map) |
132 | 137 |
133 ;; The dead keys as seen by the "Compose" map: | 138 ;; The dead keys as seen by the "Compose" map: |
134 ;; | 139 ;; |
135 (define-key compose-map [acute] compose-acute-map) | 140 (define-key compose-map [acute] compose-acute-map) |
136 (define-key compose-map [cedilla] compose-cedilla-map) | 141 (define-key compose-map [cedilla] compose-cedilla-map) |
162 ;;; mixed up view of what these keys should be called. | 167 ;;; mixed up view of what these keys should be called. |
163 | 168 |
164 ;; Sun according to MIT: | 169 ;; Sun according to MIT: |
165 ;; | 170 ;; |
166 (cond ((x-valid-keysym-name-p "SunFA_Acute") | 171 (cond ((x-valid-keysym-name-p "SunFA_Acute") |
167 (define-key global-map [SunFA_Acute] compose-acute-map) | 172 (define-key function-key-map [SunFA_Acute] |
173 compose-acute-map) | |
168 (define-key compose-map [SunFA_Acute] compose-acute-map) | 174 (define-key compose-map [SunFA_Acute] compose-acute-map) |
169 (define-key global-map [SunFA_Grave] compose-grave-map) | 175 (define-key function-key-map [SunFA_Grave] |
176 compose-grave-map) | |
170 (define-key compose-map [SunFA_Grave] compose-grave-map) | 177 (define-key compose-map [SunFA_Grave] compose-grave-map) |
171 (define-key global-map [SunFA_Cedilla] compose-cedilla-map) | 178 (define-key function-key-map [SunFA_Cedilla] |
179 compose-cedilla-map) | |
172 (define-key compose-map [SunFA_Cedilla] compose-cedilla-map) | 180 (define-key compose-map [SunFA_Cedilla] compose-cedilla-map) |
173 (define-key global-map [SunFA_Diaeresis] compose-diaeresis-map) | 181 (define-key function-key-map [SunFA_Diaeresis] compose-diaeresis-map) |
174 (define-key compose-map [SunFA_Diaeresis] compose-diaeresis-map) | 182 (define-key compose-map [SunFA_Diaeresis] compose-diaeresis-map) |
175 (define-key global-map [SunFA_Circum] compose-circumflex-map) | 183 (define-key function-key-map [SunFA_Circum] |
184 compose-circumflex-map) | |
176 (define-key compose-map [SunFA_Circum] compose-circumflex-map) | 185 (define-key compose-map [SunFA_Circum] compose-circumflex-map) |
177 (define-key global-map [SunFA_Tilde] compose-tilde-map) | 186 (define-key function-key-map [SunFA_Tilde] |
187 compose-tilde-map) | |
178 (define-key compose-map [SunFA_Tilde] compose-tilde-map) | 188 (define-key compose-map [SunFA_Tilde] compose-tilde-map) |
179 )) | 189 )) |
180 | 190 |
181 ;; Sun according to OpenWindows 2: | 191 ;; Sun according to OpenWindows 2: |
182 ;; | 192 ;; |
183 (cond ((x-valid-keysym-name-p "Dead_Grave") | 193 (cond ((x-valid-keysym-name-p "Dead_Grave") |
184 (define-key global-map [Dead_Grave] compose-grave-map) | 194 (define-key function-key-map [Dead_Grave] |
195 compose-grave-map) | |
185 (define-key compose-map [Dead_Grave] compose-grave-map) | 196 (define-key compose-map [Dead_Grave] compose-grave-map) |
186 (define-key global-map [Dead_Circum] compose-circumflex-map) | 197 (define-key function-key-map [Dead_Circum] |
198 compose-circumflex-map) | |
187 (define-key compose-map [Dead_Circum] compose-circumflex-map) | 199 (define-key compose-map [Dead_Circum] compose-circumflex-map) |
188 (define-key global-map [Dead_Tilde] compose-tilde-map) | 200 (define-key function-key-map [Dead_Tilde] |
201 compose-tilde-map) | |
189 (define-key compose-map [Dead_Tilde] compose-tilde-map) | 202 (define-key compose-map [Dead_Tilde] compose-tilde-map) |
190 )) | 203 )) |
191 | 204 |
192 ;; Sun according to OpenWindows 3: | 205 ;; Sun according to OpenWindows 3: |
193 ;; | 206 ;; |
194 (cond ((x-valid-keysym-name-p "SunXK_FA_Acute") | 207 (cond ((x-valid-keysym-name-p "SunXK_FA_Acute") |
195 (define-key global-map [SunXK_FA_Acute] compose-acute-map) | 208 (define-key function-key-map [SunXK_FA_Acute] |
209 compose-acute-map) | |
196 (define-key compose-map [SunXK_FA_Acute] compose-acute-map) | 210 (define-key compose-map [SunXK_FA_Acute] compose-acute-map) |
197 (define-key global-map [SunXK_FA_Grave] compose-grave-map) | 211 (define-key function-key-map [SunXK_FA_Grave] |
212 compose-grave-map) | |
198 (define-key compose-map [SunXK_FA_Grave] compose-grave-map) | 213 (define-key compose-map [SunXK_FA_Grave] compose-grave-map) |
199 (define-key global-map [SunXK_FA_Cedilla] compose-cedilla-map) | 214 (define-key function-key-map [SunXK_FA_Cedilla] compose-cedilla-map) |
200 (define-key compose-map [SunXK_FA_Cedilla] compose-cedilla-map) | 215 (define-key compose-map [SunXK_FA_Cedilla] compose-cedilla-map) |
201 (define-key global-map [SunXK_FA_Diaeresis] compose-diaeresis-map) | 216 (define-key function-key-map [SunXK_FA_Diaeresis] |
217 compose-diaeresis-map) | |
202 (define-key compose-map [SunXK_FA_Diaeresis] compose-diaeresis-map) | 218 (define-key compose-map [SunXK_FA_Diaeresis] compose-diaeresis-map) |
203 (define-key global-map [SunXK_FA_Circum] compose-circumflex-map) | 219 (define-key function-key-map [SunXK_FA_Circum] compose-circumflex-map) |
204 (define-key compose-map [SunXK_FA_Circum] compose-circumflex-map) | 220 (define-key compose-map [SunXK_FA_Circum] compose-circumflex-map) |
205 (define-key global-map [SunXK_FA_Tilde] compose-tilde-map) | 221 (define-key function-key-map [SunXK_FA_Tilde] |
222 compose-tilde-map) | |
206 (define-key compose-map [SunXK_FA_Tilde] compose-tilde-map) | 223 (define-key compose-map [SunXK_FA_Tilde] compose-tilde-map) |
207 )) | 224 )) |
208 | 225 |
209 ;; DEC according to MIT: | 226 ;; DEC according to MIT: |
210 ;; | 227 ;; |
211 (cond ((x-valid-keysym-name-p "Dacute_accent") | 228 (cond ((x-valid-keysym-name-p "Dacute_accent") |
212 (define-key global-map [Dacute_accent] compose-acute-map) | 229 (define-key function-key-map [Dacute_accent] |
230 compose-acute-map) | |
213 (define-key compose-map [Dacute_accent] compose-acute-map) | 231 (define-key compose-map [Dacute_accent] compose-acute-map) |
214 (define-key global-map [Dgrave_accent] compose-grave-map) | 232 (define-key function-key-map [Dgrave_accent] |
233 compose-grave-map) | |
215 (define-key compose-map [Dgrave_accent] compose-grave-map) | 234 (define-key compose-map [Dgrave_accent] compose-grave-map) |
216 (define-key global-map [Dcedilla_accent] compose-cedilla-map) | 235 (define-key function-key-map [Dcedilla_accent] compose-cedilla-map) |
217 (define-key compose-map [Dcedilla_accent] compose-cedilla-map) | 236 (define-key compose-map [Dcedilla_accent] compose-cedilla-map) |
218 (define-key global-map [Dcircumflex_accent] compose-circumflex-map) | 237 (define-key function-key-map [Dcircumflex_accent] |
238 compose-circumflex-map) | |
219 (define-key compose-map [Dcircumflex_accent] compose-circumflex-map) | 239 (define-key compose-map [Dcircumflex_accent] compose-circumflex-map) |
220 (define-key global-map [Dtilde] compose-tilde-map) | 240 (define-key function-key-map [Dtilde] |
241 compose-tilde-map) | |
221 (define-key compose-map [Dtilde] compose-tilde-map) | 242 (define-key compose-map [Dtilde] compose-tilde-map) |
222 (define-key global-map [Dring_accent] compose-ring-map) | 243 (define-key function-key-map [Dring_accent] |
244 compose-ring-map) | |
223 (define-key compose-map [Dring_accent] compose-ring-map) | 245 (define-key compose-map [Dring_accent] compose-ring-map) |
224 )) | 246 )) |
225 | 247 |
226 ;; DEC according to OpenWindows 3: | 248 ;; DEC according to OpenWindows 3: |
227 ;; | 249 ;; |
228 (cond ((x-valid-keysym-name-p "DXK_acute_accent") | 250 (cond ((x-valid-keysym-name-p "DXK_acute_accent") |
229 (define-key global-map [DXK_acute_accent] compose-acute-map) | 251 (define-key function-key-map [DXK_acute_accent] compose-acute-map) |
230 (define-key compose-map [DXK_acute_accent] compose-acute-map) | 252 (define-key compose-map [DXK_acute_accent] compose-acute-map) |
231 (define-key global-map [DXK_grave_accent] compose-grave-map) | 253 (define-key function-key-map [DXK_grave_accent] compose-grave-map) |
232 (define-key compose-map [DXK_grave_accent] compose-grave-map) | 254 (define-key compose-map [DXK_grave_accent] compose-grave-map) |
233 (define-key global-map [DXK_cedilla_accent] compose-cedilla-map) | 255 (define-key function-key-map [DXK_cedilla_accent] |
256 compose-cedilla-map) | |
234 (define-key compose-map [DXK_cedilla_accent] compose-cedilla-map) | 257 (define-key compose-map [DXK_cedilla_accent] compose-cedilla-map) |
235 (define-key global-map [DXK_circumflex_accent] compose-circumflex-map) | 258 (define-key function-key-map [DXK_circumflex_accent] |
259 compose-circumflex-map) | |
236 (define-key compose-map [DXK_circumflex_accent] compose-circumflex-map) | 260 (define-key compose-map [DXK_circumflex_accent] compose-circumflex-map) |
237 (define-key global-map [DXK_tilde] compose-tilde-map) | 261 (define-key function-key-map [DXK_tilde] |
262 compose-tilde-map) | |
238 (define-key compose-map [DXK_tilde] compose-tilde-map) | 263 (define-key compose-map [DXK_tilde] compose-tilde-map) |
239 (define-key global-map [DXK_ring_accent] compose-ring-map) | 264 (define-key function-key-map [DXK_ring_accent] compose-ring-map) |
240 (define-key compose-map [DXK_ring_accent] compose-ring-map) | 265 (define-key compose-map [DXK_ring_accent] compose-ring-map) |
241 )) | 266 )) |
242 | 267 |
243 ;; HP according to MIT: | 268 ;; HP according to MIT: |
244 ;; | 269 ;; |
245 (cond ((x-valid-keysym-name-p "hpmute_acute") | 270 (cond ((x-valid-keysym-name-p "hpmute_acute") |
246 (define-key global-map [hpmute_acute] compose-acute-map) | 271 (define-key function-key-map [hpmute_acute] |
272 compose-acute-map) | |
247 (define-key compose-map [hpmute_acute] compose-acute-map) | 273 (define-key compose-map [hpmute_acute] compose-acute-map) |
248 (define-key global-map [hpmute_grave] compose-grave-map) | 274 (define-key function-key-map [hpmute_grave] |
275 compose-grave-map) | |
249 (define-key compose-map [hpmute_grave] compose-grave-map) | 276 (define-key compose-map [hpmute_grave] compose-grave-map) |
250 (define-key global-map [hpmute_diaeresis] compose-diaeresis-map) | 277 (define-key function-key-map [hpmute_diaeresis] compose-diaeresis-map) |
251 (define-key compose-map [hpmute_diaeresis] compose-diaeresis-map) | 278 (define-key compose-map [hpmute_diaeresis] compose-diaeresis-map) |
252 (define-key global-map [hpmute_asciicircum] compose-circumflex-map) | 279 (define-key function-key-map [hpmute_asciicircum] |
280 compose-circumflex-map) | |
253 (define-key compose-map [hpmute_asciicircum] compose-circumflex-map) | 281 (define-key compose-map [hpmute_asciicircum] compose-circumflex-map) |
254 (define-key global-map [hpmute_asciitilde] compose-tilde-map) | 282 (define-key function-key-map [hpmute_asciitilde] |
283 compose-tilde-map) | |
255 (define-key compose-map [hpmute_asciitilde] compose-tilde-map) | 284 (define-key compose-map [hpmute_asciitilde] compose-tilde-map) |
256 )) | 285 )) |
257 | 286 |
258 ;; HP according to OpenWindows 3: | 287 ;; HP according to OpenWindows 3: |
259 ;; | 288 ;; |
260 (cond ((x-valid-keysym-name-p "hpXK_mute_acute") | 289 (cond ((x-valid-keysym-name-p "hpXK_mute_acute") |
261 (define-key global-map [hpXK_mute_acute] compose-acute-map) | 290 (define-key function-key-map [hpXK_mute_acute] compose-acute-map) |
262 (define-key compose-map [hpXK_mute_acute] compose-acute-map) | 291 (define-key compose-map [hpXK_mute_acute] compose-acute-map) |
263 (define-key global-map [hpXK_mute_grave] compose-grave-map) | 292 (define-key function-key-map [hpXK_mute_grave] compose-grave-map) |
264 (define-key compose-map [hpXK_mute_grave] compose-grave-map) | 293 (define-key compose-map [hpXK_mute_grave] compose-grave-map) |
265 (define-key global-map [hpXK_mute_diaeresis] compose-diaeresis-map) | 294 (define-key function-key-map [hpXK_mute_diaeresis] |
295 compose-diaeresis-map) | |
266 (define-key compose-map [hpXK_mute_diaeresis] compose-diaeresis-map) | 296 (define-key compose-map [hpXK_mute_diaeresis] compose-diaeresis-map) |
267 (define-key global-map [hpXK_mute_asciicircum] compose-circumflex-map) | 297 (define-key function-key-map [hpXK_mute_asciicircum] |
298 compose-circumflex-map) | |
268 (define-key compose-map [hpXK_mute_asciicircum] compose-circumflex-map) | 299 (define-key compose-map [hpXK_mute_asciicircum] compose-circumflex-map) |
269 (define-key global-map [hpXK_mute_asciitilde] compose-tilde-map) | 300 (define-key function-key-map [hpXK_mute_asciitilde] |
301 compose-tilde-map) | |
270 (define-key compose-map [hpXK_mute_asciitilde] compose-tilde-map) | 302 (define-key compose-map [hpXK_mute_asciitilde] compose-tilde-map) |
271 )) | 303 )) |
272 | 304 |
273 ;; HP according to HP-UX 8.0: | 305 ;; HP according to HP-UX 8.0: |
274 ;; | 306 ;; |
275 (cond ((x-valid-keysym-name-p "XK_mute_acute") | 307 (cond ((x-valid-keysym-name-p "XK_mute_acute") |
276 (define-key global-map [XK_mute_acute] compose-acute-map) | 308 (define-key function-key-map [XK_mute_acute] |
309 compose-acute-map) | |
277 (define-key compose-map [XK_mute_acute] compose-acute-map) | 310 (define-key compose-map [XK_mute_acute] compose-acute-map) |
278 (define-key global-map [XK_mute_grave] compose-grave-map) | 311 (define-key function-key-map [XK_mute_grave] |
312 compose-grave-map) | |
279 (define-key compose-map [XK_mute_grave] compose-grave-map) | 313 (define-key compose-map [XK_mute_grave] compose-grave-map) |
280 (define-key global-map [XK_mute_diaeresis] compose-diaeresis-map) | 314 (define-key function-key-map [XK_mute_diaeresis] |
315 compose-diaeresis-map) | |
281 (define-key compose-map [XK_mute_diaeresis] compose-diaeresis-map) | 316 (define-key compose-map [XK_mute_diaeresis] compose-diaeresis-map) |
282 (define-key global-map [XK_mute_asciicircum] compose-circumflex-map) | 317 (define-key function-key-map [XK_mute_asciicircum] |
318 compose-circumflex-map) | |
283 (define-key compose-map [XK_mute_asciicircum] compose-circumflex-map) | 319 (define-key compose-map [XK_mute_asciicircum] compose-circumflex-map) |
284 (define-key global-map [XK_mute_asciitilde] compose-tilde-map) | 320 (define-key function-key-map |
321 [XK_mute_asciitilde] compose-tilde-map) | |
285 (define-key compose-map [XK_mute_asciitilde] compose-tilde-map) | 322 (define-key compose-map [XK_mute_asciitilde] compose-tilde-map) |
286 )) | 323 )) |
324 ;; Xfree seems to use lower case and a hyphen | |
325 (cond ((x-valid-keysym-name-p "dead-tilde") | |
326 (define-key function-key-map [dead-acute] | |
327 compose-acute-map) | |
328 (define-key compose-map [dead-acute] compose-acute-map) | |
329 (define-key function-key-map [dead-grave] | |
330 compose-grave-map) | |
331 (define-key compose-map [dead-grave] compose-grave-map) | |
332 (define-key function-key-map [dead-cedilla] compose-cedilla-map) | |
333 (define-key compose-map [dead-cedilla] compose-cedilla-map) | |
334 (define-key function-key-map [dead_diaeresis] compose-diaeresis-map) | |
335 (define-key compose-map [dead-diaeresis] compose-diaeresis-map) | |
336 (define-key function-key-map [dead-circum] compose-circumflex-map) | |
337 (define-key compose-map [dead-circum] compose-circumflex-map) | |
338 (define-key function-key-map [dead-tilde] | |
339 compose-tilde-map) | |
340 (define-key compose-map [dead-tilde] compose-tilde-map) | |
341 )) | |
342 | |
343 | |
287 | 344 |
288 ;;; The contents of the "dead key" maps. These are shared by the | 345 ;;; The contents of the "dead key" maps. These are shared by the |
289 ;;; compose-map. | 346 ;;; compose-map. |
290 | 347 |
291 (set-keymap-name compose-acute-map 'compose-acute-map) | 348 (set-keymap-name compose-acute-map 'compose-acute-map) |
305 (define-key compose-acute-map "u" [uacute]) | 362 (define-key compose-acute-map "u" [uacute]) |
306 (define-key compose-acute-map "y" [yacute]) | 363 (define-key compose-acute-map "y" [yacute]) |
307 | 364 |
308 (set-keymap-name compose-grave-map 'compose-grave-map) | 365 (set-keymap-name compose-grave-map 'compose-grave-map) |
309 (set-keymap-default-binding compose-grave-map 'self-insert-command) | 366 (set-keymap-default-binding compose-grave-map 'self-insert-command) |
310 (define-key compose-grave-map " " [grave]) | 367 (define-key compose-grave-map " " "`") |
368 (define-key compose-grave-map "`" [grave]) | |
311 (define-key compose-grave-map "A" [Agrave]) | 369 (define-key compose-grave-map "A" [Agrave]) |
312 (define-key compose-grave-map "E" [Egrave]) | 370 (define-key compose-grave-map "E" [Egrave]) |
313 (define-key compose-grave-map "I" [Igrave]) | 371 (define-key compose-grave-map "I" [Igrave]) |
314 (define-key compose-grave-map "O" [Ograve]) | 372 (define-key compose-grave-map "O" [Ograve]) |
315 (define-key compose-grave-map "U" [Ugrave]) | 373 (define-key compose-grave-map "U" [Ugrave]) |
319 (define-key compose-grave-map "o" [ograve]) | 377 (define-key compose-grave-map "o" [ograve]) |
320 (define-key compose-grave-map "u" [ugrave]) | 378 (define-key compose-grave-map "u" [ugrave]) |
321 | 379 |
322 (set-keymap-name compose-cedilla-map 'compose-cedilla-map) | 380 (set-keymap-name compose-cedilla-map 'compose-cedilla-map) |
323 (set-keymap-default-binding compose-cedilla-map 'self-insert-command) | 381 (set-keymap-default-binding compose-cedilla-map 'self-insert-command) |
382 (define-key compose-cedilla-map " " ",") | |
324 (define-key compose-cedilla-map "," [cedilla]) | 383 (define-key compose-cedilla-map "," [cedilla]) |
325 (define-key compose-cedilla-map "C" [Ccedilla]) | 384 (define-key compose-cedilla-map "C" [Ccedilla]) |
326 (define-key compose-cedilla-map "c" [ccedilla]) | 385 (define-key compose-cedilla-map "c" [ccedilla]) |
327 | 386 |
328 (set-keymap-name compose-diaeresis-map 'compose-diaeresis-map) | 387 (set-keymap-name compose-diaeresis-map 'compose-diaeresis-map) |