changeset 50749:d4d06920c3ed

(echo_char): Don't clear out a dash that follows a space.
author Richard M. Stallman <rms@gnu.org>
date Wed, 30 Apr 2003 12:08:07 +0000
parents 7c1d1ca51ca7
children 09355400d773
files src/keyboard.c
diffstat 1 files changed, 9 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/keyboard.c	Wed Apr 30 12:06:39 2003 +0000
+++ b/src/keyboard.c	Wed Apr 30 12:08:07 2003 +0000
@@ -785,14 +785,19 @@
       /* Replace a dash from echo_dash with a space, otherwise
 	 add a space at the end as a separator between keys.  */
       if (STRINGP (echo_string)
-	  && SCHARS (echo_string) > 0)
-	{
-	  Lisp_Object last_char, idx;
+	  && SCHARS (echo_string) > 1)
+	{
+	  Lisp_Object last_char, prev_char, idx;
+
+	  idx = make_number (SCHARS (echo_string) - 2);
+	  prev_char = Faref (echo_string, idx);
 
 	  idx = make_number (SCHARS (echo_string) - 1);
 	  last_char = Faref (echo_string, idx);
 
-	  if (XINT (last_char) == '-')
+	  /* We test PREV_CHAR to make sure this isn't the echoing
+	     of a minus-sign.  */
+	  if (XINT (last_char) == '-' && XINT (prev_char) != ' ')
 	    Faset (echo_string, idx, make_number (' '));
 	  else
 	    echo_string = concat2 (echo_string, build_string (" "));