summaryrefslogtreecommitdiff
path: root/lisp/files.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/files.el')
-rw-r--r--lisp/files.el8
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)))))))