changeset 69995:d4a5619e5025

(setup_coding_system): If eol-type is not yet decided and system_eol_type is not LF, set CODING_REQUIRE_ENCODING_MASK. If coding_system is nil, return 0. (code_convert_region1): Even if coding_system is nil, don't skip conversion if system_eol_type is not LF. (code_convert_string1): Likewise. (code_convert_string_norecord): Likewise.
author Kenichi Handa <handa@m17n.org>
date Thu, 13 Apr 2006 06:47:00 +0000
parents daa3b925c055
children a908a3e34eee
files src/coding.c
diffstat 1 files changed, 9 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/coding.c	Thu Apr 13 04:58:07 2006 +0000
+++ b/src/coding.c	Thu Apr 13 06:47:00 2006 +0000
@@ -3607,6 +3607,8 @@
     {
       coding->eol_type = CODING_EOL_UNDECIDED;
       coding->common_flags = CODING_REQUIRE_DETECTION_MASK;
+      if (system_eol_type != CODING_EOL_LF)
+	coding->common_flags |= CODING_REQUIRE_ENCODING_MASK;
     }
   else if (XFASTINT (eol_type) == 1)
     {
@@ -3923,8 +3925,11 @@
   coding->category_idx = CODING_CATEGORY_IDX_BINARY;
   coding->common_flags = 0;
   coding->eol_type = NILP (coding_system) ? system_eol_type : CODING_EOL_LF;
+  if (coding->eol_type != CODING_EOL_LF)
+    coding->common_flags
+      |= CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK;
   coding->pre_write_conversion = coding->post_read_conversion = Qnil;
-  return -1;
+  return NILP (coding_system) ? 0 : -1;
 }
 
 /* Free memory blocks allocated for storing composition information.  */
@@ -7113,7 +7118,7 @@
   from = XFASTINT (start);
   to = XFASTINT (end);
 
-  if (NILP (coding_system))
+  if (NILP (coding_system) && system_eol_type == CODING_EOL_LF)
     return make_number (to - from);
 
   if (setup_coding_system (Fcheck_coding_system (coding_system), &coding) < 0)
@@ -7168,7 +7173,7 @@
   CHECK_STRING (string);
   CHECK_SYMBOL (coding_system);
 
-  if (NILP (coding_system))
+  if (NILP (coding_system) && system_eol_type == CODING_EOL_LF)
     return (NILP (nocopy) ? Fcopy_sequence (string) : string);
 
   if (setup_coding_system (Fcheck_coding_system (coding_system), &coding) < 0)
@@ -7227,7 +7232,7 @@
   CHECK_STRING (string);
   CHECK_SYMBOL (coding_system);
 
-  if (NILP (coding_system))
+  if (NILP (coding_system) && system_eol_type == CODING_EOL_LF)
     return string;
 
   if (setup_coding_system (Fcheck_coding_system (coding_system), &coding) < 0)