From: Kenichi Handa Date: Thu, 15 Jun 2000 00:32:21 +0000 (+0000) Subject: (set-buffer-file-coding-system): Almost rewritten to handle X-Git-Tag: emacs-pretest-21.0.90~3312 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8dd735c19afc005afc439baed3daa5d636368324;p=emacs.git (set-buffer-file-coding-system): Almost rewritten to handle `undecided' as no-op. --- diff --git a/lisp/international/mule.el b/lisp/international/mule.el index e968ad0873f..1c0d6ac5fa2 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -816,14 +816,19 @@ don't want to mark the buffer modified, just set the variable (interactive "zCoding system for visited file (default, nil): \nP") (check-coding-system coding-system) (if (and coding-system buffer-file-coding-system (null force)) - (let ((x (coding-system-eol-type buffer-file-coding-system)) - (y (coding-system-eol-type coding-system))) - (if (and (numberp x) (>= x 0) (<= x 2) (vectorp y)) - (setq coding-system (aref y x)) - (if (and (eq (coding-system-base coding-system) 'undecided) - (numberp y)) - (setq coding-system (coding-system-change-eol-conversion - buffer-file-coding-system y)))))) + (let ((base (coding-system-base buffer-file-coding-system)) + (eol (coding-system-eol-type buffer-file-coding-system))) + ;; If CODING-SYSTEM doesn't specify text conversion, merge + ;; with that of buffer-file-coding-system. + (if (eq (coding-system-base coding-system) 'undecided) + (setq coding-system (coding-system-change-text-conversion + coding-system base))) + ;; If CODING-SYSTEM doesn't specify eol conversion, merge with + ;; that of buffer-file-coding-system. + (if (and (vectorp (coding-system-eol-type coding-system)) + (numberp eol) (>= eol 0) (<= eol 2)) + (setq coding-system (coding-system-change-eol-conversion + coding-system eol))))) (setq buffer-file-coding-system coding-system) (set-buffer-modified-p t) (force-mode-line-update))