Mercurial > emacs
diff src/keymap.c @ 72074:91ea8d22ef60
(Fdefine_key): If the key binding definition looks like an
XEmacs-style key sequence, convert it to Emacs's format.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sat, 22 Jul 2006 21:22:52 +0000 |
parents | df96acbe2970 |
children | 64e86769392f 02e39decdc84 858cb33ae39d |
line wrap: on
line diff
--- a/src/keymap.c Sat Jul 22 13:56:19 2006 +0000 +++ b/src/keymap.c Sat Jul 22 21:22:52 2006 +0000 @@ -1149,6 +1149,20 @@ meta_bit = VECTORP (key) ? meta_modifier : 0x80; + if (VECTORP (def) && ASIZE (def) > 0 && CONSP (AREF (def, make_number (0)))) + { /* DEF is apparently an XEmacs-style keyboard macro. */ + Lisp_Object tmp = Fmake_vector (make_number (ASIZE (def)), Qnil); + int i = ASIZE (def); + while (--i >= 0) + { + Lisp_Object c = AREF (def, i); + if (CONSP (c) && lucid_event_type_list_p (c)) + c = Fevent_convert_list (c); + ASET (tmp, i, c); + } + def = tmp; + } + idx = 0; while (1) {