summaryrefslogtreecommitdiff
path: root/lisp/vc/smerge-mode.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2018-01-05 11:22:27 +0200
committerEli Zaretskii <eliz@gnu.org>2018-01-05 11:22:27 +0200
commitf82400798ee4f7b0945c7b14e15c806108a504cb (patch)
tree6636b563406855d4b9b78c82b4821a75caf64e57 /lisp/vc/smerge-mode.el
parentc967ba186137e48b14c25ce2a439293fe07ead34 (diff)
downloademacs-f82400798ee4f7b0945c7b14e15c806108a504cb.tar.gz
Fix failures in smerge-mode on MS-Windows
* lisp/vc/smerge-mode.el (smerge--refine-chopup-region): Use utf-8-emacs-unix, not emacs-internal, to make the forced EOL convention explicit. (smerge-refine-regions): Use utf-8-emacs instead of emacs-internal, to allow decoding of non-Unix EOL conventions. (Bug#29916)
Diffstat (limited to 'lisp/vc/smerge-mode.el')
-rw-r--r--lisp/vc/smerge-mode.el6
1 files changed, 4 insertions, 2 deletions
diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el
index 761536745f4..ea99d31e898 100644
--- a/lisp/vc/smerge-mode.el
+++ b/lisp/vc/smerge-mode.el
@@ -1019,7 +1019,7 @@ chars to try and eliminate some spurious differences."
(setq s short)))
(dotimes (_i (1- len)) (insert s)))))))
(unless (bolp) (error "Smerge refine internal error"))
- (let ((coding-system-for-write 'emacs-internal))
+ (let ((coding-system-for-write 'utf-8-emacs-unix))
(write-region (point-min) (point-max) file nil 'nomessage))))
(defun smerge--refine-highlight-change (beg match-num1 match-num2 props)
@@ -1084,7 +1084,9 @@ used to replace chars to try and eliminate some spurious differences."
;; Call diff on those files.
(unwind-protect
(with-temp-buffer
- (let ((coding-system-for-read 'emacs-internal))
+ ;; Allow decoding the EOL format, as on MS-Windows the Diff
+ ;; utility might produce CR-LF EOLs.
+ (let ((coding-system-for-read 'utf-8-emacs))
(call-process diff-command nil t nil
(if (and smerge-refine-ignore-whitespace
(not smerge-refine-weight-hack))