aboutsummaryrefslogtreecommitdiffstats
path: root/src/coding.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/coding.c')
-rw-r--r--src/coding.c38
1 files changed, 14 insertions, 24 deletions
diff --git a/src/coding.c b/src/coding.c
index e351cc72fab..2c6b2c4d051 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -302,12 +302,6 @@ encode_coding_XXX (struct coding_system *coding)
302 302
303Lisp_Object Vcoding_system_hash_table; 303Lisp_Object Vcoding_system_hash_table;
304 304
305/* Format of end-of-line decided by system. This is Qunix on
306 Unix and Mac, Qdos on DOS/Windows.
307 This has an effect only for external encoding (i.e. for output to
308 file and process), not for in-buffer or Lisp string encoding. */
309static Lisp_Object system_eol_type;
310
311/* Coding-systems are handed between Emacs Lisp programs and C internal 305/* Coding-systems are handed between Emacs Lisp programs and C internal
312 routines by the following three variables. */ 306 routines by the following three variables. */
313/* Coding system to be used to encode text for terminal display when 307/* Coding system to be used to encode text for terminal display when
@@ -5972,8 +5966,7 @@ raw_text_coding_system_p (struct coding_system *coding)
5972 5966
5973/* If CODING_SYSTEM doesn't specify end-of-line format, return one of 5967/* If CODING_SYSTEM doesn't specify end-of-line format, return one of
5974 the subsidiary that has the same eol-spec as PARENT (if it is not 5968 the subsidiary that has the same eol-spec as PARENT (if it is not
5975 nil and specifies end-of-line format) or the system's setting 5969 nil and specifies end-of-line format) or the system's setting. */
5976 (system_eol_type). */
5977 5970
5978Lisp_Object 5971Lisp_Object
5979coding_inherit_eol_type (Lisp_Object coding_system, Lisp_Object parent) 5972coding_inherit_eol_type (Lisp_Object coding_system, Lisp_Object parent)
@@ -5988,20 +5981,24 @@ coding_inherit_eol_type (Lisp_Object coding_system, Lisp_Object parent)
5988 eol_type = AREF (spec, 2); 5981 eol_type = AREF (spec, 2);
5989 if (VECTORP (eol_type)) 5982 if (VECTORP (eol_type))
5990 { 5983 {
5991 Lisp_Object parent_eol_type; 5984 /* Format of end-of-line decided by system.
5985 This is Qunix on Unix and Mac, Qdos on DOS/Windows.
5986 This has an effect only for external encoding (i.e., for output to
5987 file and process), not for in-buffer or Lisp string encoding. */
5988 Lisp_Object system_eol_type = Qunix;
5989 #ifdef DOS_NT
5990 system_eol_type = Qdos;
5991 #endif
5992 5992
5993 Lisp_Object parent_eol_type = system_eol_type;
5993 if (! NILP (parent)) 5994 if (! NILP (parent))
5994 { 5995 {
5995 Lisp_Object parent_spec;
5996
5997 CHECK_CODING_SYSTEM (parent); 5996 CHECK_CODING_SYSTEM (parent);
5998 parent_spec = CODING_SYSTEM_SPEC (parent); 5997 Lisp_Object parent_spec = CODING_SYSTEM_SPEC (parent);
5999 parent_eol_type = AREF (parent_spec, 2); 5998 Lisp_Object pspec_type = AREF (parent_spec, 2);
6000 if (VECTORP (parent_eol_type)) 5999 if (!VECTORP (pspec_type))
6001 parent_eol_type = system_eol_type; 6000 parent_eol_type = pspec_type;
6002 } 6001 }
6003 else
6004 parent_eol_type = system_eol_type;
6005 if (EQ (parent_eol_type, Qunix)) 6002 if (EQ (parent_eol_type, Qunix))
6006 coding_system = AREF (eol_type, 0); 6003 coding_system = AREF (eol_type, 0);
6007 else if (EQ (parent_eol_type, Qdos)) 6004 else if (EQ (parent_eol_type, Qdos))
@@ -11306,13 +11303,6 @@ internal character representation. */);
11306 for (int i = 0; i < coding_category_max; i++) 11303 for (int i = 0; i < coding_category_max; i++)
11307 Fset (AREF (Vcoding_category_table, i), Qno_conversion); 11304 Fset (AREF (Vcoding_category_table, i), Qno_conversion);
11308 11305
11309#if defined (DOS_NT)
11310 system_eol_type = Qdos;
11311#else
11312 system_eol_type = Qunix;
11313#endif
11314 staticpro (&system_eol_type);
11315
11316 pdumper_do_now_and_after_load (reset_coding_after_pdumper_load); 11306 pdumper_do_now_and_after_load (reset_coding_after_pdumper_load);
11317} 11307}
11318 11308