]> code.delx.au - gnu-emacs/commitdiff
(Fprin1_to_string): Preserve Vdeactivate_mark.
authorKarl Heuer <kwzh@gnu.org>
Tue, 21 May 1996 17:24:24 +0000 (17:24 +0000)
committerKarl Heuer <kwzh@gnu.org>
Tue, 21 May 1996 17:24:24 +0000 (17:24 +0000)
src/print.c

index 600dcda55b0718b5df3d148c1f6419f53d47255d..22b5c140b223ed9b10c86d70dd0bd0bd0a0ae9b9 100644 (file)
@@ -527,7 +527,14 @@ second argument NOESCAPE is non-nil.")
   int old_point = -1;
   int start_point;
   Lisp_Object original, printcharfun;
-  struct gcpro gcpro1;
+  struct gcpro gcpro1, gcpro2;
+  Lisp_Object tem;
+
+  /* Save and restore this--we are altering a buffer
+     but we don't want to deactivate the mark just for that.
+     No need for specbind, since errors deactivate the mark.  */
+  tem = Vdeactivate_mark;
+  GCPRO2 (object, tem);
 
   printcharfun = Vprin1_to_string_buffer;
   PRINTPREPARE;
@@ -538,9 +545,10 @@ second argument NOESCAPE is non-nil.")
   set_buffer_internal (XBUFFER (Vprin1_to_string_buffer));
   object = Fbuffer_string ();
 
-  GCPRO1 (object);
   Ferase_buffer ();
   set_buffer_internal (old);
+
+  Vdeactivate_mark = tem;
   UNGCPRO;
 
   return object;