diff options
| author | Tom Tromey | 2012-09-04 10:10:06 -0600 |
|---|---|---|
| committer | Tom Tromey | 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 emacs-bf69f522a9e135f9aa483cedd53e71e915f2bf75.zip | |
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; | |||
| 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 | ||