changeset 47632:551472d77d2a

(run_pre_post_conversion_on_str): Save and restore Vdeactivate_mark.
author Richard M. Stallman <rms@gnu.org>
date Thu, 26 Sep 2002 22:03:41 +0000
parents 433ae412d00f
children f184a4c74ad0
files src/coding.c
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/coding.c	Thu Sep 26 22:02:23 2002 +0000
+++ b/src/coding.c	Thu Sep 26 22:03:41 2002 +0000
@@ -5815,14 +5815,17 @@
      int encodep;
 {
   int count = SPECPDL_INDEX ();
-  struct gcpro gcpro1;
+  struct gcpro gcpro1, gcpro2;
   int multibyte = STRING_MULTIBYTE (str);
   Lisp_Object buffer;
   struct buffer *buf;
+  Lisp_Object old_deactivate_mark;
 
   record_unwind_protect (Fset_buffer, Fcurrent_buffer ());
   record_unwind_protect (code_convert_region_unwind, Qnil);
-  GCPRO1 (str);
+  /* It is not crucial to specbind this.  */
+  old_deactivate_mark = Vdeactivate_mark;
+  GCPRO2 (str, old_deactivate_mark);
 
   buffer = Fget_buffer_create (build_string (" *code-converting-work*"));
   buf = XBUFFER (buffer);
@@ -5853,6 +5856,7 @@
       call1 (coding->post_read_conversion, make_number (Z - BEG));
     }
   inhibit_pre_post_conversion = 0;
+  Vdeactivate_mark = old_deactivate_mark;
   str = make_buffer_string (BEG, Z, 1);
   return unbind_to (count, str);
 }