aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/smerge-mode.el
diff options
context:
space:
mode:
authorStefan Monnier <[email protected]>2007-11-08 16:58:07 +0000
committerStefan Monnier <[email protected]>2007-11-08 16:58:07 +0000
commitf56f00fa571d6174cd3a618873c71d00d114142b (patch)
treeded79c4a5590b5fc778bd94b0a63082a0c36e59b /lisp/smerge-mode.el
parent2cddada065a732925171ebc629fa2a451db3d462 (diff)
(smerge-refine-subst): Pass "-d" to diff.
Diffstat (limited to 'lisp/smerge-mode.el')
-rw-r--r--lisp/smerge-mode.el11
1 files changed, 8 insertions, 3 deletions
diff --git a/lisp/smerge-mode.el b/lisp/smerge-mode.el
index cd5c7c20f8..18ca1a3418 100644
--- a/lisp/smerge-mode.el
+++ b/lisp/smerge-mode.el
@@ -790,12 +790,17 @@ replace chars to try and eliminate some spurious differences."
(unwind-protect
(with-temp-buffer
(let ((coding-system-for-read 'emacs-mule))
- ;; Don't forget -a to make sure diff treats it as a text file
- ;; even if it contains \0 and such.
(call-process diff-command nil t nil
(if (and smerge-refine-ignore-whitespace
(not smerge-refine-weight-hack))
- "-aw" "-a")
+ ;; Pass -a so diff treats it as a text file even
+ ;; if it contains \0 and such.
+ ;; Pass -d so as to get the smallest change, but
+ ;; also and more importantly because otherwise it
+ ;; may happen that diff doesn't behave like
+ ;; smerge-refine-weight-hack expects it to.
+ ;; See http://thread.gmane.org/gmane.emacs.devel/82685.
+ "-awd" "-ad")
file1 file2))
;; Process diff's output.
(goto-char (point-min))