diff options
author | Richard M. Stallman <rms@gnu.org> | 2003-04-30 12:08:07 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 2003-04-30 12:08:07 +0000 |
commit | 2ff4d3d9b8542bbc04b38f4bc577f9111919cb8b (patch) | |
tree | eb43bae01ee81d6fee8657d817407f6df84b7f6d /src/keyboard.c | |
parent | 9568459289e971e1e1a912a5f5cb4db181b41e0e (diff) | |
download | emacs-2ff4d3d9b8542bbc04b38f4bc577f9111919cb8b.tar.gz |
(echo_char): Don't clear out a dash that follows a space.
Diffstat (limited to 'src/keyboard.c')
-rw-r--r-- | src/keyboard.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index 009184add07..e2e61d25798 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -785,14 +785,19 @@ echo_char (c) /* 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) + && SCHARS (echo_string) > 1) { - Lisp_Object last_char, idx; + 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 (" ")); |