diff options
Diffstat (limited to 'src/fileio.c')
-rw-r--r-- | src/fileio.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/fileio.c b/src/fileio.c index d693369ddf..1d3da63ba5 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -3543,9 +3543,15 @@ actually used.") else if (nread > 0) { struct buffer *prev = current_buffer; + int count1; record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); + + /* The call to temp_output_buffer_setup binds + standard-output. */ + count1 = specpdl_ptr - specpdl; temp_output_buffer_setup (" *code-converting-work*"); + set_buffer_internal (XBUFFER (Vstandard_output)); current_buffer->enable_multibyte_characters = Qnil; insert_1_both (read_buf, nread, nread, 0, 0, 0); @@ -3553,6 +3559,10 @@ actually used.") val = call2 (Vset_auto_coding_function, filename, make_number (nread)); set_buffer_internal (prev); + + /* Remove the binding for standard-output. */ + unbind_to (count1, Qnil); + /* Discard the unwind protect for recovering the current buffer. */ specpdl_ptr--; |