changeset 56421:0ef3adf2dcd7

Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-455 Bash the dashes 2004-07-14 K,Ba(Broly L,Bu(Brentey <lorentey@elte.hu> * src/keyboard.c (echo_dash): Do nothing if there already is a dash at the end of the echo string.
author Miles Bader <miles@gnu.org>
date Wed, 14 Jul 2004 22:42:44 +0000
parents 7e766b87637b
children 36170ef90094
files src/ChangeLog src/keyboard.c
diffstat 2 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Wed Jul 14 22:25:09 2004 +0000
+++ b/src/ChangeLog	Wed Jul 14 22:42:44 2004 +0000
@@ -1,3 +1,8 @@
+2004-07-14  K,Ba(Broly L,Bu(Brentey  <lorentey@elte.hu>
+
+	* keyboard.c (echo_dash): Do nothing if there already is a dash
+	at the end of the echo string.
+
 2004-07-12  Kim F. Storm  <storm@cua.dk>
 
 	* alloc.c (mark_object): Only look at Lisp_Misc_Save_Value
--- a/src/keyboard.c	Wed Jul 14 22:25:09 2004 +0000
+++ b/src/keyboard.c	Wed Jul 14 22:42:44 2004 +0000
@@ -802,6 +802,21 @@
       == SCHARS (current_kboard->echo_string))
     return;
 
+  /* Do nothing if we have already put a dash at the end.  */
+  if (SCHARS (current_kboard->echo_string) > 1)
+    {
+	  Lisp_Object last_char, prev_char, idx;
+
+	  idx = make_number (SCHARS (current_kboard->echo_string) - 2);
+	  prev_char = Faref (current_kboard->echo_string, idx);
+
+	  idx = make_number (SCHARS (current_kboard->echo_string) - 1);
+	  last_char = Faref (current_kboard->echo_string, idx);
+
+	  if (XINT (last_char) == '-' && XINT (prev_char) != ' ')
+	    return;
+    }
+
   /* Put a dash at the end of the buffer temporarily,
      but make it go away when the next character is added.  */
   current_kboard->echo_string = concat2 (current_kboard->echo_string,