From 1911a33b9dc4beefaf75f67719ea7f6cf447b3ff Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Sat, 2 Oct 2010 10:44:50 +0900 Subject: [PATCH] Fix complementing of a coding system --- src/ChangeLog | 7 +++++++ src/coding.c | 13 +++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 773715ed1f2..eb9ba22b0b2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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 --git a/src/coding.c b/src/coding.c index cbebeff6310..e2819f62e55 100644 --- a/src/coding.c +++ b/src/coding.c @@ -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; -- 2.39.2