]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix complementing of a coding system
authorKenichi Handa <handa@m17n.org>
Sat, 2 Oct 2010 01:44:50 +0000 (10:44 +0900)
committerKenichi Handa <handa@m17n.org>
Sat, 2 Oct 2010 01:44:50 +0000 (10:44 +0900)
src/ChangeLog
src/coding.c

index 773715ed1f2e0147962514e48dfcccdcf954230b..eb9ba22b0b2fd339b427869e26b170b34d3c1e9d 100644 (file)
@@ -1,3 +1,10 @@
+2010-10-02  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (coding_inherit_eol_type): If parent doesn't specify
+       eol-format, inherit from the system's default.
+       (complement_process_encoding_system): Make a new coding system
+       inherit the original eol-format.
+
 2010-09-30  Kenichi Handa  <handa@m17n.org>
 
        * coding.c (complement_process_encoding_system): New function.
index cbebeff63104ce94a7bed32488539a21d80df783..e2819f62e55508a2af2f7b3b01b3dfe8142b72de 100644 (file)
@@ -6073,10 +6073,9 @@ raw_text_coding_system (coding_system)
 }
 
 
-/* If CODING_SYSTEM doesn't specify end-of-line format but PARENT
-   does, return one of the subsidiary that has the same eol-spec as
-   PARENT.  Otherwise, return CODING_SYSTEM.  If PARENT is nil,
-   inherit end-of-line format from the system's setting
+/* If CODING_SYSTEM doesn't specify end-of-line format, return one of
+   the subsidiary that has the same eol-spec as PARENT (if it is not
+   nil and specifies end-of-line format) or the system's setting
    (system_eol_type).  */
 
 Lisp_Object
@@ -6099,6 +6098,8 @@ coding_inherit_eol_type (coding_system, parent)
 
          parent_spec = CODING_SYSTEM_SPEC (parent);
          parent_eol_type = AREF (parent_spec, 2);
+         if (VECTORP (parent_eol_type))
+           parent_eol_type = system_eol_type;      
        }
       else
        parent_eol_type = system_eol_type;
@@ -6132,7 +6133,7 @@ complement_process_encoding_system (coding_system)
 
   if (EQ (coding_type, Qundecided))
     {
-      /* We must decide the text-conversion part.  */
+      /* We must decide the text-conversion part ar first.  */
       if (CONSP (Vdefault_process_coding_system))
        {
          coding_system = XCDR (Vdefault_process_coding_system);
@@ -6162,7 +6163,7 @@ complement_process_encoding_system (coding_system)
   if (NILP (eol_type) || VECTORP (eol_type))
     {
       /* We must decide the eol-conversion part.  */      
-      coding_system = coding_inherit_eol_type (coding_system, Qnil);
+      coding_system = coding_inherit_eol_type (coding_system, coding_system);
     }
 
   return coding_system;