Mercurial > emacs
changeset 101431:331a66ef2091
(set-language-environment-coding-systems): If default-buffer-file-coding-system
is nil, set up to have EOLs that are native for the underlying system-type.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 24 Jan 2009 15:31:09 +0000 |
parents | 5393fb4f28ac |
children | e3e63543ac24 |
files | lisp/international/mule-cmds.el |
diffstat | 1 files changed, 19 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/international/mule-cmds.el Sat Jan 24 11:38:06 2009 +0000 +++ b/lisp/international/mule-cmds.el Sat Jan 24 15:31:09 2009 +0000 @@ -1933,7 +1933,25 @@ "Do various coding system setups for language environment LANGUAGE-NAME." (let* ((priority (get-language-info language-name 'coding-priority)) (default-coding (car priority)) - (eol-type (coding-system-eol-type default-buffer-file-coding-system))) + ;; If default-buffer-file-coding-system is nil, don't use + ;; coding-system-eol-type, because it treats nil as + ;; `no-conversion'. default-buffer-file-coding-system is set + ;; to nil by reset-language-environment, and in that case we + ;; want to have here the native EOL type for each platform. + ;; FIXME: there should be a common code that runs both on + ;; startup and here to set the default EOL type correctly. + ;; Right now, DOS/Windows platforms set this on dos-w32.el, + ;; which works only as long as the order of loading files at + ;; dump time and calling functions at startup is not modified + ;; significantly, i.e. as long as this function is called + ;; _after_ default-buffer-file-coding-system was set by + ;; dos-w32.el. + (eol-type + (if (null default-buffer-file-coding-system) + (cond ((memq system-type '(windows-nt ms-dos)) 1) + ((eq system-type 'macos) 2) + (t 0)) + (coding-system-eol-type default-buffer-file-coding-system)))) (when priority (set-default-coding-systems (if (memq eol-type '(0 1 2 unix dos mac))