diff options
author | Philip Kaludercic <philipk@posteo.net> | 2022-10-15 17:38:30 +0200 |
---|---|---|
committer | Philip Kaludercic <philipk@posteo.net> | 2022-10-15 17:38:30 +0200 |
commit | 01e45efcd44e92dd259283df0e62653c7c20e9cc (patch) | |
tree | 552c1a6ce7d52b897cf5f089d6c589921efbe9bd /lisp/eshell | |
parent | 982c0e6c15535defcf6ac3c4d4169708c60efc18 (diff) | |
parent | 5933055a3e7387b0095f0df7876a208ab15f4f45 (diff) | |
download | emacs-01e45efcd44e92dd259283df0e62653c7c20e9cc.tar.gz emacs-01e45efcd44e92dd259283df0e62653c7c20e9cc.tar.bz2 emacs-01e45efcd44e92dd259283df0e62653c7c20e9cc.zip |
Merge branch 'master' into feature/package+vc
Diffstat (limited to 'lisp/eshell')
-rw-r--r-- | lisp/eshell/em-unix.el | 6 | ||||
-rw-r--r-- | lisp/eshell/esh-proc.el | 18 |
2 files changed, 19 insertions, 5 deletions
diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el index 40b83010f94..4b5e4dd53ed 100644 --- a/lisp/eshell/em-unix.el +++ b/lisp/eshell/em-unix.el @@ -372,12 +372,10 @@ Remove the DIRECTORY(ies), if they are empty.") (setq attr (eshell-file-attributes (car files))) (file-attribute-inode-number attr-target) (file-attribute-inode-number attr) - (equal (file-attribute-inode-number attr-target) - (file-attribute-inode-number attr)) (file-attribute-device-number attr-target) (file-attribute-device-number attr) - (equal (file-attribute-device-number attr-target) - (file-attribute-device-number attr))) + (equal (file-attribute-file-identifier attr-target) + (file-attribute-file-identifier attr))) (eshell-error (format-message "%s: `%s' and `%s' are the same file\n" command (car files) target))) (t diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el index 7e005a0fc1c..bb928fc5fb0 100644 --- a/lisp/eshell/esh-proc.el +++ b/lisp/eshell/esh-proc.el @@ -277,7 +277,23 @@ Used only on systems which do not support async subprocesses.") eshell-delete-exited-processes delete-exited-processes)) (process-environment (eshell-environment-variables)) + (coding-system-for-read coding-system-for-read) + (coding-system-for-write coding-system-for-write) proc stderr-proc decoding encoding changed) + ;; MS-Windows needs special setting of encoding/decoding, because + ;; (a) non-ASCII text in command-line arguments needs to be + ;; encoded in the system's codepage; and (b) because many Windows + ;; programs will always interpret any non-ASCII input as encoded + ;; in the system codepage. + (when (eq system-type 'windows-nt) + (or coding-system-for-read ; Honor manual decoding settings + (setq coding-system-for-read + (coding-system-change-eol-conversion locale-coding-system + 'dos))) + (or coding-system-for-write ; Honor manual encoding settings + (setq coding-system-for-write + (coding-system-change-eol-conversion locale-coding-system + 'unix)))) (cond ((fboundp 'make-process) (unless (equal (car (aref eshell-current-handles eshell-output-handle)) @@ -325,7 +341,7 @@ Used only on systems which do not support async subprocesses.") (setq decoding (coding-system-change-eol-conversion decoding 'dos) changed t)) ;; Even if `make-process' left the coding system for encoding - ;; data sent from the process undecided, we had better use the + ;; data sent to 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)) |