diff options
Diffstat (limited to 'lisp/diff.el')
-rw-r--r-- | lisp/diff.el | 45 |
1 files changed, 24 insertions, 21 deletions
diff --git a/lisp/diff.el b/lisp/diff.el index 3f35c1167b2..a6793dca51f 100644 --- a/lisp/diff.el +++ b/lisp/diff.el @@ -1,6 +1,6 @@ ;;; diff.el --- Run `diff' in compilation-mode. -;; Copyright (C) 1992 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994 Free Software Foundation, Inc. ;; Keywords: unix, tools @@ -254,26 +254,29 @@ The backup file is the first file given to `diff'." (defun diff-latest-backup-file (fn) ; actually belongs into files.el "Return the latest existing backup of FILE, or nil." - ;; First try simple backup, then the highest numbered of the - ;; numbered backups. - ;; Ignore the value of version-control because we look for existing - ;; backups, which maybe were made earlier or by another user with - ;; a different value of version-control. - (setq fn (file-chase-links (expand-file-name fn))) - (or - (let ((bak (make-backup-file-name fn))) - (if (file-exists-p bak) bak)) - (let* ((dir (file-name-directory fn)) - (base-versions (concat (file-name-nondirectory fn) ".~")) - (bv-length (length base-versions))) - (concat dir - (car (sort - (file-name-all-completions base-versions dir) - ;; bv-length is a fluid var for backup-extract-version: - (function - (lambda (fn1 fn2) - (> (backup-extract-version fn1) - (backup-extract-version fn2)))))))))) + (let ((handler (find-file-name-handler fn))) + (if handler + (funcall handler fn) + ;; First try simple backup, then the highest numbered of the + ;; numbered backups. + ;; Ignore the value of version-control because we look for existing + ;; backups, which maybe were made earlier or by another user with + ;; a different value of version-control. + (setq fn (file-chase-links (expand-file-name fn))) + (or + (let ((bak (make-backup-file-name fn))) + (if (file-exists-p bak) bak)) + (let* ((dir (file-name-directory fn)) + (base-versions (concat (file-name-nondirectory fn) ".~")) + (bv-length (length base-versions))) + (concat dir + (car (sort + (file-name-all-completions base-versions dir) + ;; bv-length is a fluid var for backup-extract-version: + (function + (lambda (fn1 fn2) + (> (backup-extract-version fn1) + (backup-extract-version fn2)))))))))))) (provide 'diff) |