aboutsummaryrefslogtreecommitdiffstats
path: root/src/print.c
diff options
context:
space:
mode:
authorTom Tromey2012-09-04 10:10:06 -0600
committerTom Tromey2012-09-04 10:10:06 -0600
commitbf69f522a9e135f9aa483cedd53e71e915f2bf75 (patch)
tree3f73c47fb863ef87f420de1d30858da821072bd9 /src/print.c
parent303324a9232dbc89369faceb6b3530740d0fc1bd (diff)
parent6ec9a5a7b5efb129807f567709ca858211ed7840 (diff)
downloademacs-bf69f522a9e135f9aa483cedd53e71e915f2bf75.tar.gz
emacs-bf69f522a9e135f9aa483cedd53e71e915f2bf75.zip
merge from trunk
Diffstat (limited to 'src/print.c')
-rw-r--r--src/print.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/print.c b/src/print.c
index e8309109f1d..3cf5fc7348d 100644
--- a/src/print.c
+++ b/src/print.c
@@ -197,8 +197,7 @@ int print_output_debug_flag EXTERNALLY_VISIBLE = 1;
197 ? PT - start_point : 0), \ 197 ? PT - start_point : 0), \
198 old_point_byte + (old_point_byte >= start_point_byte \ 198 old_point_byte + (old_point_byte >= start_point_byte \
199 ? PT_BYTE - start_point_byte : 0)); \ 199 ? PT_BYTE - start_point_byte : 0)); \
200 if (old != current_buffer) \ 200 set_buffer_internal (old);
201 set_buffer_internal (old);
202 201
203#define PRINTCHAR(ch) printchar (ch, printcharfun) 202#define PRINTCHAR(ch) printchar (ch, printcharfun)
204 203
@@ -488,7 +487,7 @@ temp_output_buffer_setup (const char *bufname)
488 register struct buffer *old = current_buffer; 487 register struct buffer *old = current_buffer;
489 register Lisp_Object buf; 488 register Lisp_Object buf;
490 489
491 record_unwind_protect (set_buffer_if_live, Fcurrent_buffer ()); 490 record_unwind_current_buffer ();
492 491
493 Fset_buffer (Fget_buffer_create (build_string (bufname))); 492 Fset_buffer (Fget_buffer_create (build_string (bufname)));
494 493
@@ -586,6 +585,7 @@ A printed representation of an object is text which describes that object. */)
586 (Lisp_Object object, Lisp_Object noescape) 585 (Lisp_Object object, Lisp_Object noescape)
587{ 586{
588 Lisp_Object printcharfun; 587 Lisp_Object printcharfun;
588 bool prev_abort_on_gc;
589 /* struct gcpro gcpro1, gcpro2; */ 589 /* struct gcpro gcpro1, gcpro2; */
590 Lisp_Object save_deactivate_mark; 590 Lisp_Object save_deactivate_mark;
591 ptrdiff_t count = SPECPDL_INDEX (); 591 ptrdiff_t count = SPECPDL_INDEX ();
@@ -601,7 +601,8 @@ A printed representation of an object is text which describes that object. */)
601 No need for specbind, since errors deactivate the mark. */ 601 No need for specbind, since errors deactivate the mark. */
602 save_deactivate_mark = Vdeactivate_mark; 602 save_deactivate_mark = Vdeactivate_mark;
603 /* GCPRO2 (object, save_deactivate_mark); */ 603 /* GCPRO2 (object, save_deactivate_mark); */
604 abort_on_gc++; 604 prev_abort_on_gc = abort_on_gc;
605 abort_on_gc = 1;
605 606
606 printcharfun = Vprin1_to_string_buffer; 607 printcharfun = Vprin1_to_string_buffer;
607 PRINTPREPARE; 608 PRINTPREPARE;
@@ -625,7 +626,7 @@ A printed representation of an object is text which describes that object. */)
625 Vdeactivate_mark = save_deactivate_mark; 626 Vdeactivate_mark = save_deactivate_mark;
626 /* UNGCPRO; */ 627 /* UNGCPRO; */
627 628
628 abort_on_gc--; 629 abort_on_gc = prev_abort_on_gc;
629 return unbind_to (count, object); 630 return unbind_to (count, object);
630} 631}
631 632