summaryrefslogtreecommitdiff
path: root/lisp/ediff-diff.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2008-10-19 08:27:14 +0000
committerEli Zaretskii <eliz@gnu.org>2008-10-19 08:27:14 +0000
commit95aac6d1142bbd42603f18da090400bf94cf2ead (patch)
tree9179b0eee92efd11e29caae7c2daed726905abb5 /lisp/ediff-diff.el
parentf9fc24a60e236590b4e5a9f7f9805fd15e552bba (diff)
downloademacs-95aac6d1142bbd42603f18da090400bf94cf2ead.tar.gz
emacs-95aac6d1142bbd42603f18da090400bf94cf2ead.tar.bz2
emacs-95aac6d1142bbd42603f18da090400bf94cf2ead.zip
(ediff-exec-process): For buffer jobs, bind coding-system-for-read
to ediff-coding-system-for-write.
Diffstat (limited to 'lisp/ediff-diff.el')
-rw-r--r--lisp/ediff-diff.el8
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/ediff-diff.el b/lisp/ediff-diff.el
index ec9bf24c493..2dd34a9f512 100644
--- a/lisp/ediff-diff.el
+++ b/lisp/ediff-diff.el
@@ -1207,7 +1207,13 @@ delimiter regions"))
;; args.
(defun ediff-exec-process (program buffer synch options &rest files)
(let ((data (match-data))
- (coding-system-for-read ediff-coding-system-for-read)
+ ;; If this is a buffer job, we are diffing temporary files
+ ;; produced by Emacs with ediff-coding-system-for-write, so
+ ;; use the same encoding to read the results.
+ (coding-system-for-read
+ (if (string-match "buffer" (symbol-name ediff-job-name))
+ ediff-coding-system-for-write
+ ediff-coding-system-for-read))
args)
(setq args (append (split-string options) files))
(setq args (delete "" (delq nil args))) ; delete nil and "" from arguments