/* Synchronous subprocess invocation for GNU Emacs.
- Copyright (C) 1985, 86,87,88,93,94,95, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985,86,87,88,93,94,95,99,2000 Free Software Foundation, Inc.
This file is part of GNU Emacs.
coding_free_composition_data (&process_coding);
}
- record_unwind_protect (save_excursion_restore, save_excursion_save ());
- inserted = PT - pt_orig;
- TEMP_SET_PT_BOTH (pt_orig, pt_byte_orig);
- if (SYMBOLP (process_coding.post_read_conversion)
- && !NILP (Ffboundp (process_coding.post_read_conversion)))
- call1 (process_coding.post_read_conversion, make_number (inserted));
+ {
+ int post_read_count = specpdl_ptr - specpdl;
+
+ record_unwind_protect (save_excursion_restore, save_excursion_save ());
+ inserted = PT - pt_orig;
+ TEMP_SET_PT_BOTH (pt_orig, pt_byte_orig);
+ if (SYMBOLP (process_coding.post_read_conversion)
+ && !NILP (Ffboundp (process_coding.post_read_conversion)))
+ call1 (process_coding.post_read_conversion, make_number (inserted));
- Vlast_coding_system_used = process_coding.symbol;
+ Vlast_coding_system_used = process_coding.symbol;
- /* If the caller required, let the buffer inherit the
- coding-system used to decode the process output. */
- if (inherit_process_coding_system)
- call1 (intern ("after-insert-file-set-buffer-file-coding-system"),
- make_number (total_read));
+ /* If the caller required, let the buffer inherit the
+ coding-system used to decode the process output. */
+ if (inherit_process_coding_system)
+ call1 (intern ("after-insert-file-set-buffer-file-coding-system"),
+ make_number (total_read));
+
+ unbind_to (post_read_count, Qnil);
+ }
}
/* Wait for it to terminate, unless it already has. */