diff lisp/diff.el @ 6147:f89879182407

(diff-latest-backup-file): Check for a file-name-handler and run it.
author Roland McGrath <roland@gnu.org>
date Wed, 02 Mar 1994 10:27:36 +0000
parents 004856d1b311
children 8c667dc4566e
line wrap: on
line diff
--- a/lisp/diff.el	Wed Mar 02 07:57:04 1994 +0000
+++ b/lisp/diff.el	Wed Mar 02 10:27:36 1994 +0000
@@ -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 @@
 
 (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)