summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2010-01-13 10:33:19 +0900
committerKenichi Handa <handa@m17n.org>2010-01-13 10:33:19 +0900
commitd1bf28dc12ef1a0f3cecbf78f38795db27b38574 (patch)
treef7030cdefb9d5d8423619e7d70273ae98c011821 /src
parentdc954cb273234237b615b93b6368d4adbdea31c4 (diff)
parentca22a44072c65a233af5b4c12256dc5fd266cb85 (diff)
downloademacs-d1bf28dc12ef1a0f3cecbf78f38795db27b38574.tar.gz
merge trunk
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog14
-rw-r--r--src/emacs.c6
-rw-r--r--src/keyboard.c12
3 files changed, 28 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 55e69ff9340..6e3fc4ff1c5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -16,6 +16,20 @@
* composite.c (composition_reseat_it): Don't check PT if STRING is
non nil.
+2010-01-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * keyboard.c (read_char): Don't apply previous change when current
+ buffer is unchanged by command execution.
+
+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
+ bug-gnu-emacs rather than emacs-pretest-bug.
+
2010-01-11 Chong Yidong <cyd@stupidchicken.com>
* nsterm.m (syms_of_nsterm): Initialize Qcontrol etc. before
diff --git a/src/emacs.c b/src/emacs.c
index 8b88985969b..dc19c13e8a8 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -1,7 +1,7 @@
/* Fully extensible Emacs, running on Unix, intended for GNU.
Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
- Free Software Foundation, Inc.
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+ 2010 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -747,7 +747,7 @@ void (*__malloc_initialize_hook) () = malloc_initialize_hook;
#define REPORT_EMACS_BUG_ADDRESS "bug-gnu-emacs@gnu.org"
-#define REPORT_EMACS_BUG_PRETEST_ADDRESS "emacs-pretest-bug@gnu.org"
+#define REPORT_EMACS_BUG_PRETEST_ADDRESS "bug-gnu-emacs@gnu.org"
/* This function is used to determine an address to which bug report should
be sent. */
diff --git a/src/keyboard.c b/src/keyboard.c
index 13d13cd3276..3b57c6e470f 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -3155,6 +3155,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
if (!NILP (tem))
{
+ struct buffer *prev_buffer = current_buffer;
#if 0 /* This shouldn't be necessary anymore. --lorentey */
int was_locked = single_kboard;
int count = SPECPDL_INDEX ();
@@ -3178,7 +3179,16 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
unbind_to (count, Qnil);
#endif
- goto retry;
+ if (current_buffer != prev_buffer)
+ {
+ /* 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;
+ }
+ else
+ goto retry;
}
/* Handle things that only apply to characters. */