Subject: Re: bug#17659: 24.3.90; C-x 8 ? displays help instead of inserting INVERTED QUESTION MARK
From: Stefan Monnier <[email-masked]>
To: Eric Hanchrow <[email-masked]>
Cc: [email-masked]
Date: Wed, 18 Jun 2014 23:52:49 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

> The subject says it all: when I type C-x 8 ?, I expect emacs to insert
> into the buffer Unicode 191, INVERTED QUESTION MARK.  However, instead
> it displays a *Help* buffer whose first line reads

>         Key translations Starting With C-x 8:

I installed the patch below into emacs-24 which seems to fix this problem.

        Stefan

=== modified file 'src/keyboard.c'
--- src/keyboard.c	2014-05-06 16:16:57 +0000
+++ src/keyboard.c	2014-06-19 03:30:12 +0000
@@ -9384,16 +9385,6 @@
 	  first_unbound = min (t, first_unbound);
 
 	  head = EVENT_HEAD (key);
-	  if (help_char_p (head) && t > 0)
-	    {
-	      read_key_sequence_cmd = Vprefix_help_command;
-	      keybuf[t++] = key;
-	      last_nonmenu_event = key;
-	      /* The Microsoft C compiler can't handle the goto that
-		 would go here.  */
-	      dummyflag = 1;
-	      break;
-	    }
 
 	  if (SYMBOLP (head))
 	    {
@@ -9651,6 +9642,17 @@
 
 	  goto replay_sequence;
 	}
+
+      if (NILP (current_binding)
+	  && help_char_p (EVENT_HEAD (key)) && t > 1)
+	    {
+	      read_key_sequence_cmd = Vprefix_help_command;
+	      /* The Microsoft C compiler can't handle the goto that
+		 would go here.  */
+	      dummyflag = 1;
+	      break;
+	    }
+
       /* If KEY is not defined in any of the keymaps,
 	 and cannot be part of a function key or translation,
 	 and is a shifted function key,