From 1d5b0c6669816b8e1f491d6056e3641ae5e7d1cd Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Thu, 5 Oct 2006 14:46:26 +0000 Subject: [PATCH] * international/mule-cmds.el (coding-system-change-eol-conversion): Ensure the coding system is initialized before calling coding-system-eol-type. --- lisp/ChangeLog | 6 ++++++ lisp/international/mule-cmds.el | 28 +++++++++++++++------------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6d70667a8d3..2b97c186a1c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2006-10-05 Chong Yidong + + * 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 * textmodes/org.el (org-rm-props, org-activate-plain-links) diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 9adc4746b91..6edc0a4daac 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -216,19 +216,21 @@ They means `unix', `dos', and `mac' respectively." ((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. -- 2.39.2