Lisp_Object prev_event,
bool *used_mouse_menu, struct timespec *end_time)
{
- Lisp_Object volatile c;
+ Lisp_Object c;
sys_jmp_buf local_getcjmp;
sys_jmp_buf save_jump;
Lisp_Object tem, save;
it *must not* be in effect when we call redisplay. */
specpdl_ref jmpcount = SPECPDL_INDEX ();
+ Lisp_Object volatile c_volatile;
if (sys_setjmp (local_getcjmp))
{
+ c = c_volatile;
/* Handle quits while reading the keyboard. */
/* We must have saved the outer value of getcjmp here,
so restore it now. */
goto non_reread;
}
+ c_volatile = c;
+#if GCC_LINT && __GNUC__ && !__clang__
+ /* This useless assignment pacifies GCC 14.2.1 x86-64
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21161>. */
+ c = c_volatile;
+#endif
+
/* Start idle timers if no time limit is supplied. We don't do it
if a time limit is supplied to avoid an infinite recursion in the
situation where an idle timer calls `sit-for'. */
}
reread = true;
}
+
+ c_volatile = c;
}
/* Read something from current KBOARD's side queue, if possible. */
if (!CONSP (KVAR (current_kboard, kbd_queue)))
emacs_abort ();
c = XCAR (KVAR (current_kboard, kbd_queue));
+ c_volatile = c;
kset_kbd_queue (current_kboard,
XCDR (KVAR (current_kboard, kbd_queue)));
if (NILP (KVAR (current_kboard, kbd_queue)))
c = XCDR (c);
recorded = true;
}
+
+ c_volatile = c;
}
non_reread:
d = Faref (KVAR (current_kboard, Vkeyboard_translate_table), c);
/* nil in keyboard-translate-table means no translation. */
if (!NILP (d))
- c = d;
+ c_volatile = c = d;
}
}
Vunread_command_events = Fcons (c, Vunread_command_events);
}
c = posn;
+ c_volatile = c;
}
}
}
/* It returned one event or more. */
c = XCAR (tem);
+ c_volatile = c;
Vunread_post_input_method_events
= nconc2 (XCDR (tem), Vunread_post_input_method_events);
}
do
{
c = read_char (0, Qnil, Qnil, 0, NULL);
+ c_volatile = c;
if (EVENT_HAS_PARAMETERS (c)
&& EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_click))
XSETCAR (help_form_saved_window_configs, Qnil);
{
cancel_echoing ();
do
- c = read_char (0, Qnil, Qnil, 0, NULL);
+ c_volatile = c = read_char (0, Qnil, Qnil, 0, NULL);
while (BUFFERP (c));
}
}