1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-08 15:35:02 +00:00

(set-buffer-file-coding-system): Almost rewritten to handle

`undecided' as no-op.
This commit is contained in:
Kenichi Handa 2000-06-15 00:32:21 +00:00
parent 32684631da
commit 8dd735c19a

View File

@ -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))