changeset 3510:b4a552ca4e99

(read_process_output): Deactivate the mark. Save and restore Vdeactivate_mark.
author Richard M. Stallman <rms@gnu.org>
date Sun, 06 Jun 1993 03:15:59 +0000
parents a1ef317ceb18
children 21fae09a3ad2
files src/process.c
diffstat 1 files changed, 32 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/process.c	Sat Jun 05 21:18:11 1993 +0000
+++ b/src/process.c	Sun Jun 06 03:15:59 1993 +0000
@@ -2075,9 +2075,25 @@
 	 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 @@
     {
       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 @@
       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);