+ if (!NILP (buffer)
+ && process_coding.cmp_data)
+ {
+ coding_restore_composition (&process_coding, Fcurrent_buffer ());
+ coding_free_composition_data (&process_coding);
+ }
+
+ {
+ 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;
+
+ /* 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));