diff options
author | Tom Tromey <tromey@redhat.com> | 2012-09-04 10:10:06 -0600 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2012-09-04 10:10:06 -0600 |
commit | bf69f522a9e135f9aa483cedd53e71e915f2bf75 (patch) | |
tree | 3f73c47fb863ef87f420de1d30858da821072bd9 /src/print.c | |
parent | 303324a9232dbc89369faceb6b3530740d0fc1bd (diff) | |
parent | 6ec9a5a7b5efb129807f567709ca858211ed7840 (diff) | |
download | emacs-bf69f522a9e135f9aa483cedd53e71e915f2bf75.tar.gz |
merge from trunk
Diffstat (limited to 'src/print.c')
-rw-r--r-- | src/print.c | 11 |
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; ? PT - start_point : 0), \ old_point_byte + (old_point_byte >= start_point_byte \ ? PT_BYTE - start_point_byte : 0)); \ - if (old != current_buffer) \ - set_buffer_internal (old); + set_buffer_internal (old); #define PRINTCHAR(ch) printchar (ch, printcharfun) @@ -488,7 +487,7 @@ temp_output_buffer_setup (const char *bufname) register struct buffer *old = current_buffer; register Lisp_Object buf; - record_unwind_protect (set_buffer_if_live, Fcurrent_buffer ()); + record_unwind_current_buffer (); Fset_buffer (Fget_buffer_create (build_string (bufname))); @@ -586,6 +585,7 @@ A printed representation of an object is text which describes that object. */) (Lisp_Object object, Lisp_Object noescape) { Lisp_Object printcharfun; + bool prev_abort_on_gc; /* struct gcpro gcpro1, gcpro2; */ Lisp_Object save_deactivate_mark; ptrdiff_t count = SPECPDL_INDEX (); @@ -601,7 +601,8 @@ A printed representation of an object is text which describes that object. */) No need for specbind, since errors deactivate the mark. */ save_deactivate_mark = Vdeactivate_mark; /* GCPRO2 (object, save_deactivate_mark); */ - abort_on_gc++; + prev_abort_on_gc = abort_on_gc; + abort_on_gc = 1; printcharfun = Vprin1_to_string_buffer; PRINTPREPARE; @@ -625,7 +626,7 @@ A printed representation of an object is text which describes that object. */) Vdeactivate_mark = save_deactivate_mark; /* UNGCPRO; */ - abort_on_gc--; + abort_on_gc = prev_abort_on_gc; return unbind_to (count, object); } |