changeset 18525:92d4f44969c6

(decode_mode_spec_coding): Clean up handling of eol conversions.
author Richard M. Stallman <rms@gnu.org>
date Wed, 02 Jul 1997 02:59:01 +0000
parents 0ee850381861
children e0d1b341124c
files src/xdisp.c
diffstat 1 files changed, 31 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Wed Jul 02 02:57:29 1997 +0000
+++ b/src/xdisp.c	Wed Jul 02 02:59:01 1997 +0000
@@ -4023,31 +4023,48 @@
      register char *buf;
      int eol_flag;
 {
-  register Lisp_Object val = coding_system;
+  Lisp_Object val;
+
+  val = coding_system;
 
   if (NILP (val))		/* Not yet decided.  */
     {
       *buf++ = '-';
-      if (eol_flag) *buf++ = eol_mnemonic_undecided;
+      *buf++ = eol_mnemonic_undecided;
+      /* Don't mention EOL conversion if it isn't decided.  */
     }
   else
     {
+      Lisp_Object eolvalue;
+
+      eolvalue = Fget (coding_system, Qeol_type);
+
       while (!NILP (val) && SYMBOLP (val))
-	val = Fget (val, Qcoding_system);
+	{
+	  val = Fget (val, Qcoding_system);
+	  if (NILP (eolvalue))
+	    eolvalue = Fget (coding_system, Qeol_type);
+	}
+
       *buf++ = XFASTINT (XVECTOR (val)->contents[1]);
       if (eol_flag)
 	{
-	  val = Fget (coding_system, Qeol_type);
-
-	  if (NILP (val))	/* Not yet decided.  */
-	    *buf++ = eol_mnemonic_undecided;
-	  else if (VECTORP (val)) /* Not yet decided.  */
-	    *buf++ = eol_mnemonic_undecided;
-	  else			/* INTEGERP (val) -- 1:LF, 2:CRLF, 3:CR */
-	    *buf++ = (XFASTINT (val) == 1
-		      ? eol_mnemonic_unix
-		      : (XFASTINT (val) == 2
-			 ? eol_mnemonic_dos : eol_mnemonic_mac));
+	  /* The EOL conversion we are using.  */
+	  int eoltype;
+	  /* The EOL conversion that is normal on this system.  */
+
+	  if (NILP (eolvalue))	/* Not yet decided.  */
+	    eoltype = eol_mnemonic_undecided;
+	  else if (VECTORP (eolvalue)) /* Not yet decided.  */
+	    eoltype = eol_mnemonic_undecided;
+	  else			/* INTEGERP (eolvalue) -- 0:LF, 1:CRLF, 2:CR */
+	    eoltype = (XFASTINT (eolvalue) == 0
+		       ? eol_mnemonic_unix
+		       : (XFASTINT (eolvalue) == 1
+			  ? eol_mnemonic_dos : eol_mnemonic_mac));
+
+	  /* Mention the EOL conversion if it is not the usual one.  */
+	  *buf++ = eoltype;
 	}
     }
   return buf;