diff options
Diffstat (limited to 'lisp/files.el')
-rw-r--r-- | lisp/files.el | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/files.el b/lisp/files.el index 67b8b6adba3..26235275261 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -4304,6 +4304,7 @@ If WILDCARD, it also runs the shell specified by `shell-file-name'." file-name-coding-system default-file-name-coding-system 'undecided)) + coding-no-eol val pos) (when (and enable-multibyte-characters (not (memq (coding-system-base coding) @@ -4314,6 +4315,8 @@ If WILDCARD, it also runs the shell specified by `shell-file-name'." (setq coding (detect-coding-region beg (point) t))) (if (not (eq (coding-system-base coding) 'undecided)) (save-restriction + (setq coding-no-eol + (coding-system-change-eol-conversion coding 'unix)) (narrow-to-region beg (point)) (goto-char (point-min)) (while (not (eobp)) @@ -4321,7 +4324,10 @@ If WILDCARD, it also runs the shell specified by `shell-file-name'." val (get-text-property (point) 'dired-filename)) (goto-char (next-single-property-change (point) 'dired-filename nil (point-max))) - (decode-coding-region pos (point) coding) + ;; Force no eol conversion on a file name, so + ;; that CR is preserved. + (decode-coding-region pos (point) + (if val coding-no-eol coding)) (if val (put-text-property pos (point) 'dired-filename t))))))) |