aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1996-05-21 17:24:24 +0000
committerKarl Heuer1996-05-21 17:24:24 +0000
commit2a42e8f6ac76be9765a5a6de69ec8489554c4eaa (patch)
treea855557b110fa86dad0938444f662b70c4431a83
parent28ee503c5aa768e2a750b7ab50ea08d5281a4248 (diff)
downloademacs-2a42e8f6ac76be9765a5a6de69ec8489554c4eaa.tar.gz
emacs-2a42e8f6ac76be9765a5a6de69ec8489554c4eaa.zip
(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.")
527 int old_point = -1; 527 int old_point = -1;
528 int start_point; 528 int start_point;
529 Lisp_Object original, printcharfun; 529 Lisp_Object original, printcharfun;
530 struct gcpro gcpro1; 530 struct gcpro gcpro1, gcpro2;
531 Lisp_Object tem;
532
533 /* Save and restore this--we are altering a buffer
534 but we don't want to deactivate the mark just for that.
535 No need for specbind, since errors deactivate the mark. */
536 tem = Vdeactivate_mark;
537 GCPRO2 (object, tem);
531 538
532 printcharfun = Vprin1_to_string_buffer; 539 printcharfun = Vprin1_to_string_buffer;
533 PRINTPREPARE; 540 PRINTPREPARE;
@@ -538,9 +545,10 @@ second argument NOESCAPE is non-nil.")
538 set_buffer_internal (XBUFFER (Vprin1_to_string_buffer)); 545 set_buffer_internal (XBUFFER (Vprin1_to_string_buffer));
539 object = Fbuffer_string (); 546 object = Fbuffer_string ();
540 547
541 GCPRO1 (object);
542 Ferase_buffer (); 548 Ferase_buffer ();
543 set_buffer_internal (old); 549 set_buffer_internal (old);
550
551 Vdeactivate_mark = tem;
544 UNGCPRO; 552 UNGCPRO;
545 553
546 return object; 554 return object;