]> git.eshelyaron.com Git - emacs.git/commitdiff
(diff-latest-backup-file): Check for a file-name-handler and run it.
authorRoland McGrath <roland@gnu.org>
Wed, 2 Mar 1994 10:27:36 +0000 (10:27 +0000)
committerRoland McGrath <roland@gnu.org>
Wed, 2 Mar 1994 10:27:36 +0000 (10:27 +0000)
lisp/diff.el

index 3f35c1167b2caaa369dfc9660e5096a958c7a5b9..a6793dca51f76605572418218346318c64887f7a 100644 (file)
@@ -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)