aboutsummaryrefslogtreecommitdiffstats
path: root/src/process.c
diff options
context:
space:
mode:
authorKarl Heuer <[email protected]>1994-05-11 04:04:03 +0000
committerKarl Heuer <[email protected]>1994-05-11 04:04:03 +0000
commit8fb3cf64812e31c63bdec8df1cd008ddf7634710 (patch)
treea66bd8835d63c6527f520436707b3af6e09e9273 /src/process.c
parent17077ab35f8b4986b89dc3eca3605b105b889593 (diff)
(exec_sentinel): Don't deactivate the mark. Check for asynch buffer switch.
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/process.c b/src/process.c
index 2636e0d2dd..b7bca47123 100644
--- a/src/process.c
+++ b/src/process.c
@@ -3006,10 +3006,12 @@ static void
exec_sentinel (proc, reason)
Lisp_Object proc, reason;
{
- Lisp_Object sentinel;
+ Lisp_Object sentinel, obuffer, odeactivate;
register struct Lisp_Process *p = XPROCESS (proc);
int count = specpdl_ptr - specpdl;
+ odeactivate = Vdeactivate_mark;
+ obuffer = Fcurrent_buffer ();
sentinel = p->sentinel;
if (NILP (sentinel))
return;
@@ -3021,6 +3023,11 @@ exec_sentinel (proc, reason)
/* Inhibit quit so that random quits don't screw up a running filter. */
specbind (Qinhibit_quit, Qt);
call2 (sentinel, proc, reason);
+
+ Vdeactivate_mark = odeactivate;
+ if (! EQ (Fcurrent_buffer (), obuffer))
+ record_asynch_buffer_change ();
+
if (waiting_for_user_input_p)
prepare_menu_bars ();
unbind_to (count, Qnil);