diff --git a/src/coding.c b/src/coding.c index 6d2e6d9c454..282f8e21e86 100644 --- a/src/coding.c +++ b/src/coding.c @@ -5275,6 +5275,9 @@ decode_coding_string (str, coding, nocopy) } } + coding->src_multibyte = 0; + coding->dst_multibyte = (coding->type != coding_type_no_conversion + && coding->type != coding_type_raw_text); require_decoding = CODING_REQUIRE_DECODING (coding); if (STRING_MULTIBYTE (str)) @@ -5284,9 +5287,6 @@ decode_coding_string (str, coding, nocopy) to_byte = STRING_BYTES (XSTRING (str)); nocopy = 1; } - coding->src_multibyte = 0; - coding->dst_multibyte = (coding->type != coding_type_no_conversion - && coding->type != coding_type_raw_text); /* Try to skip the heading and tailing ASCIIs. */ if (require_decoding && coding->type != coding_type_ccl) @@ -5420,6 +5420,11 @@ encode_coding_string (str, coding, nocopy) to_byte = STRING_BYTES (XSTRING (str)); saved_coding_symbol = Qnil; + + /* Encoding routines determine the multibyteness of the source text + by coding->src_multibyte. */ + coding->src_multibyte = STRING_MULTIBYTE (str); + coding->dst_multibyte = 0; if (! CODING_REQUIRE_ENCODING (coding)) { coding->consumed = STRING_BYTES (XSTRING (str)); @@ -5434,11 +5439,6 @@ encode_coding_string (str, coding, nocopy) return (nocopy ? str : Fcopy_sequence (str)); } - /* Encoding routines determine the multibyteness of the source text - by coding->src_multibyte. */ - coding->src_multibyte = STRING_MULTIBYTE (str); - coding->dst_multibyte = 0; - if (coding->composing != COMPOSITION_DISABLED) coding_save_composition (coding, from, to, str);