summaryrefslogtreecommitdiff
path: root/src/lread.c
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2006-01-29 00:17:11 +0000
committerKaroly Lorentey <lorentey@elte.hu>2006-01-29 00:17:11 +0000
commit9688ff534500a278871366f699cd0ead3524b68a (patch)
treeccbd2eb6198e55f7dae0c2b70b5adb0f3c761b71 /src/lread.c
parent67ddbec3529fd15915d09a196321f7d081dfc610 (diff)
downloademacs-9688ff534500a278871366f699cd0ead3524b68a.tar.gz
Eliminate wrong_kboard_jmpbuf.
* src/keyboard.c (read_char, read_char_minibuf_menu_prompt) (read_key_sequence, read_filtered_event): Eliminate wrong_kboard_jmpbuf. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-500
Diffstat (limited to 'src/lread.c')
-rw-r--r--src/lread.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/lread.c b/src/lread.c
index 0eb54393482..345af109050 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -435,7 +435,7 @@ static void substitute_in_interval P_ ((INTERVAL, Lisp_Object));
/* Get a character from the tty. */
-extern Lisp_Object read_char P_ ((int, int, Lisp_Object *, Lisp_Object, int *, jmp_buf *));
+extern Lisp_Object read_char P_ ((int, int, Lisp_Object *, Lisp_Object, int *));
/* Read input events until we get one that's acceptable for our purposes.
@@ -461,7 +461,6 @@ read_filtered_event (no_switch_frame, ascii_required, error_nonascii,
int no_switch_frame, ascii_required, error_nonascii, input_method;
{
volatile register Lisp_Object val, delayed_switch_frame;
- jmp_buf *volatile wrong_kboard_jmpbuf = alloca (sizeof (jmp_buf));
#ifdef HAVE_WINDOW_SYSTEM
if (display_hourglass_p)
@@ -472,12 +471,10 @@ read_filtered_event (no_switch_frame, ascii_required, error_nonascii,
/* Read until we get an acceptable event. */
retry:
- setjmp (*wrong_kboard_jmpbuf);
+ do
+ val = read_char (0, 0, 0, (input_method ? Qnil : Qt), 0);
+ while (INTEGERP (val) && XINT (val) == -2); /* wrong_kboard_jmpbuf */
- val = read_char (0, 0, 0,
- (input_method ? Qnil : Qt),
- 0, wrong_kboard_jmpbuf);
-
if (BUFFERP (val))
goto retry;