diff options
| author | Chong Yidong | 2006-08-05 01:38:21 +0000 |
|---|---|---|
| committer | Chong Yidong | 2006-08-05 01:38:21 +0000 |
| commit | 092869b9735590049a4be576970c95dc4b53af75 (patch) | |
| tree | d125bdad10c21e64c0af3cad78cd4e5d9affad48 /src | |
| parent | 3046c3f9246fde1c93c30bce6c011204333de29f (diff) | |
| download | emacs-092869b9735590049a4be576970c95dc4b53af75.tar.gz emacs-092869b9735590049a4be576970c95dc4b53af75.zip | |
* keyboard.c (read_char): Rebalance specpdl after receiving jump.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/keyboard.c | 4 |
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 @@ | |||
| 1 | 2006-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 | |||
| 1 | 2006-08-04 Eli Zaretskii <eliz@gnu.org> | 7 | 2006-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; |