aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChong Yidong2006-08-05 01:38:21 +0000
committerChong Yidong2006-08-05 01:38:21 +0000
commit092869b9735590049a4be576970c95dc4b53af75 (patch)
treed125bdad10c21e64c0af3cad78cd4e5d9affad48 /src
parent3046c3f9246fde1c93c30bce6c011204333de29f (diff)
downloademacs-092869b9735590049a4be576970c95dc4b53af75.tar.gz
emacs-092869b9735590049a4be576970c95dc4b53af75.zip
* keyboard.c (read_char): Rebalance specpdl after receiving jump.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog6
-rw-r--r--src/keyboard.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 59be848bf58..aa025125067 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
12006-08-04 Chong Yidong <cyd@stupidchicken.com>
2
3 * keyboard.c (read_char): Rebalance specpdl after receiving jump.
4
5 * process.c: Reapply 2006-08-01 change.
6
12006-08-04 Eli Zaretskii <eliz@gnu.org> 72006-08-04 Eli Zaretskii <eliz@gnu.org>
2 8
3 * w32fns.c (w32_query_font): Fix last change: use stricmp. 9 * w32fns.c (w32_query_font): Fix last change: use stricmp.
diff --git a/src/keyboard.c b/src/keyboard.c
index 95d880d1209..a4e1c98c013 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -2403,7 +2403,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
2403 EMACS_TIME *end_time; 2403 EMACS_TIME *end_time;
2404{ 2404{
2405 volatile Lisp_Object c; 2405 volatile Lisp_Object c;
2406 int count; 2406 int count, jmpcount;
2407 jmp_buf local_getcjmp; 2407 jmp_buf local_getcjmp;
2408 jmp_buf save_jump; 2408 jmp_buf save_jump;
2409 volatile int key_already_recorded = 0; 2409 volatile int key_already_recorded = 0;
@@ -2629,11 +2629,13 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
2629 around any call to sit_for or kbd_buffer_get_event; 2629 around any call to sit_for or kbd_buffer_get_event;
2630 it *must not* be in effect when we call redisplay. */ 2630 it *must not* be in effect when we call redisplay. */
2631 2631
2632 jmpcount = SPECPDL_INDEX ();
2632 if (_setjmp (local_getcjmp)) 2633 if (_setjmp (local_getcjmp))
2633 { 2634 {
2634 /* We must have saved the outer value of getcjmp here, 2635 /* We must have saved the outer value of getcjmp here,
2635 so restore it now. */ 2636 so restore it now. */
2636 restore_getcjmp (save_jump); 2637 restore_getcjmp (save_jump);
2638 unbind_to (jmpcount, Qnil);
2637 XSETINT (c, quit_char); 2639 XSETINT (c, quit_char);
2638 internal_last_event_frame = selected_frame; 2640 internal_last_event_frame = selected_frame;
2639 Vlast_event_frame = internal_last_event_frame; 2641 Vlast_event_frame = internal_last_event_frame;