Clean up read_key_sequence a bit; reread active keymaps after first event.
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 11 Feb 2013 19:21:23 +0000 (14:21 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 11 Feb 2013 19:21:23 +0000 (14:21 -0500)
commit99d0d6dc23f0fd2ee6d64f0f18a33f2b791c642d
tree2cd8a54c22c9354415306c76bd65dddde723532f
parentf5e1b6804dc2307983e4c55d4d6530549ddccbb7
Clean up read_key_sequence a bit; reread active keymaps after first event.
* src/keyboard.c (read_char, read_char_x_menu_prompt)
(read_char_minibuf_menu_prompt):
Replace nmaps+maps with a single `map' arg.
(follow_key): Operate on a single map.
(active_maps): New function.
(test_undefined): Also return true for nil bindings.
(read_key_sequence): Use active_maps to replace the arrays of keymaps with
a single (composed) keymap.  Remember `first_event' to choose the right
set of active keymaps.  Recompute the set of keymaps after receiving
the first event.  Remove GOBBLE_FIRST_EVENT.
(syms_of_keyboard): Remove inhibit_local_menu_bar_menus.
* src/keyboard.h (read_char): Update declaration.
* src/lread.c (read_filtered_event): Adjust call to read_char.
* lisp/cus-start.el (all): Remove inhibit-local-menu-bar-menus.
etc/NEWS
lisp/ChangeLog
lisp/cus-start.el
src/ChangeLog
src/keyboard.c
src/keyboard.h
src/keymap.c
src/lread.c