aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/international/mule-cmds.el
diff options
context:
space:
mode:
authorJason Rumney <[email protected]>2002-04-07 18:51:29 +0000
committerJason Rumney <[email protected]>2002-04-07 18:51:29 +0000
commit1d77e15a284d9d023b8c2743dedebad1e5e5d162 (patch)
treeb16866b3a7fbc267d9a44950e14329c8ae4101a6 /lisp/international/mule-cmds.el
parentcf6f437fc9db506fa68bc49f301b69ce6035d894 (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.el38
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