diff options
author | Jason Rumney <[email protected]> | 2002-04-07 18:51:29 +0000 |
---|---|---|
committer | Jason Rumney <[email protected]> | 2002-04-07 18:51:29 +0000 |
commit | 1d77e15a284d9d023b8c2743dedebad1e5e5d162 (patch) | |
tree | b16866b3a7fbc267d9a44950e14329c8ae4101a6 /lisp/international/mule-cmds.el | |
parent | cf6f437fc9db506fa68bc49f301b69ce6035d894 (diff) |
(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.
Diffstat (limited to 'lisp/international/mule-cmds.el')
-rw-r--r-- | lisp/international/mule-cmds.el | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 7e2b1a43db..8e92f94707 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -211,12 +211,10 @@ The returned coding system converts text by CODING 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 @@ This also sets the following values: (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 @@ The default status is as follows: (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 |