Mercurial > emacs
changeset 44425:86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
eols on default-process-coding-system.
(coding-system-change-text-conversion): Fix case where CODING is nil.
author | Jason Rumney <jasonr@gnu.org> |
---|---|
date | Sun, 07 Apr 2002 18:50:20 +0000 |
parents | f7fa35f7bba2 |
children | 197ba2ea5515 |
files | lisp/international/mule-cmds.el |
diffstat | 1 files changed, 30 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/international/mule-cmds.el Sun Apr 07 10:11:24 2002 +0000 +++ b/lisp/international/mule-cmds.el Sun Apr 07 18:50:20 2002 +0000 @@ -211,12 +211,10 @@ but end-of-line as the same way as CODING-SYSTEM. If CODING is nil, the returned coding system detects how text is formatted automatically while decoding." - (if (not coding) - (coding-system-base coding-system) - (let ((eol-type (coding-system-eol-type coding-system))) - (coding-system-change-eol-conversion - coding - (if (numberp eol-type) (aref [unix dos mac] eol-type)))))) + (let ((eol-type (coding-system-eol-type coding-system))) + (coding-system-change-eol-conversion + (if coding coding 'undecided) + (if (numberp eol-type) (aref [unix dos mac] eol-type))))) (defun toggle-enable-multibyte-characters (&optional arg) "Change whether this buffer uses multibyte characters. @@ -311,7 +309,19 @@ (unless (and (eq window-system 'pc) coding-system) (setq default-terminal-coding-system coding-system)) (setq default-keyboard-coding-system coding-system) - (setq default-process-coding-system (cons coding-system coding-system))) + ;; Preserve eol-type from existing default-process-coding-systems. + ;; On non-unix-like systems in particular, these may have been set + ;; carefully by the user, or by the startup code, to deal with the + ;; users shell appropriately, so should not be altered by changing + ;; language environment. + (let ((output-coding + (coding-system-change-text-conversion + (car default-process-coding-system) coding-system)) + (input-coding + (coding-system-change-text-conversion + (cdr default-process-coding-system) coding-system))) + (setq default-process-coding-system + (cons output-coding input-coding)))) (defalias 'update-iso-coding-systems 'update-coding-systems-internal) (make-obsolete 'update-iso-coding-systems 'update-coding-systems-internal "20.3") @@ -1399,7 +1409,19 @@ (set-default-coding-systems nil) (setq default-sendmail-coding-system 'iso-latin-1) - (setq default-process-coding-system '(undecided . iso-latin-1)) + ;; Preserve eol-type from existing default-process-coding-systems. + ;; On non-unix-like systems in particular, these may have been set + ;; carefully by the user, or by the startup code, to deal with the + ;; users shell appropriately, so should not be altered by changing + ;; language environment. + (let ((output-coding + (coding-system-change-text-conversion + (car default-process-coding-system) 'undecided)) + (input-coding + (coding-system-change-text-conversion + (cdr default-process-coding-system) 'iso-latin-1))) + (setq default-process-coding-system + (cons output-coding input-coding))) ;; Don't alter the terminal and keyboard coding systems here. ;; The terminal still supports the same coding system