Mercurial > emacs
changeset 72276:b3b5d904f956
* keyboard.c (read_char): Rebalance specpdl after receiving jump.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sat, 05 Aug 2006 01:38:21 +0000 |
parents | eb0b545cf8c7 |
children | a6b9ee835f88 |
files | src/ChangeLog src/keyboard.c |
diffstat | 2 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Fri Aug 04 17:22:18 2006 +0000 +++ b/src/ChangeLog Sat Aug 05 01:38:21 2006 +0000 @@ -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.
--- a/src/keyboard.c Fri Aug 04 17:22:18 2006 +0000 +++ b/src/keyboard.c Sat Aug 05 01:38:21 2006 +0000 @@ -2403,7 +2403,7 @@ 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 @@ 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;