changeset 23960:37905ac69d9c

(prefer-coding-system): If the argument requires specific EOL conversion type, make the default coding systems use that.
author Eli Zaretskii <eliz@gnu.org>
date Wed, 30 Dec 1998 17:21:44 +0000
parents af78e18ed775
children 7a6b8dd13afb
files lisp/international/mule-cmds.el
diffstat 1 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/international/mule-cmds.el	Wed Dec 30 03:41:55 1998 +0000
+++ b/lisp/international/mule-cmds.el	Wed Dec 30 17:21:44 1998 +0000
@@ -238,6 +238,9 @@
   o default value for the command `set-terminal-coding-system' (not on MSDOS)
   o default value for the command `set-keyboard-coding-system'
 
+If CODING-SYSTEM specifies a certain type of EOL conversion, the coding
+systems set by this function will use that type of EOL conversion.
+
 This command does not change the default value of terminal coding system
 for MS-DOS terminal, because DOS terminals only support a single coding
 system, and Emacs automatically sets the default to that coding system at
@@ -246,7 +249,8 @@
   (if (not (and coding-system (coding-system-p coding-system)))
       (error "Invalid coding system `%s'" coding-system))
   (let ((coding-category (coding-system-category coding-system))
-	(base (coding-system-base coding-system)))
+	(base (coding-system-base coding-system))
+	(eol-type (coding-system-eol-type coding-system)))
     (if (not coding-category)
 	;; CODING-SYSTEM is no-conversion or undecided.
 	(error "Can't prefer the coding system `%s'" coding-system))
@@ -260,7 +264,12 @@
     (if (and base (interactive-p))
 	(message "Highest priority is set to %s (base of %s)"
 		 base coding-system))
-    (set-default-coding-systems (or base coding-system))))
+    ;; If they asked for specific EOL conversion, honor that.
+    (if (memq eol-type '(0 1 2 unix dos mac))
+	(setq coding-system
+	      (coding-system-change-eol-conversion base eol-type))
+      (setq coding-system base))
+    (set-default-coding-systems coding-system)))
 
 (defun find-coding-systems-region-subset-p (list1 list2)
   "Return non-nil if all elements in LIST1 are included in LIST2.