Mercurial > emacs
comparison lisp/ediff-util.el @ 91483:5fc145fcebe2
* ediff-util.el (ediff-compute-custom-diffs-maybe): Handle remote files.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Sun, 03 Feb 2008 11:58:58 +0000 |
parents | f2c8fd594360 |
children | 9c0d69f69d95 |
comparison
equal
deleted
inserted
replaced
91482:c2ae228b4c24 | 91483:5fc145fcebe2 |
---|---|
3422 ;; This function operates only from an ediff control buffer | 3422 ;; This function operates only from an ediff control buffer |
3423 (defun ediff-compute-custom-diffs-maybe () | 3423 (defun ediff-compute-custom-diffs-maybe () |
3424 (let ((buf-A-file-name (buffer-file-name ediff-buffer-A)) | 3424 (let ((buf-A-file-name (buffer-file-name ediff-buffer-A)) |
3425 (buf-B-file-name (buffer-file-name ediff-buffer-B)) | 3425 (buf-B-file-name (buffer-file-name ediff-buffer-B)) |
3426 file-A file-B) | 3426 file-A file-B) |
3427 (unless (and buf-A-file-name (file-exists-p buf-A-file-name)) | 3427 (unless (and buf-A-file-name |
3428 (file-exists-p buf-A-file-name) | |
3429 (not (ediff-file-remote-p buf-A-file-name))) | |
3428 (setq file-A | 3430 (setq file-A |
3429 (ediff-make-temp-file ediff-buffer-A))) | 3431 (ediff-make-temp-file ediff-buffer-A))) |
3430 (unless (and buf-B-file-name (file-exists-p buf-B-file-name)) | 3432 (unless (and buf-B-file-name |
3433 (file-exists-p buf-B-file-name) | |
3434 (not (ediff-file-remote-p buf-B-file-name))) | |
3431 (setq file-B | 3435 (setq file-B |
3432 (ediff-make-temp-file ediff-buffer-B))) | 3436 (ediff-make-temp-file ediff-buffer-B))) |
3433 (or (ediff-buffer-live-p ediff-custom-diff-buffer) | 3437 (or (ediff-buffer-live-p ediff-custom-diff-buffer) |
3434 (setq ediff-custom-diff-buffer | 3438 (setq ediff-custom-diff-buffer |
3435 (get-buffer-create | 3439 (get-buffer-create |
3439 (erase-buffer)) | 3443 (erase-buffer)) |
3440 (ediff-exec-process | 3444 (ediff-exec-process |
3441 ediff-custom-diff-program ediff-custom-diff-buffer 'synchronize | 3445 ediff-custom-diff-program ediff-custom-diff-buffer 'synchronize |
3442 ediff-custom-diff-options | 3446 ediff-custom-diff-options |
3443 ;; repetition of buf-A-file-name is needed so it'll return a file | 3447 ;; repetition of buf-A-file-name is needed so it'll return a file |
3444 (or (and buf-A-file-name (file-exists-p buf-A-file-name) buf-A-file-name) | 3448 (or file-A buf-A-file-name) |
3445 file-A) | 3449 (or file-B buf-B-file-name)) |
3446 (or (and buf-B-file-name (file-exists-p buf-B-file-name) buf-B-file-name) | |
3447 file-B)) | |
3448 ;; put the diff file in diff-mode, if it is available | 3450 ;; put the diff file in diff-mode, if it is available |
3449 (if (fboundp 'diff-mode) | 3451 (if (fboundp 'diff-mode) |
3450 (with-current-buffer ediff-custom-diff-buffer | 3452 (with-current-buffer ediff-custom-diff-buffer |
3451 (diff-mode))) | 3453 (diff-mode))) |
3452 (and file-A (file-exists-p file-A) (delete-file file-A)) | 3454 (and file-A (delete-file file-A)) |
3453 (and file-B (file-exists-p file-B) (delete-file file-B)) | 3455 (and file-B (delete-file file-B)) |
3454 )) | 3456 )) |
3455 | 3457 |
3456 (defun ediff-show-diff-output (arg) | 3458 (defun ediff-show-diff-output (arg) |
3457 (interactive "P") | 3459 (interactive "P") |
3458 (ediff-barf-if-not-control-buffer) | 3460 (ediff-barf-if-not-control-buffer) |