mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-19 19:37:58 +00:00
Fix invalid current buffer after print-unreadable-function signals
* src/print.c (PRINTPREPARE): Remove `old' and record_unwind_current_buffer instead. (PRINTFINISH): Stop restoring `old'. (bug#56773)
This commit is contained in:
parent
8be5481b8e
commit
bfa951cdfa
1 changed files with 2 additions and 3 deletions
|
|
@ -98,7 +98,6 @@ bool print_output_debug_flag EXTERNALLY_VISIBLE = 1;
|
|||
or call strout to output a block of characters. */
|
||||
|
||||
#define PRINTPREPARE \
|
||||
struct buffer *old = current_buffer; \
|
||||
ptrdiff_t old_point = -1, start_point = -1; \
|
||||
ptrdiff_t old_point_byte = -1, start_point_byte = -1; \
|
||||
specpdl_ref specpdl_count = SPECPDL_INDEX (); \
|
||||
|
|
@ -106,6 +105,7 @@ bool print_output_debug_flag EXTERNALLY_VISIBLE = 1;
|
|||
bool multibyte \
|
||||
= !NILP (BVAR (current_buffer, enable_multibyte_characters)); \
|
||||
Lisp_Object original = printcharfun; \
|
||||
record_unwind_current_buffer (); \
|
||||
if (NILP (printcharfun)) printcharfun = Qt; \
|
||||
if (BUFFERP (printcharfun)) \
|
||||
{ \
|
||||
|
|
@ -192,8 +192,7 @@ bool print_output_debug_flag EXTERNALLY_VISIBLE = 1;
|
|||
SET_PT_BOTH (old_point + (old_point >= start_point \
|
||||
? PT - start_point : 0), \
|
||||
old_point_byte + (old_point_byte >= start_point_byte \
|
||||
? PT_BYTE - start_point_byte : 0)); \
|
||||
set_buffer_internal (old);
|
||||
? PT_BYTE - start_point_byte : 0));
|
||||
|
||||
/* This is used to restore the saved contents of print_buffer
|
||||
when there is a recursive call to print. */
|
||||
|
|
|
|||
Loading…
Reference in a new issue