diff src/lread.c @ 83460:dbd791ef90a1

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
author Karoly Lorentey <lorentey@elte.hu>
date Sun, 29 Jan 2006 00:17:11 +0000
parents c69d44922688
children 9b150bc96d33
line wrap: on
line diff
--- a/src/lread.c	Sat Jan 28 22:46:08 2006 +0000
+++ b/src/lread.c	Sun Jan 29 00:17:11 2006 +0000
@@ -435,7 +435,7 @@
 
 /* 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 @@
      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 until we get an acceptable event.  */
  retry:
-  setjmp (*wrong_kboard_jmpbuf);
-
-  val = read_char (0, 0, 0,
-		   (input_method ? Qnil : Qt),
-		   0, wrong_kboard_jmpbuf);
- 
+  do 
+    val = read_char (0, 0, 0, (input_method ? Qnil : Qt), 0);
+  while (INTEGERP (val) && XINT (val) == -2); /* wrong_kboard_jmpbuf */
+
   if (BUFFERP (val))
     goto retry;