diff options
| author | Stefan Monnier | 2006-07-22 21:22:52 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2006-07-22 21:22:52 +0000 |
| commit | 2db8f1738723969e558e3e9417ef3dff39ab7bf1 (patch) | |
| tree | 5ef427e1bcdd21f83fcc63574ee2fe9de8a1a4cb /src | |
| parent | b9debd5432b6d2e6fca6cda14f19a27c075717de (diff) | |
| download | emacs-2db8f1738723969e558e3e9417ef3dff39ab7bf1.tar.gz emacs-2db8f1738723969e558e3e9417ef3dff39ab7bf1.zip | |
(Fdefine_key): If the key binding definition looks like an
XEmacs-style key sequence, convert it to Emacs's format.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/keymap.c | 14 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 628d5dba0a9..10a525f8a3f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2006-07-22 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * keymap.c (Fdefine_key): If the key binding definition looks like an | ||
| 4 | XEmacs-style key sequence, convert it to Emacs's format. | ||
| 5 | |||
| 1 | 2006-07-22 Ralf Angeli <angeli@caeruleus.net> | 6 | 2006-07-22 Ralf Angeli <angeli@caeruleus.net> |
| 2 | 7 | ||
| 3 | * w32fns.c (w32_createwindow): If `left' and/or `top' frame | 8 | * w32fns.c (w32_createwindow): If `left' and/or `top' frame |
diff --git a/src/keymap.c b/src/keymap.c index 71fd5f03390..4871179c420 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -1149,6 +1149,20 @@ binding KEY to DEF is added at the front of KEYMAP. */) | |||
| 1149 | 1149 | ||
| 1150 | meta_bit = VECTORP (key) ? meta_modifier : 0x80; | 1150 | meta_bit = VECTORP (key) ? meta_modifier : 0x80; |
| 1151 | 1151 | ||
| 1152 | if (VECTORP (def) && ASIZE (def) > 0 && CONSP (AREF (def, make_number (0)))) | ||
| 1153 | { /* DEF is apparently an XEmacs-style keyboard macro. */ | ||
| 1154 | Lisp_Object tmp = Fmake_vector (make_number (ASIZE (def)), Qnil); | ||
| 1155 | int i = ASIZE (def); | ||
| 1156 | while (--i >= 0) | ||
| 1157 | { | ||
| 1158 | Lisp_Object c = AREF (def, i); | ||
| 1159 | if (CONSP (c) && lucid_event_type_list_p (c)) | ||
| 1160 | c = Fevent_convert_list (c); | ||
| 1161 | ASET (tmp, i, c); | ||
| 1162 | } | ||
| 1163 | def = tmp; | ||
| 1164 | } | ||
| 1165 | |||
| 1152 | idx = 0; | 1166 | idx = 0; |
| 1153 | while (1) | 1167 | while (1) |
| 1154 | { | 1168 | { |