aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii <[email protected]>2009-02-28 15:53:11 +0000
committerEli Zaretskii <[email protected]>2009-02-28 15:53:11 +0000
commit0a9564cb018d500e9b981769b2bd24d2c23ef26d (patch)
tree30ec99d326adb646250a4bb17ec43efc550db8b7
parent2a1573ff0de3423b89869ad9cce65a2ae68f4dde (diff)
(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)
-rw-r--r--src/ChangeLog9
-rw-r--r--src/coding.c35
2 files changed, 31 insertions, 13 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index a50d382ba9..8f8e06650b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,12 @@
+2009-02-28 Eli Zaretskii <[email protected]>
+
+ * coding.c (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)
+
2009-02-28 Jason Rumney <[email protected]>
* coding.c (detect_coding_charset): If not checking latin extra,
diff --git a/src/coding.c b/src/coding.c
index 01cdab52d0..91811f79bf 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -1374,7 +1374,8 @@ decode_coding_utf_8 (coding)
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 @@ decode_coding_utf_16 (coding)
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 @@ decode_coding_emacs_mule (coding)
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 @@ decode_coding_iso_2022 (coding)
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 @@ encode_coding_iso_2022 (coding)
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 @@ decode_coding_sjis (coding)
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 @@ decode_coding_big5 (coding)
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 @@ static void
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 @@ decode_coding_charset (coding)
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 @@ setup_coding_system (coding_system, coding)
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 @@ decode_eol (coding)
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 @@ decode_coding (coding)
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 @@ consume_chars (coding, translation_table, max_lookup)
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;