Mercurial > emacs
changeset 90394:263867fe7b55
(system_eol_type): Sync with HEAD.
(coding_inherit_eol_type): If PARENT is nil, inherit from
system_eol_type.
(syms_of_coding): Initialize system_eol_type.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Mon, 15 May 2006 02:48:46 +0000 |
parents | 6592da24d351 |
children | 65fc70a77429 |
files | src/coding.c |
diffstat | 1 files changed, 27 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/coding.c Mon May 15 02:47:29 2006 +0000 +++ b/src/coding.c Mon May 15 02:48:46 2006 +0000 @@ -340,6 +340,12 @@ decided. */ Lisp_Object eol_mnemonic_undecided; +/* Format of end-of-line decided by system. This is Qunix on + Unix and Mac, Qdos on DOS/Windows. + This has an effect only for external encoding (i.e. for output to + file and process), not for in-buffer or Lisp string encoding. */ +static Lisp_Object system_eol_type; + #ifdef emacs Lisp_Object Vcoding_system_list, Vcoding_system_alist; @@ -5174,7 +5180,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. */ + PARENT. Otherwise, return CODING_SYSTEM. If PARENT is nil, + inherit end-of-line format from the system's setting + (system_eol_type). */ Lisp_Object coding_inherit_eol_type (coding_system, parent) @@ -5186,15 +5194,20 @@ coding_system = Qraw_text; spec = CODING_SYSTEM_SPEC (coding_system); eol_type = AREF (spec, 2); - if (VECTORP (eol_type) - && ! NILP (parent)) - { - Lisp_Object parent_spec; + if (VECTORP (eol_type)) + { Lisp_Object parent_eol_type; - parent_spec - = CODING_SYSTEM_SPEC (buffer_defaults.buffer_file_coding_system); - parent_eol_type = AREF (parent_spec, 2); + if (! NILP (parent)) + { + Lisp_Object parent_spec; + + parent_spec + = CODING_SYSTEM_SPEC (buffer_defaults.buffer_file_coding_system); + parent_eol_type = AREF (parent_spec, 2); + } + else + parent_eol_type = system_eol_type; if (EQ (parent_eol_type, Qunix)) coding_system = AREF (eol_type, 0); else if (EQ (parent_eol_type, Qdos)) @@ -9739,6 +9752,12 @@ for (i = 0; i < coding_category_max; i++) Fset (AREF (Vcoding_category_table, i), Qno_conversion); } +#if defined (MSDOS) || defined (WINDOWSNT) + system_eol_type = Qdos; +#else + system_eol_type = Qunix; +#endif + staticpro (&system_eol_type); } char *