aboutsummaryrefslogtreecommitdiffstats
path: root/src/coding.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/coding.c')
-rw-r--r--src/coding.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/coding.c b/src/coding.c
index 5b7856959a6..0bb2bd3fcd8 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -5815,14 +5815,17 @@ run_pre_post_conversion_on_str (str, coding, encodep)
5815 int encodep; 5815 int encodep;
5816{ 5816{
5817 int count = SPECPDL_INDEX (); 5817 int count = SPECPDL_INDEX ();
5818 struct gcpro gcpro1; 5818 struct gcpro gcpro1, gcpro2;
5819 int multibyte = STRING_MULTIBYTE (str); 5819 int multibyte = STRING_MULTIBYTE (str);
5820 Lisp_Object buffer; 5820 Lisp_Object buffer;
5821 struct buffer *buf; 5821 struct buffer *buf;
5822 Lisp_Object old_deactivate_mark;
5822 5823
5823 record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); 5824 record_unwind_protect (Fset_buffer, Fcurrent_buffer ());
5824 record_unwind_protect (code_convert_region_unwind, Qnil); 5825 record_unwind_protect (code_convert_region_unwind, Qnil);
5825 GCPRO1 (str); 5826 /* It is not crucial to specbind this. */
5827 old_deactivate_mark = Vdeactivate_mark;
5828 GCPRO2 (str, old_deactivate_mark);
5826 5829
5827 buffer = Fget_buffer_create (build_string (" *code-converting-work*")); 5830 buffer = Fget_buffer_create (build_string (" *code-converting-work*"));
5828 buf = XBUFFER (buffer); 5831 buf = XBUFFER (buffer);
@@ -5853,6 +5856,7 @@ run_pre_post_conversion_on_str (str, coding, encodep)
5853 call1 (coding->post_read_conversion, make_number (Z - BEG)); 5856 call1 (coding->post_read_conversion, make_number (Z - BEG));
5854 } 5857 }
5855 inhibit_pre_post_conversion = 0; 5858 inhibit_pre_post_conversion = 0;
5859 Vdeactivate_mark = old_deactivate_mark;
5856 str = make_buffer_string (BEG, Z, 1); 5860 str = make_buffer_string (BEG, Z, 1);
5857 return unbind_to (count, str); 5861 return unbind_to (count, str);
5858} 5862}