aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Moellmann <[email protected]>2000-02-20 21:54:26 +0000
committerGerd Moellmann <[email protected]>2000-02-20 21:54:26 +0000
commit1d92afcdb4f94e02948d6914923221aa025dd00b (patch)
tree71ab6f367a30cd243b9d298a70d39195c42e179a
parent2be80b63e783039ddf68ec968ec7fab760a90b7c (diff)
(Finsert_file_contents): Unbind the binding of
standard-output done by temp_output_buffer_setup.
-rw-r--r--src/ChangeLog5
-rw-r--r--src/fileio.c10
2 files changed, 14 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index e7ba55229b..01a86c89df 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,4 +1,7 @@
-2000-02-19 Gerd Moellmann <[email protected]>
+2000-02-20 Gerd Moellmann <[email protected]>
+
+ * fileio.c (Finsert_file_contents): Unbind the binding of
+ standard-output done by temp_output_buffer_setup.
* eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
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--;