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)