Mercurial > hg > xemacs-beta
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 |