changeset 73463:346f9b4afa15

(read_char): Make an element (t . EVENT) in unread-command-events add EVENT to the current command's key sequence. (syms_of_keyboard) <unread-command-events>: Update doc.
author Kim F. Storm <storm@cua.dk>
date Sun, 22 Oct 2006 22:25:03 +0000
parents 9b076439f58a
children e3fbddada23e
files src/keyboard.c
diffstat 1 files changed, 16 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/keyboard.c	Sun Oct 22 21:29:33 2006 +0000
+++ b/src/keyboard.c	Sun Oct 22 22:25:03 2006 +0000
@@ -2537,6 +2537,18 @@
       c = XCAR (Vunread_command_events);
       Vunread_command_events = XCDR (Vunread_command_events);
 
+      reread = 1;
+
+      /* Undo what sit-for did when it unread additional keys
+	 inside universal-argument.  */
+
+      if (CONSP (c)
+	  && EQ (XCAR (c), Qt))
+	{
+	  reread = 0;
+	  c = XCDR (c);
+	}
+
       /* Undo what read_char_x_menu_prompt did when it unread
 	 additional keys returned by Fx_popup_menu.  */
       if (CONSP (c)
@@ -2550,7 +2562,6 @@
 	  && (EQ (c, Qtool_bar) || EQ (c, Qmenu_bar)))
 	*used_mouse_menu = 1;
 
-      reread = 1;
       goto reread_for_input_method;
     }
 
@@ -11226,7 +11237,10 @@
 
   DEFVAR_LISP ("unread-command-events", &Vunread_command_events,
 	       doc: /* List of events to be read as the command input.
-These events are processed first, before actual keyboard input.  */);
+These events are processed first, before actual keyboard input.
+Events read from this list are not normally added to `this-command-keys',
+as they will already have been added once as they were read for the first time.
+An element of the form (t . EVENT) forces EVENT to be added to that list.  */);
   Vunread_command_events = Qnil;
 
   DEFVAR_INT ("unread-command-char", &unread_command_char,