mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-26 07:11:34 -08:00
(wait_reading_process_output_unwind): New function.
Restores waiting_for_user_input_p to saved value. (wait_reading_process_output): Unwind protect waiting_for_user_input_p instead of save/restore old value on stack.
This commit is contained in:
parent
0885202f72
commit
2beb96f9cc
1 changed files with 12 additions and 4 deletions
|
|
@ -4158,6 +4158,14 @@ server_accept_connection (server, channel)
|
|||
when not inside wait_reading_process_output. */
|
||||
static int waiting_for_user_input_p;
|
||||
|
||||
static Lisp_Object
|
||||
wait_reading_process_output_unwind (data)
|
||||
Lisp_Object data;
|
||||
{
|
||||
waiting_for_user_input_p = XINT (data);
|
||||
return Qnil;
|
||||
}
|
||||
|
||||
/* This is here so breakpoints can be put on it. */
|
||||
static void
|
||||
wait_reading_process_output_1 ()
|
||||
|
|
@ -4240,9 +4248,7 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
|
|||
EMACS_TIME timeout, end_time;
|
||||
int wait_channel = -1;
|
||||
int got_some_input = 0;
|
||||
/* Either nil or a cons cell, the car of which is of interest and
|
||||
may be changed outside of this routine. */
|
||||
int saved_waiting_for_user_input_p = waiting_for_user_input_p;
|
||||
int count = SPECPDL_INDEX ();
|
||||
|
||||
FD_ZERO (&Available);
|
||||
#ifdef NON_BLOCKING_CONNECT
|
||||
|
|
@ -4253,6 +4259,8 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
|
|||
if (wait_proc != NULL)
|
||||
wait_channel = XINT (wait_proc->infd);
|
||||
|
||||
record_unwind_protect (wait_reading_process_output_unwind,
|
||||
make_number (waiting_for_user_input_p));
|
||||
waiting_for_user_input_p = read_kbd;
|
||||
|
||||
/* Since we may need to wait several times,
|
||||
|
|
@ -4879,7 +4887,7 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
|
|||
} /* end for each file descriptor */
|
||||
} /* end while exit conditions not met */
|
||||
|
||||
waiting_for_user_input_p = saved_waiting_for_user_input_p;
|
||||
unbind_to (count, Qnil);
|
||||
|
||||
/* If calling from keyboard input, do not quit
|
||||
since we want to return C-g as an input character.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue