Mercurial > emacs
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 (" "));