diff options
| author | Michael Kifer | 2004-02-20 02:41:02 +0000 |
|---|---|---|
| committer | Michael Kifer | 2004-02-20 02:41:02 +0000 |
| commit | 6d2986fb74fc92ed6e644301d46d32500564a7ff (patch) | |
| tree | 7eea3c0f868c76a7f16c7c2f66f1adcfd22477ec | |
| parent | 8003011b3a69bf0a1b646e5746891d52d524b876 (diff) | |
| download | emacs-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/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/ediff-util.el | 28 |
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 @@ | |||
| 1 | 2003-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 | |||
| 1 | 2004-02-20 Nick Roberts <nick@nick.uklinux.net> | 8 | 2004-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) |