# HG changeset patch # User Kenichi Handa # Date 1285983890 -32400 # Node ID b997f43af4732ef5f604aa03a230f377e9c16621 # Parent 4665df4accaae6fc493c5c345cdb8077b8d8fbd2 Fix complementing of a coding system diff -r 4665df4accaa -r b997f43af473 src/ChangeLog --- a/src/ChangeLog Thu Sep 30 13:31:53 2010 +0900 +++ b/src/ChangeLog Sat Oct 02 10:44:50 2010 +0900 @@ -1,3 +1,10 @@ +2010-10-02 Kenichi Handa + + * 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 * coding.c (complement_process_encoding_system): New function. diff -r 4665df4accaa -r b997f43af473 src/coding.c --- a/src/coding.c Thu Sep 30 13:31:53 2010 +0900 +++ b/src/coding.c Sat Oct 02 10:44:50 2010 +0900 @@ -6073,10 +6073,9 @@ } -/* 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 @@ 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 @@ 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 @@ 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;