Use _Noreturn rather than NO_RETURN.
No need for separate decl merely because of _Noreturn.
-2012-06-24 Samuel Bronson <naesten@gmail.com> (tiny change)
+2012-06-24 Samuel Bronson <naesten@gmail.com>
* emacsclient.c (set_local_socket): Fix compiler warning (Bug#7838).
+2014-05-06 Samuel Bronson <naesten@gmail.com>
+
+ * keyboard.c (Frecursive_edit): Ensure inc&dec of command_loop_level
+ are matched (bug#17413).
+
2014-05-06 Jarek Czekalski <jarekczek@poczta.onet.pl>
Stop tooltips pulling Emacs window to front (Bug#17408).
if (input_blocked_p ())
return Qnil;
- command_loop_level++;
- update_mode_lines = 17;
-
- if (command_loop_level
+ if (command_loop_level >= 0
&& current_buffer != XBUFFER (XWINDOW (selected_window)->contents))
buffer = Fcurrent_buffer ();
else
buffer = Qnil;
+ /* Don't do anything interesting between the increment and the
+ record_unwind_protect! Otherwise, we could get distracted and
+ never decrement the counter again. */
+ command_loop_level++;
+ update_mode_lines = 17;
+ record_unwind_protect (recursive_edit_unwind, buffer);
+
/* If we leave recursive_edit_1 below with a `throw' for instance,
like it is done in the splash screen display, we have to
make sure that we restore single_kboard as command_loop_1
would have done if it were left normally. */
if (command_loop_level > 0)
temporarily_switch_to_single_kboard (SELECTED_FRAME ());
- record_unwind_protect (recursive_edit_unwind, buffer);
recursive_edit_1 ();
return unbind_to (count, Qnil);