summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog4
-rw-r--r--src/keyboard.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index d14ef05a1ff..f52cf8fee63 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2010-01-12 Jan Djärv <jan.h.d@swipnet.se>
+
+ * keyboard.c (read_char): Return after executing from special map.
+
2010-01-12 Glenn Morris <rgm@gnu.org>
* emacs.c (REPORT_EMACS_BUG_PRETEST_ADDRESS): Set it to
diff --git a/src/keyboard.c b/src/keyboard.c
index 13d13cd3276..8bd8cf30468 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -3178,7 +3178,10 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
unbind_to (count, Qnil);
#endif
- goto retry;
+ /* The command may have changed the keymaps. Pretend there is input
+ in another keyboard and return. This will recalculate keymaps. */
+ c = make_number (-2);
+ goto exit;
}
/* Handle things that only apply to characters. */