1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-13 16:38:14 +00:00

* keyboard.c (read_char): Rebalance specpdl after receiving jump.

This commit is contained in:
Chong Yidong 2006-08-05 01:38:21 +00:00
parent 3046c3f924
commit 092869b973
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2006-08-04 Chong Yidong <cyd@stupidchicken.com>
* keyboard.c (read_char): Rebalance specpdl after receiving jump.
* process.c: Reapply 2006-08-01 change.
2006-08-04 Eli Zaretskii <eliz@gnu.org>
* w32fns.c (w32_query_font): Fix last change: use stricmp.

View File

@ -2403,7 +2403,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
EMACS_TIME *end_time;
{
volatile Lisp_Object c;
int count;
int count, jmpcount;
jmp_buf local_getcjmp;
jmp_buf save_jump;
volatile int key_already_recorded = 0;
@ -2629,11 +2629,13 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
around any call to sit_for or kbd_buffer_get_event;
it *must not* be in effect when we call redisplay. */
jmpcount = SPECPDL_INDEX ();
if (_setjmp (local_getcjmp))
{
/* We must have saved the outer value of getcjmp here,
so restore it now. */
restore_getcjmp (save_jump);
unbind_to (jmpcount, Qnil);
XSETINT (c, quit_char);
internal_last_event_frame = selected_frame;
Vlast_event_frame = internal_last_event_frame;