summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1996-05-21 17:24:24 +0000
committerKarl Heuer <kwzh@gnu.org>1996-05-21 17:24:24 +0000
commitabde6a758f800407509230069f61e07a007d2755 (patch)
tree8180081d4debb9b8881e2f9a42d6a1db0028945b
parenta5096568f971fff00da312fef5c2bf6f094f4c91 (diff)
downloademacs-abde6a758f800407509230069f61e07a007d2755.tar.gz
(Fprin1_to_string): Preserve Vdeactivate_mark.
-rw-r--r--src/print.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/print.c b/src/print.c
index 600dcda55b0..22b5c140b22 100644
--- a/src/print.c
+++ b/src/print.c
@@ -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;