Mercurial > emacs
diff src/sysdep.c @ 54166:787d9a46cf1a
(BUFFER_SIZE_FACTOR): Remove.
(read_input_waiting): Adapt to new read_socket_hook interface.
Remove allocation and initialization of local input_event buffer,
as read_socket_hook stores events directly in fifo. Allocate and
initialize local hold_quit event to handle postponed quit event
(and store it if set by kbd_buffer_store_event_hold).
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Fri, 27 Feb 2004 23:47:48 +0000 |
parents | d85f8f2e71f7 |
children | 45d805d79d29 b44978264e1d |
line wrap: on
line diff
--- a/src/sysdep.c Fri Feb 27 23:47:13 2004 +0000 +++ b/src/sysdep.c Fri Feb 27 23:47:48 2004 +0000 @@ -2614,13 +2614,6 @@ /* Read keyboard input into the standard buffer, waiting for at least one character. */ -/* Make all keyboard buffers much bigger when using a window system. */ -#ifdef HAVE_WINDOW_SYSTEM -#define BUFFER_SIZE_FACTOR 16 -#else -#define BUFFER_SIZE_FACTOR 1 -#endif - void read_input_waiting () { @@ -2629,26 +2622,19 @@ if (read_socket_hook) { - struct input_event buf[256]; - for (i = 0; i < 256; i++) - EVENT_INIT (buf[i]); - + struct input_event hold_quit; + + EVENT_INIT (hold_quit); + hold_quit.kind = NO_EVENT; + read_alarm_should_throw = 0; if (! setjmp (read_alarm_throw)) - nread = (*read_socket_hook) (0, buf, 256, 1); + nread = (*read_socket_hook) (0, 1, &hold_quit); else nread = -1; - /* Scan the chars for C-g and store them in kbd_buffer. */ - for (i = 0; i < nread; i++) - { - kbd_buffer_store_event (&buf[i]); - /* Don't look at input that follows a C-g too closely. - This reduces lossage due to autorepeat on C-g. */ - if (buf[i].kind == ASCII_KEYSTROKE_EVENT - && buf[i].code == quit_char) - break; - } + if (hold_quit.kind != NO_EVENT) + kbd_buffer_store_event (&hold_quit); } else {