summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2010-11-09 20:36:21 +0200
committerEli Zaretskii <eliz@gnu.org>2010-11-09 20:36:21 +0200
commit86520d8c1737985eb24dabb9de1f90b622e3bbd5 (patch)
tree1c944a01a62c4de0f7168833c4138fe290114aa7 /src
parent794a4b6d178e5242c693486a6be7fd875820fb45 (diff)
downloademacs-86520d8c1737985eb24dabb9de1f90b622e3bbd5.tar.gz
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')
-rw-r--r--src/ChangeLog8
-rw-r--r--src/keyboard.c10
-rw-r--r--src/process.c2
3 files changed, 19 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 913489ed1f1..7b5959c8db2 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,13 @@
2010-11-09 Eli Zaretskii <eliz@gnu.org>
+ * 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.
+
* Makefile.in: Don't use ## comment, it breaks the MSDOS build.
* xfns.c (x_real_positions): Fix declaration-after-statement
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. */
diff --git a/src/process.c b/src/process.c
index df30adcf0be..384a7acfccd 100644
--- a/src/process.c
+++ b/src/process.c
@@ -7356,6 +7356,7 @@ init_process ()
register int i;
inhibit_sentinels = 0;
+ kbd_is_on_hold = 0;
#ifdef SIGCHLD
#ifndef CANNOT_DUMP
@@ -8093,7 +8094,6 @@ integer or floating point values.
void
init_process ()
{
- kbd_is_on_hold = 0;
}
void