mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-06 03:40:56 -08:00
(Fdefine_key): If the key binding definition looks like an
XEmacs-style key sequence, convert it to Emacs's format.
This commit is contained in:
parent
b9debd5432
commit
2db8f17387
3 changed files with 21 additions and 0 deletions
2
etc/NEWS
2
etc/NEWS
|
|
@ -4617,6 +4617,8 @@ Lisp packages using many minor mode keymaps can now maintain their own
|
|||
keymap alist separate from `minor-mode-map-alist' by adding their
|
||||
keymap alist to this list.
|
||||
|
||||
*** The definition of a key-binding passed to define-key can use XEmacs-style
|
||||
key-sequences, such as [(control a)].
|
||||
** Abbrev changes:
|
||||
|
||||
+++
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
2006-07-22 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* keymap.c (Fdefine_key): If the key binding definition looks like an
|
||||
XEmacs-style key sequence, convert it to Emacs's format.
|
||||
|
||||
2006-07-22 Ralf Angeli <angeli@caeruleus.net>
|
||||
|
||||
* w32fns.c (w32_createwindow): If `left' and/or `top' frame
|
||||
|
|
|
|||
14
src/keymap.c
14
src/keymap.c
|
|
@ -1149,6 +1149,20 @@ binding KEY to DEF is added at the front of KEYMAP. */)
|
|||
|
||||
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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue