mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-25 10:47:00 +00:00
(diff-latest-backup-file): Check for a file-name-handler and run it.
This commit is contained in:
parent
b8ca7cc378
commit
34c46d8756
45
lisp/diff.el
45
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)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user