# HG changeset patch # User Jan D. # Date 1263284085 -3600 # Node ID 0ff664c52820f629711fdf17f5431c98625e1645 # Parent b92c3979701c37ff03e40593f2d04e6059c78bc7# Parent 65abe959e89aa8d5dd5a363fac0326b49361d951 * keyboard.c (read_char): Return after executing from special map. diff -r b92c3979701c -r 0ff664c52820 src/ChangeLog --- a/src/ChangeLog Mon Jan 11 21:11:05 2010 -0800 +++ b/src/ChangeLog Tue Jan 12 09:14:45 2010 +0100 @@ -1,3 +1,7 @@ +2010-01-12 Jan Djärv + + * keyboard.c (read_char): Return after executing from special map. + 2010-01-12 Glenn Morris * emacs.c (REPORT_EMACS_BUG_PRETEST_ADDRESS): Set it to diff -r b92c3979701c -r 0ff664c52820 src/keyboard.c --- a/src/keyboard.c Mon Jan 11 21:11:05 2010 -0800 +++ b/src/keyboard.c Tue Jan 12 09:14:45 2010 +0100 @@ -3178,7 +3178,10 @@ 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. */