diff options
author | Richard M. Stallman <[email protected]> | 1998-10-14 14:36:33 +0000 |
---|---|---|
committer | Richard M. Stallman <[email protected]> | 1998-10-14 14:36:33 +0000 |
commit | bbce7d721d8256f13bcff25553f4412ca912a18c (patch) | |
tree | 4b7f0cb8937eda9bd458d2bfad071bdb01a13dd2 /src/process.c | |
parent | 07ba902ebf0d781ce9fb79b6fe3804134f807e1c (diff) |
(exec_sentinel, read_process_output):
Restore waiting_for_user_input_p after running Lisp code.
Diffstat (limited to 'src/process.c')
-rw-r--r-- | src/process.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/process.c b/src/process.c index 930ff859e5..9bf9c73fb6 100644 --- a/src/process.c +++ b/src/process.c @@ -2961,6 +2961,7 @@ read_process_output (proc, channel) Lisp_Object obuffer, okeymap; Lisp_Object text; int outer_running_asynch_code = running_asynch_code; + int waiting = waiting_for_user_input_p; /* No need to gcpro these, because all we do with them later is test them for EQness, and none of them should be a string. */ @@ -3002,6 +3003,10 @@ read_process_output (proc, channel) /* Handling the process output should not deactivate the mark. */ Vdeactivate_mark = odeactivate; + /* Restore waiting_for_user_input_p as it was + when we were called, in case the filter clobbered it. */ + waiting_for_user_input_p = waiting; + #if 0 /* Call record_asynch_buffer_change unconditionally, because we might have changed minor modes or other things that affect key bindings. */ @@ -4114,6 +4119,7 @@ exec_sentinel (proc, reason) register struct Lisp_Process *p = XPROCESS (proc); int count = specpdl_ptr - specpdl; int outer_running_asynch_code = running_asynch_code; + int waiting = waiting_for_user_input_p; /* No need to gcpro these, because all we do with them later is test them for EQness, and none of them should be a string. */ @@ -4160,6 +4166,11 @@ exec_sentinel (proc, reason) running_asynch_code = outer_running_asynch_code; Vdeactivate_mark = odeactivate; + + /* Restore waiting_for_user_input_p as it was + when we were called, in case the filter clobbered it. */ + waiting_for_user_input_p = waiting; + #if 0 if (! EQ (Fcurrent_buffer (), obuffer) || ! EQ (current_buffer->keymap, okeymap)) |