Mercurial > hg > xemacs-beta
changeset 5689:7371081ce8f7
Have command remapping work interactively too, thank you Robert Pluim!
src/ChangeLog addition:
2012-10-14 Aidan Kehoe <kehoea@parhasard.net>
Have command remapping work interactively too, thank you Robert
Pluim.
* event-stream.c (Fdispatch_event):
Obey command remapping here, it wasn't done for us.
* keymap.c:
* keymap.c (command_remapping_for_event): New, needed to observe
command remapping interactively.
* lisp.h: Make it available.
lisp/ChangeLog addition:
2012-10-14 Aidan Kehoe <kehoea@parhasard.net>
* help.el:
* help.el (describe-function-1):
Add some newlines here when dealing with remapped commands, thank
you Robert Pluim.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 14 Oct 2012 22:10:39 +0100 |
parents | b6c506c30f93 |
children | 7b5f88e5b456 |
files | lisp/ChangeLog lisp/help.el src/ChangeLog src/event-stream.c src/keymap.c src/lisp.h |
diffstat | 6 files changed, 47 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sun Oct 14 16:14:25 2012 +0100 +++ b/lisp/ChangeLog Sun Oct 14 22:10:39 2012 +0100 @@ -1,3 +1,10 @@ +2012-10-14 Aidan Kehoe <kehoea@parhasard.net> + + * help.el: + * help.el (describe-function-1): + Add some newlines here when dealing with remapped commands, thank + you Robert Pluim. + 2012-10-13 Mats Lidell <matsl@xemacs.org> * process.el (call-process-shell-command): New function from GNU.
--- a/lisp/help.el Sun Oct 14 16:14:25 2012 +0100 +++ b/lisp/help.el Sun Oct 14 22:10:39 2012 +0100 @@ -1544,10 +1544,10 @@ (format "\n\\[%s]" function)))) (when commands-remapped-to (if (cdr commands-remapped-to) - (princ (format "The following functions are \ + (princ (format "\n\nThe following functions are \ remapped to it:\n`%s'" (mapconcat #'prin1-to-string commands-remapped-to "', `"))) - (princ (format "`%s' is remapped to it.\n" + (princ (format "\n\n`%s' is remapped to it.\n" (car commands-remapped-to))))))))))))))
--- a/src/ChangeLog Sun Oct 14 16:14:25 2012 +0100 +++ b/src/ChangeLog Sun Oct 14 22:10:39 2012 +0100 @@ -1,3 +1,14 @@ +2012-10-14 Aidan Kehoe <kehoea@parhasard.net> + + Have command remapping work interactively too, thank you Robert + Pluim. + * event-stream.c (Fdispatch_event): + Obey command remapping here, it wasn't done for us. + * keymap.c: + * keymap.c (command_remapping_for_event): New, needed to observe + command remapping interactively. + * lisp.h: Make it available. + 2012-10-14 Aidan Kehoe <kehoea@parhasard.net> Respect face and display table information in the minibuffer
--- a/src/event-stream.c Sun Oct 14 16:14:25 2012 +0100 +++ b/src/event-stream.c Sun Oct 14 22:10:39 2012 +0100 @@ -4550,8 +4550,6 @@ int magic_undo = 0; Elemcount magic_undo_count = 20; - Vthis_command = leaf; - /* Don't push an undo boundary if the command set the prefix arg, or if we are executing a keyboard macro, or if in the minibuffer. If the command we are about to execute is @@ -4567,6 +4565,8 @@ if (SYMBOLP (leaf)) { Lisp_Object prop = Fget (leaf, Qself_insert_defer_undo, Qnil); + Lisp_Object remap = Qnil; + if (NATNUMP (prop)) { magic_undo = 1; @@ -4587,8 +4587,16 @@ magic_undo = 1; else if (EQ (leaf, Qself_insert_command)) magic_undo = 1; + + remap = command_remapping_for_event (leaf, event); + if (!NILP (remap)) + { + leaf = remap; + } } + Vthis_command = leaf; + if (!magic_undo) command_builder->self_insert_countdown = 0; if (NILP (XCONSOLE (console)->prefix_arg)
--- a/src/keymap.c Sun Oct 14 16:14:25 2012 +0100 +++ b/src/keymap.c Sun Oct 14 22:10:39 2012 +0100 @@ -2127,6 +2127,20 @@ return Qnil; } +Lisp_Object +command_remapping_for_event (Lisp_Object command, Lisp_Object event0) +{ + /* This function can GC */ + Lisp_Object maps[100]; + int nmaps; + + nmaps = get_relevant_keymaps (event0, Qnil, countof (maps), maps); + if (nmaps > countof (maps)) + nmaps = countof (maps); + + return command_remapping (command, nmaps, maps); +} + DEFUN ("command-remapping", Fcommand_remapping, 1, 3, 0, /* Return the remapping for command COMMAND.
--- a/src/lisp.h Sun Oct 14 16:14:25 2012 +0100 +++ b/src/lisp.h Sun Oct 14 22:10:39 2012 +0100 @@ -5473,6 +5473,9 @@ EXFUN (Fmake_sparse_keymap, 1); EXFUN (Fset_keymap_parents, 2); +Lisp_Object command_remapping_for_event (Lisp_Object command, + Lisp_Object event0); + void where_is_to_char (Lisp_Object, Eistring *); /* Defined in lread.c */