Mercurial > emacs
changeset 22652:a453ed3fb89f
(comint-exec-1): Setup coding systems appropriately.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 30 Jun 1998 21:43:39 +0000 |
parents | 175d00eed6c7 |
children | 8b39df7b3506 |
files | lisp/comint.el |
diffstat | 1 files changed, 22 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/comint.el Tue Jun 30 17:15:32 1998 +0000 +++ b/lisp/comint.el Tue Jun 30 21:43:39 1998 +0000 @@ -681,8 +681,28 @@ (default-directory (if (file-accessible-directory-p default-directory) default-directory - (char-to-string directory-sep-char)))) - (apply 'start-process name buffer command switches))) + (char-to-string directory-sep-char))) + proc decoding encoding changed) + (setq proc (apply 'start-process name buffer command switches)) + (let ((coding-systems (process-coding-system proc))) + (setq decoding (car coding-systems) + encoding (cdr coding-systems))) + ;; If start-process decided to use some coding system for decoding + ;; data sent form the process and the coding system doesn't + ;; specify EOL conversion, we had better convert CRLF to LF. + (if (vectorp (coding-system-eol-type decoding)) + (setq decoding (coding-system-change-eol-conversion decoding 'dos) + changed t)) + ;; Even if start-process left the coding system for encoding data + ;; sent from the process undecided, we had better use the same one + ;; as what we use for decoding. But, we should suppress EOL + ;; conversion. + (if (and decoding (not encoding)) + (setq encoding (coding-system-change-eol-conversion decoding 'unix) + changed t)) + (if changed + (set-process-coding-system proc decoding encoding)) + proc)) ;; Input history processing in a buffer ;; ===========================================================================