changeset 110759:c476e521566f

Don't add an echo dash for the first keystroke (Bug#7137). * src/keyboard.c (echo_prompt): Function moved into read_key_sequence. (read_key_sequence): Inline echo_prompt. (echo_dash): Add a dash only if key is continued (Bug#7137).
author Chong Yidong <cyd@stupidchicken.com>
date Mon, 04 Oct 2010 14:16:22 -0400
parents 2b72330aa98a
children ad76d32381df
files src/ChangeLog src/keyboard.c
diffstat 2 files changed, 17 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Mon Oct 04 10:22:57 2010 -0700
+++ b/src/ChangeLog	Mon Oct 04 14:16:22 2010 -0400
@@ -1,3 +1,9 @@
+2010-10-04  Chong Yidong  <cyd@stupidchicken.com>
+
+	* keyboard.c (echo_prompt): Function moved into read_key_sequence.
+	(read_key_sequence): Inline echo_prompt.
+	(echo_dash): Add a dash only if key is continued (Bug#7137).
+
 2010-10-04  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	Remove O_RDONLY, O_WRONLY definitions, not needed.
--- a/src/keyboard.c	Mon Oct 04 10:22:57 2010 -0700
+++ b/src/keyboard.c	Mon Oct 04 14:16:22 2010 -0400
@@ -645,18 +645,6 @@
 static int cannot_suspend;
 
 
-/* Install the string STR as the beginning of the string of echoing,
-   so that it serves as a prompt for the next character.
-   Also start echoing.  */
-
-void
-echo_prompt (Lisp_Object str)
-{
-  current_kboard->echo_string = str;
-  current_kboard->echo_after_prompt = SCHARS (str);
-  echo_now ();
-}
-
 /* Add C to the echo string, if echoing is going on.
    C can be a character, which is printed prettily ("M-C-x" and all that
    jazz), or a symbol, whose name is printed.  */
@@ -755,6 +743,9 @@
   if (NILP (current_kboard->echo_string))
     return;
 
+  if (this_command_key_count == 0)
+    return;
+
   if (!current_kboard->immediate_echo
       && SCHARS (current_kboard->echo_string) == 0)
     return;
@@ -9125,7 +9116,14 @@
   if (INTERACTIVE)
     {
       if (!NILP (prompt))
-	echo_prompt (prompt);
+	{
+	  /* Install the string STR as the beginning of the string of
+	     echoing, so that it serves as a prompt for the next
+	     character.  */
+	  current_kboard->echo_string = prompt;
+	  current_kboard->echo_after_prompt = SCHARS (prompt);
+	  echo_now ();
+	}
       else if (cursor_in_echo_area
 	       && (FLOATP (Vecho_keystrokes) || INTEGERP (Vecho_keystrokes))
 	       && NILP (Fzerop (Vecho_keystrokes)))