diff options
author | Karl Heuer <kwzh@gnu.org> | 1996-05-21 17:24:24 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1996-05-21 17:24:24 +0000 |
commit | abde6a758f800407509230069f61e07a007d2755 (patch) | |
tree | 8180081d4debb9b8881e2f9a42d6a1db0028945b /src/print.c | |
parent | a5096568f971fff00da312fef5c2bf6f094f4c91 (diff) | |
download | emacs-abde6a758f800407509230069f61e07a007d2755.tar.gz |
(Fprin1_to_string): Preserve Vdeactivate_mark.
Diffstat (limited to 'src/print.c')
-rw-r--r-- | src/print.c | 12 |
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; |