aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Kifer2004-02-20 02:41:02 +0000
committerMichael Kifer2004-02-20 02:41:02 +0000
commit6d2986fb74fc92ed6e644301d46d32500564a7ff (patch)
tree7eea3c0f868c76a7f16c7c2f66f1adcfd22477ec
parent8003011b3a69bf0a1b646e5746891d52d524b876 (diff)
downloademacs-6d2986fb74fc92ed6e644301d46d32500564a7ff.tar.gz
emacs-6d2986fb74fc92ed6e644301d46d32500564a7ff.zip
* ediff-util.el (ediff-compute-custom-diffs-maybe): Avoid creating
temporary file for buffer already visiting one. This change makes output likely to be directly usable by patch program. Suggested by Adrian Aichner <adrian@xemacs.org>
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/ediff-util.el28
2 files changed, 23 insertions, 12 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 33be71476c9..ae590cde276 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
12003-02-19 Michael Kifer <kifer@cs.stonybrook.edu>
2
3 * ediff-util.el (ediff-compute-custom-diffs-maybe): Avoid creating
4 temporary file for buffer already visiting one. This change makes
5 output likely to be directly usable by patch program.
6 Suggested by Adrian Aichner <adrian@xemacs.org>
7
12004-02-20 Nick Roberts <nick@nick.uklinux.net> 82004-02-20 Nick Roberts <nick@nick.uklinux.net>
2 9
3 * gdb-ui.el (gdb-use-colon-colon-notation): Set default to nil for 10 * gdb-ui.el (gdb-use-colon-colon-notation): Set default to nil for
diff --git a/lisp/ediff-util.el b/lisp/ediff-util.el
index 9550e65c2e9..79f85cc1896 100644
--- a/lisp/ediff-util.el
+++ b/lisp/ediff-util.el
@@ -3401,29 +3401,33 @@ Without an argument, it saves customized diff argument, if available
3401 (let ((buf-A-file-name (buffer-file-name ediff-buffer-A)) 3401 (let ((buf-A-file-name (buffer-file-name ediff-buffer-A))
3402 (buf-B-file-name (buffer-file-name ediff-buffer-B)) 3402 (buf-B-file-name (buffer-file-name ediff-buffer-B))
3403 file-A file-B) 3403 file-A file-B)
3404 (if (stringp buf-A-file-name) 3404 (unless (and buf-A-file-name (file-exists-p buf-A-file-name))
3405 (setq buf-A-file-name (file-name-nondirectory buf-A-file-name))) 3405 (setq file-A
3406 (if (stringp buf-B-file-name) 3406 (ediff-make-temp-file ediff-buffer-A)))
3407 (setq buf-B-file-name (file-name-nondirectory buf-B-file-name))) 3407 (unless (and buf-B-file-name (file-exists-p buf-B-file-name))
3408 (setq file-A (ediff-make-temp-file ediff-buffer-A buf-A-file-name) 3408 (setq file-B
3409 file-B (ediff-make-temp-file ediff-buffer-B buf-B-file-name)) 3409 (ediff-make-temp-file ediff-buffer-B)))
3410
3411 (or (ediff-buffer-live-p ediff-custom-diff-buffer) 3410 (or (ediff-buffer-live-p ediff-custom-diff-buffer)
3412 (setq ediff-custom-diff-buffer 3411 (setq ediff-custom-diff-buffer
3413 (get-buffer-create 3412 (get-buffer-create
3414 (ediff-unique-buffer-name "*ediff-custom-diff" "*")))) 3413 (ediff-unique-buffer-name "*ediff-custom-diff" "*"))))
3415 (ediff-with-current-buffer ediff-custom-diff-buffer 3414 (ediff-with-current-buffer ediff-custom-diff-buffer
3416 (setq buffer-read-only nil) 3415 (setq buffer-read-only nil)
3417 (erase-buffer)) 3416 (erase-buffer))
3418 (ediff-exec-process 3417 (ediff-exec-process
3419 ediff-custom-diff-program ediff-custom-diff-buffer 'synchronize 3418 ediff-custom-diff-program ediff-custom-diff-buffer 'synchronize
3420 ediff-custom-diff-options file-A file-B) 3419 ediff-custom-diff-options
3420 ;; repetition of buf-A-file-name is needed so it'll return a file
3421 (or (and buf-A-file-name (file-exists-p buf-A-file-name) buf-A-file-name)
3422 file-A)
3423 (or (and buf-B-file-name (file-exists-p buf-B-file-name) buf-B-file-name)
3424 file-B))
3421 ;; put the diff file in diff-mode, if it is available 3425 ;; put the diff file in diff-mode, if it is available
3422 (if (fboundp 'diff-mode) 3426 (if (fboundp 'diff-mode)
3423 (with-current-buffer ediff-custom-diff-buffer 3427 (with-current-buffer ediff-custom-diff-buffer
3424 (diff-mode))) 3428 (diff-mode)))
3425 (delete-file file-A) 3429 (and file-A (file-exists-p file-A) (delete-file file-A))
3426 (delete-file file-B) 3430 (and file-B (file-exists-p file-B) (delete-file file-B))
3427 )) 3431 ))
3428 3432
3429(defun ediff-show-diff-output (arg) 3433(defun ediff-show-diff-output (arg)