+2014-01-17 Eli Zaretskii <eliz@gnu.org>
+
+ * menu.c (Fx_popup_menu): When invoking tty_menu_show, temporarily
+ switch to single keyboard. Prevents daemon crashes when a new
+ client connects while we show a TTY menu in an existing client.
+ (Bug#16479)
+
2014-01-14 Paul Eggert <eggert@cs.ucla.edu>
Fix MinGW64 porting problem with _setjmp.
else
#endif
if (FRAME_TERMCAP_P (f))
- selection = tty_menu_show (f, xpos, ypos, for_click, keymaps, title,
- kbd_menu_navigation, &error_name);
+ {
+ ptrdiff_t count1 = SPECPDL_INDEX ();
+
+ /* Avoid crashes if, e.g., another client will connect while we
+ are in a menu. */
+ temporarily_switch_to_single_kboard (f);
+ selection = tty_menu_show (f, xpos, ypos, for_click, keymaps, title,
+ kbd_menu_navigation, &error_name);
+ unbind_to (count1, Qnil);
+ }
#ifdef HAVE_NS
unbind_to (specpdl_count, Qnil);