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)