# HG changeset patch # User Kenichi Handa # Date 1147661326 0 # Node ID 263867fe7b5511460148d2a715ef02a57b59a76f # Parent 6592da24d35107ccf38c2c105b3eed2705144d64 (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. diff -r 6592da24d351 -r 263867fe7b55 src/coding.c --- 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 *