# HG changeset patch # User Eli Zaretskii # Date 1235836343 0 # Node ID 7baaea85626ef2458d9d2e3532541de7934b7373 # Parent f6fa57b5c954064f3873618db1bd50948625b83d (decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule, decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis, decode_coding_big5, decode_coding_raw_text, decode_coding_charset, setup_coding_system, decode_eol, decode_coding, consume_chars): Honor inhibit-eol-conversion. (Bug #2186) diff -r f6fa57b5c954 -r 7baaea85626e src/coding.c --- a/src/coding.c Sat Feb 28 14:31:20 2009 +0000 +++ b/src/coding.c Sat Feb 28 15:52:23 2009 +0000 @@ -1374,7 +1374,8 @@ int multibytep = coding->src_multibyte; enum utf_bom_type bom = CODING_UTF_8_BOM (coding); Lisp_Object attr, charset_list; - int eol_crlf = EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); + int eol_crlf = + !inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); int byte_after_cr = -1; CODING_GET_INFO (coding, attr, charset_list); @@ -1696,7 +1697,8 @@ enum utf_16_endian_type endian = CODING_UTF_16_ENDIAN (coding); int surrogate = CODING_UTF_16_SURROGATE (coding); Lisp_Object attr, charset_list; - int eol_crlf = EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); + int eol_crlf = + !inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); int byte_after_cr1 = -1, byte_after_cr2 = -1; CODING_GET_INFO (coding, attr, charset_list); @@ -2330,7 +2332,8 @@ int char_offset = coding->produced_char; int last_offset = char_offset; int last_id = charset_ascii; - int eol_crlf = EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); + int eol_crlf = + !inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); int byte_after_cr = -1; CODING_GET_INFO (coding, attrs, charset_list); @@ -3241,7 +3244,8 @@ int char_offset = coding->produced_char; int last_offset = char_offset; int last_id = charset_ascii; - int eol_crlf = EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); + int eol_crlf = + !inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); int byte_after_cr = -1; CODING_GET_INFO (coding, attrs, charset_list); @@ -4128,7 +4132,7 @@ int preferred_charset_id = -1; CODING_GET_INFO (coding, attrs, charset_list); - eol_type = CODING_ID_EOL_TYPE (coding->id); + eol_type = inhibit_eol_conversion ? Qunix : CODING_ID_EOL_TYPE (coding->id); if (VECTORP (eol_type)) eol_type = Qunix; @@ -4416,7 +4420,8 @@ int char_offset = coding->produced_char; int last_offset = char_offset; int last_id = charset_ascii; - int eol_crlf = EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); + int eol_crlf = + !inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); int byte_after_cr = -1; CODING_GET_INFO (coding, attrs, charset_list); @@ -4531,7 +4536,8 @@ int char_offset = coding->produced_char; int last_offset = char_offset; int last_id = charset_ascii; - int eol_crlf = EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); + int eol_crlf = + !inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); int byte_after_cr = -1; CODING_GET_INFO (coding, attrs, charset_list); @@ -4983,7 +4989,8 @@ decode_coding_raw_text (coding) struct coding_system *coding; { - int eol_crlf = EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); + int eol_crlf = + !inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); coding->chars_at_source = 1; coding->consumed_char = coding->src_chars; @@ -5202,7 +5209,8 @@ int char_offset = coding->produced_char; int last_offset = char_offset; int last_id = charset_ascii; - int eol_crlf = EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); + int eol_crlf = + !inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos); int byte_after_cr = -1; CODING_GET_INFO (coding, attrs, charset_list); @@ -5399,7 +5407,7 @@ CHECK_CODING_SYSTEM_GET_ID (coding_system, coding->id); attrs = CODING_ID_ATTRS (coding->id); - eol_type = CODING_ID_EOL_TYPE (coding->id); + eol_type = inhibit_eol_conversion ? Qunix : CODING_ID_EOL_TYPE (coding->id); coding->mode = 0; coding->head_ascii = -1; @@ -6144,7 +6152,7 @@ unsigned char *p, *pbeg, *pend; eol_type = CODING_ID_EOL_TYPE (coding->id); - if (EQ (eol_type, Qunix)) + if (EQ (eol_type, Qunix) || inhibit_eol_conversion) return; if (NILP (coding->dst_object)) @@ -6820,7 +6828,8 @@ coding->consumed = coding->src_bytes; } - if (! EQ (CODING_ID_EOL_TYPE (coding->id), Qunix)) + if (! EQ (CODING_ID_EOL_TYPE (coding->id), Qunix) + && !inhibit_eol_conversion) decode_eol (coding); if (BUFFERP (coding->dst_object)) { @@ -6971,7 +6980,7 @@ if (! NILP (translation_table)) lookup_buf = alloca (sizeof (int) * max_lookup); - eol_type = CODING_ID_EOL_TYPE (coding->id); + eol_type = inhibit_eol_conversion ? Qunix : CODING_ID_EOL_TYPE (coding->id); if (VECTORP (eol_type)) eol_type = Qunix;