diff options
author | Eli Zaretskii <eliz@gnu.org> | 2010-11-09 20:36:21 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2010-11-09 20:36:21 +0200 |
commit | 86520d8c1737985eb24dabb9de1f90b622e3bbd5 (patch) | |
tree | 1c944a01a62c4de0f7168833c4138fe290114aa7 /src/keyboard.c | |
parent | 794a4b6d178e5242c693486a6be7fd875820fb45 (diff) | |
download | emacs-86520d8c1737985eb24dabb9de1f90b622e3bbd5.tar.gz emacs-86520d8c1737985eb24dabb9de1f90b622e3bbd5.tar.bz2 emacs-86520d8c1737985eb24dabb9de1f90b622e3bbd5.zip |
Fix 2010-05-05T22:14:15Z!lekktu@gmail.com.
keyboard.c (kbd_buffer_nr_stored): Define only ifdef subprocesses.
(kbd_buffer_store_event_hold, kbd_buffer_get_event)
(tty_read_avail_input): Call kbd_buffer_nr_stored only ifdef
subprocesses. Use buffer_free only ifdef subprocesses.
process.c (init_process) [subprocesses]: Init kbd_is_on_hold in
the subprocesses version, not in the non-subprocesses one.
Diffstat (limited to 'src/keyboard.c')
-rw-r--r-- | src/keyboard.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index 311f42fbb3b..b35e4ae84e2 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -3783,6 +3783,7 @@ event_to_kboard (event) return FRAME_KBOARD (XFRAME (frame)); } +#ifdef subprocesses /* Return the number of slots occupied in kbd_buffer. */ static int @@ -3795,6 +3796,7 @@ kbd_buffer_nr_stored (void) : ((kbd_buffer + KBD_BUFFER_SIZE) - kbd_fetch_ptr + (kbd_store_ptr - kbd_buffer))); } +#endif /* subprocesses */ Lisp_Object Vthrow_on_input; @@ -3918,6 +3920,7 @@ kbd_buffer_store_event_hold (event, hold_quit) { *kbd_store_ptr = *event; ++kbd_store_ptr; +#ifdef subprocesses if (kbd_buffer_nr_stored () > KBD_BUFFER_SIZE/2 && ! kbd_on_hold_p ()) { /* Don't read keyboard input until we have processed kbd_buffer. @@ -3929,6 +3932,7 @@ kbd_buffer_store_event_hold (event, hold_quit) #endif stop_polling (); } +#endif /* subprocesses */ } /* If we're inside while-no-input, and this event qualifies @@ -4097,6 +4101,7 @@ kbd_buffer_get_event (kbp, used_mouse_menu, end_time) register int c; Lisp_Object obj; +#ifdef subprocesses if (kbd_on_hold_p () && kbd_buffer_nr_stored () < KBD_BUFFER_SIZE/4) { /* Start reading input again, we have processed enough so we can @@ -4108,6 +4113,7 @@ kbd_buffer_get_event (kbp, used_mouse_menu, end_time) #endif /* SIGIO */ start_polling (); } +#endif /* subprocesses */ if (noninteractive /* In case we are running as a daemon, only do this before @@ -7308,10 +7314,12 @@ tty_read_avail_input (struct terminal *terminal, int n_to_read, i; struct tty_display_info *tty = terminal->display_info.tty; int nread = 0; +#ifdef subprocesses int buffer_free = KBD_BUFFER_SIZE - kbd_buffer_nr_stored () - 1; if (kbd_on_hold_p () || buffer_free <= 0) return 0; +#endif /* subprocesses */ if (!terminal->name) /* Don't read from a dead terminal. */ return 0; @@ -7393,9 +7401,11 @@ tty_read_avail_input (struct terminal *terminal, #endif #endif +#ifdef subprocesses /* Don't read more than we can store. */ if (n_to_read > buffer_free) n_to_read = buffer_free; +#endif /* subprocesses */ /* Now read; for one reason or another, this will not block. NREAD is set to the number of chars read. */ |