Mercurial > emacs
changeset 110845:394a9ff3e3cf
coding.c (complement_process_encoding_system): Fix previous change.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Mon, 04 Oct 2010 10:47:51 +0900 |
parents | 526c42ed21b1 |
children | 9f6864a5076e |
files | src/ChangeLog src/coding.c |
diffstat | 2 files changed, 41 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Sat Oct 02 11:05:56 2010 +0900 +++ b/src/ChangeLog Mon Oct 04 10:47:51 2010 +0900 @@ -1,3 +1,8 @@ +2010-10-04 Kenichi Handa <handa@m17n.org> + + * coding.c (complement_process_encoding_system): Fix previous + change. + 2010-10-02 Kenichi Handa <handa@m17n.org> * coding.c (coding_inherit_eol_type): If parent doesn't specify
--- a/src/coding.c Sat Oct 02 11:05:56 2010 +0900 +++ b/src/coding.c Mon Oct 04 10:47:51 2010 +0900 @@ -6122,51 +6122,55 @@ complement_process_encoding_system (coding_system) Lisp_Object coding_system; { - Lisp_Object spec, attrs, coding_type, eol_type; + Lisp_Object coding_base = Qnil, eol_base = Qnil; + Lisp_Object spec, attrs; if (NILP (coding_system)) coding_system = Qundecided; spec = CODING_SYSTEM_SPEC (coding_system); attrs = AREF (spec, 0); - coding_type = CODING_ATTR_TYPE (attrs); - eol_type = AREF (spec, 2); - - if (EQ (coding_type, Qundecided)) + if (! EQ (CODING_ATTR_TYPE (attrs), Qundecided)) + coding_base = CODING_ATTR_BASE_NAME (attrs); + if (! VECTORP (AREF (spec, 2))) + eol_base = coding_system; + + if (NILP (coding_base)) { /* We must decide the text-conversion part ar first. */ - if (CONSP (Vdefault_process_coding_system)) + if (CONSP (Vdefault_process_coding_system) + && ! NILP (XCDR (Vdefault_process_coding_system))) { coding_system = XCDR (Vdefault_process_coding_system); - if (! NILP (coding_system)) - { - spec = CODING_SYSTEM_SPEC (coding_system); - attrs = AREF (spec, 0); - coding_type = CODING_ATTR_TYPE (attrs); - eol_type = AREF (spec, 2); - } - } - if (EQ (coding_type, Qundecided)) + spec = CODING_SYSTEM_SPEC (coding_system); + attrs = AREF (spec, 0); + if (! EQ (CODING_ATTR_TYPE (attrs), Qundecided)) + coding_base = CODING_ATTR_BASE_NAME (attrs); + if (NILP (eol_base) && ! VECTORP (AREF (spec, 2))) + eol_base = coding_system; + } + if (NILP (coding_base)) { coding_system = preferred_coding_system (); spec = CODING_SYSTEM_SPEC (coding_system); attrs = AREF (spec, 0); - coding_type = CODING_ATTR_TYPE (attrs); - eol_type = AREF (spec, 2); - } - if (EQ (coding_type, Qundecided)) - { - coding_system = Qraw_text; - coding_type = Qraw_text; - eol_type = Qnil; - } - } - if (NILP (eol_type) || VECTORP (eol_type)) - { - /* We must decide the eol-conversion part. */ - coding_system = coding_inherit_eol_type (coding_system, coding_system); - } - - return coding_system; + if (! EQ (CODING_ATTR_TYPE (attrs), Qundecided)) + coding_base = CODING_ATTR_BASE_NAME (attrs); + if (NILP (eol_base) && ! VECTORP (AREF (spec, 2))) + eol_base = coding_system; + } + if (NILP (coding_base)) + { + spec = CODING_SYSTEM_SPEC (Qraw_text); + attrs = AREF (spec, 0); + if (! EQ (CODING_ATTR_TYPE (attrs), Qundecided)) + coding_base = CODING_ATTR_BASE_NAME (attrs); + if (NILP (eol_base) && ! VECTORP (AREF (spec, 2))) + eol_base = coding_system; + } + } + + /* We must decide the eol-conversion part (if not yet done). */ + return coding_inherit_eol_type (coding_base, eol_base); }