# HG changeset patch # User Richard M. Stallman # Date 908375793 0 # Node ID 94f4ba741f22b5d50b10171873e61529dc8e1b04 # Parent bab6405012940f78daf7018d9e210e15813bf979 (exec_sentinel, read_process_output): Restore waiting_for_user_input_p after running Lisp code. diff -r bab640501294 -r 94f4ba741f22 src/process.c --- a/src/process.c Wed Oct 14 12:59:30 1998 +0000 +++ b/src/process.c Wed Oct 14 14:36:33 1998 +0000 @@ -2961,6 +2961,7 @@ 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 @@ /* 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 @@ 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 @@ 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))