]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix failures in smerge-mode on MS-Windows
authorEli Zaretskii <eliz@gnu.org>
Fri, 5 Jan 2018 09:22:27 +0000 (11:22 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 5 Jan 2018 09:22:27 +0000 (11:22 +0200)
* 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)

lisp/vc/smerge-mode.el

index 761536745f40ce34c706f75176dfe50b8d909e2f..ea99d31e898822eb5467724fa36d3527acff81f1 100644 (file)
@@ -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))