summaryrefslogtreecommitdiff
path: root/src/keyboard.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2003-04-30 12:08:07 +0000
committerRichard M. Stallman <rms@gnu.org>2003-04-30 12:08:07 +0000
commit2ff4d3d9b8542bbc04b38f4bc577f9111919cb8b (patch)
treeeb43bae01ee81d6fee8657d817407f6df84b7f6d /src/keyboard.c
parent9568459289e971e1e1a912a5f5cb4db181b41e0e (diff)
downloademacs-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.c11
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 (" "));