Mercurial > emacs
diff src/process.c @ 90573:858cb33ae39d
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 357-381)
- Merge from gnus--rel--5.10
- Update from CVS
- Merge from erc--emacs--21
* gnus--rel--5.10 (patch 116-122)
- Update from CVS
- Merge from emacs--devo--0
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-98
| author | Miles Bader <miles@gnu.org> |
|---|---|
| date | Thu, 03 Aug 2006 11:45:23 +0000 |
| parents | 8a8e69664178 059876b57133 |
| children | a1a25ac6c88a |
line wrap: on
line diff
--- a/src/process.c Thu Aug 03 00:41:54 2006 +0000 +++ b/src/process.c Thu Aug 03 11:45:23 2006 +0000 @@ -4157,6 +4157,14 @@ 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 () @@ -4239,9 +4247,7 @@ 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 @@ -4252,6 +4258,8 @@ 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, @@ -4878,7 +4886,7 @@ } /* 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.
