Ar an naoú lá is fiche de mí Méan Fómhair, scríobh Aidan Kehoe:
Ar an t-ochtú lá is fiche de mí Méan Fómhair, scríobh Robert Pluim:
> [...] What can I get you to help debug this?
The report should be plenty, I can reproduce. Will look into it this
weekend.
A little later than promised, I’m afraid, but done now. Thank you for the
report, it’s something I really should have caught myself, but if you don’t use
functionality yourself, it’s always a risk.
# HG changeset patch
# User Aidan Kehoe <kehoea(a)parhasard.net>
# Date 1350249039 -3600
# Node ID 7371081ce8f743a2fcd6651b77b5236d4cb05f16
# Parent b6c506c30f93e8b9f06c6b9e5d6d0dcc9cd3f5c3
Have command remapping work interactively too, thank you Robert Pluim!
src/ChangeLog addition:
2012-10-14 Aidan Kehoe <kehoea(a)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(a)parhasard.net>
* help.el:
* help.el (describe-function-1):
Add some newlines here when dealing with remapped commands, thank
you Robert Pluim.
diff -r b6c506c30f93 -r 7371081ce8f7 lisp/ChangeLog
--- 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(a)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(a)xemacs.org>
* process.el (call-process-shell-command): New function from GNU.
diff -r b6c506c30f93 -r 7371081ce8f7 lisp/help.el
--- 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))))))))))))))
diff -r b6c506c30f93 -r 7371081ce8f7 src/ChangeLog
--- 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(a)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(a)parhasard.net>
Respect face and display table information in the minibuffer
diff -r b6c506c30f93 -r 7371081ce8f7 src/event-stream.c
--- 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)
diff -r b6c506c30f93 -r 7371081ce8f7 src/keymap.c
--- 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.
diff -r b6c506c30f93 -r 7371081ce8f7 src/lisp.h
--- 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 */
--
‘Liston operated so fast that he once accidentally amputated an assistant’s
fingers along with a patient’s leg, […] The patient and the assistant both
died of sepsis, and a spectator reportedly died of shock, resulting in the
only known procedure with a 300% mortality.’ (Atul Gawande, NEJM, 2012)
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-beta