From 30c7817593feb864754c22bff5bc8d161cd3bf22 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 6 Jun 1993 03:15:59 +0000 Subject: [PATCH] (read_process_output): Deactivate the mark. Save and restore Vdeactivate_mark. --- src/process.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/process.c b/src/process.c index 7bada8607c..91e411eff6 100644 --- a/src/process.c +++ b/src/process.c @@ -2075,9 +2075,25 @@ read_process_output (proc, channel) hitting ^G when a filter happens to be running won't screw it up. */ int count = specpdl_ptr - specpdl; + Lisp_Object odeactivate; + + odeactivate = Vdeactivate_mark; + specbind (Qinhibit_quit, Qt); call2 (outstream, proc, make_string (chars, nchars)); + /* Deactivate the mark now, so it doesn't happen + *after* the following command. */ + if (!NILP (current_buffer->mark_active)) + { + if (!NILP (Vdeactivate_mark) && !NILP (Vtransient_mark_mode)) + { + current_buffer->mark_active = Qnil; + call1 (Vrun_hooks, intern ("deactivate-mark-hook")); + } + } + Vdeactivate_mark = odeactivate; + #ifdef VMS start_vms_process_read (vs); #endif @@ -2090,6 +2106,9 @@ read_process_output (proc, channel) { Lisp_Object old_read_only; Lisp_Object old_begv, old_zv; + Lisp_Object odeactivate; + + odeactivate = Vdeactivate_mark; Fset_buffer (p->buffer); opoint = point; @@ -2134,6 +2153,19 @@ read_process_output (proc, channel) if (XFASTINT (old_begv) != BEGV || XFASTINT (old_zv) != ZV) Fnarrow_to_region (old_begv, old_zv); + /* Deactivate the mark now, so it doesn't happen + *after* the following command. */ + if (!NILP (current_buffer->mark_active)) + { + if (!NILP (Vdeactivate_mark) && !NILP (Vtransient_mark_mode)) + { + current_buffer->mark_active = Qnil; + call1 (Vrun_hooks, intern ("deactivate-mark-hook")); + } + } + + Vdeactivate_mark = odeactivate; + current_buffer->read_only = old_read_only; SET_PT (opoint); set_buffer_internal (old); -- 2.20.1