changeset 73249:f5aa4451cada

* international/mule-cmds.el (coding-system-change-eol-conversion): Ensure the coding system is initialized before calling coding-system-eol-type.
author Chong Yidong <cyd@stupidchicken.com>
date Thu, 05 Oct 2006 14:46:26 +0000
parents 7e5dc6da708d
children cec4203a5097
files lisp/ChangeLog lisp/international/mule-cmds.el
diffstat 2 files changed, 21 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Thu Oct 05 14:43:08 2006 +0000
+++ b/lisp/ChangeLog	Thu Oct 05 14:46:26 2006 +0000
@@ -1,3 +1,9 @@
+2006-10-05  Chong Yidong  <cyd@stupidchicken.com>
+
+	* international/mule-cmds.el (coding-system-change-eol-conversion):
+	Ensure the coding system is initialized before calling
+	coding-system-eol-type.
+
 2006-10-04  Carsten Dominik  <dominik@science.uva.nl>
 
 	* textmodes/org.el (org-rm-props, org-activate-plain-links) 
--- a/lisp/international/mule-cmds.el	Thu Oct 05 14:43:08 2006 +0000
+++ b/lisp/international/mule-cmds.el	Thu Oct 05 14:46:26 2006 +0000
@@ -216,19 +216,21 @@
 			   ((eq eol-type 'dos) 1)
 			   ((eq eol-type 'mac) 2)
 			   (t eol-type))))
-  (let ((orig-eol-type (coding-system-eol-type coding-system)))
-    (if (vectorp orig-eol-type)
-	(if (not eol-type)
-	    coding-system
-	  (aref orig-eol-type eol-type))
-      (let ((base (coding-system-base coding-system)))
-	(if (not eol-type)
-	    base
-	  (if (= eol-type orig-eol-type)
-	      coding-system
-	    (setq orig-eol-type (coding-system-eol-type base))
-	    (if (vectorp orig-eol-type)
-		(aref orig-eol-type eol-type))))))))
+  ;; We call `coding-system-base' before `coding-system-eol-type',
+  ;; because the coding-system may not be initialized until then.
+  (let* ((base (coding-system-base coding-system))
+	 (orig-eol-type (coding-system-eol-type coding-system)))
+    (cond ((vectorp orig-eol-type)
+	   (if (not eol-type)
+	       coding-system
+	     (aref orig-eol-type eol-type)))
+	  ((not eol-type)
+	   base)
+	  ((= eol-type orig-eol-type)
+	   coding-system)
+	  ((progn (setq orig-eol-type (coding-system-eol-type base))
+		  (vectorp orig-eol-type))
+	   (aref orig-eol-type eol-type)))))
 
 (defun coding-system-change-text-conversion (coding-system coding)
   "Return a coding system which differs from CODING-SYSTEM in text conversion.