diff src/keyboard.c @ 90601:a1a25ac6c88a

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 427-436) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 134-136) - Merge from emacs--devo--0 - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-110
author Miles Bader <miles@gnu.org>
date Thu, 14 Sep 2006 09:24:00 +0000
parents 6823a91487f2 becf85cadcc0
children b5c13d1564a9
line wrap: on
line diff
--- a/src/keyboard.c	Wed Sep 06 07:30:39 2006 +0000
+++ b/src/keyboard.c	Thu Sep 14 09:24:00 2006 +0000
@@ -3257,8 +3257,9 @@
       goto retry;
     }
 
-  if (! reread || this_command_key_count == 0
-      || this_command_key_count_reset)
+  if ((! reread || this_command_key_count == 0
+       || this_command_key_count_reset)
+      && !end_time)
     {
 
       /* Don't echo mouse motion events.  */
@@ -8765,17 +8766,25 @@
      the initial keymaps from the current buffer.  */
   nmaps = 0;
 
-  if (!NILP (current_kboard->Voverriding_terminal_local_map)
-      || !NILP (Voverriding_local_map))
-    {
-      if (3 > nmaps_allocated)
-	{
-	  submaps = (Lisp_Object *) alloca (3 * sizeof (submaps[0]));
-	  defs    = (Lisp_Object *) alloca (3 * sizeof (defs[0]));
-	  nmaps_allocated = 3;
+  if (!NILP (current_kboard->Voverriding_terminal_local_map))
+    {
+      if (2 > nmaps_allocated)
+	{
+	  submaps = (Lisp_Object *) alloca (2 * sizeof (submaps[0]));
+	  defs    = (Lisp_Object *) alloca (2 * sizeof (defs[0]));
+	  nmaps_allocated = 2;
 	}
       if (!NILP (current_kboard->Voverriding_terminal_local_map))
 	submaps[nmaps++] = current_kboard->Voverriding_terminal_local_map;
+    }
+  else if (!NILP (Voverriding_local_map))
+    {
+      if (2 > nmaps_allocated)
+	{
+	  submaps = (Lisp_Object *) alloca (2 * sizeof (submaps[0]));
+	  defs    = (Lisp_Object *) alloca (2 * sizeof (defs[0]));
+	  nmaps_allocated = 2;
+	}
       if (!NILP (Voverriding_local_map))
 	submaps[nmaps++] = Voverriding_local_map;
     }
@@ -10087,7 +10096,9 @@
 if there is a doubt, the value is t.  */)
      ()
 {
-  if (!NILP (Vunread_command_events) || unread_command_char != -1)
+  if (!NILP (Vunread_command_events) || unread_command_char != -1
+      || !NILP (Vunread_post_input_method_events)
+      || !NILP (Vunread_input_method_events))
     return (Qt);
 
   get_input_pending (&input_pending,