diff options
author | Richard M. Stallman <rms@gnu.org> | 1997-03-22 04:13:50 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1997-03-22 04:13:50 +0000 |
commit | 0ac2c5690cb1e4027d9deb6c1a69e53a7450cdf7 (patch) | |
tree | 32a22891290519e3fe4ebbd860f4af7fd8d432b1 /src/process.c | |
parent | 318f867a982058f660cbbfaa15b23d1e7da0ee35 (diff) | |
download | emacs-0ac2c5690cb1e4027d9deb6c1a69e53a7450cdf7.tar.gz |
(wait_reading_process_input): If wait_for_cell,
ignore subprocess input and respond only to keyboard.
(non_process_wait_mask): New variable.
(add_keyboard_wait_descriptor): Update it.
(delete_keyboard_wait_descriptor): Update it.
(init_process): Initialize it.
Diffstat (limited to 'src/process.c')
-rw-r--r-- | src/process.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/process.c b/src/process.c index fe1cd20c1c0..1d4fa70b52e 100644 --- a/src/process.c +++ b/src/process.c @@ -224,6 +224,10 @@ static SELECT_TYPE input_wait_mask; static SELECT_TYPE non_keyboard_wait_mask; +/* Mask that excludes process input descriptor (s). */ + +static SELECT_TYPE non_process_wait_mask; + /* The largest descriptor currently in use for a process object. */ static int max_process_desc; @@ -2294,7 +2298,9 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) /* Wait till there is something to do */ - if (! XINT (read_kbd) && wait_for_cell == 0) + if (wait_for_cell) + Available = non_process_wait_mask; + else if (! XINT (read_kbd)) Available = non_keyboard_wait_mask; else Available = input_wait_mask; @@ -4041,6 +4047,7 @@ add_keyboard_wait_descriptor (desc) FD_CLR (0, &input_wait_mask); add_keyboard_wait_descriptor_called_flag = 1; FD_SET (desc, &input_wait_mask); + FD_SET (desc, &non_process_wait_mask); if (desc > max_keyboard_desc) max_keyboard_desc = desc; } @@ -4055,6 +4062,7 @@ delete_keyboard_wait_descriptor (desc) int lim = max_keyboard_desc; FD_CLR (desc, &input_wait_mask); + FD_CLR (desc, &non_process_wait_mask); if (desc == max_keyboard_desc) for (fd = 0; fd < lim; fd++) @@ -4093,6 +4101,7 @@ init_process () FD_ZERO (&input_wait_mask); FD_ZERO (&non_keyboard_wait_mask); + FD_ZERO (&non_process_wait_mask); max_process_desc = 0; FD_SET (0, &input_wait_mask); |