comparison lisp/diff.el @ 45472:6b7dcaa53b5c

(diff-latest-backup-file): Replace the main code by a call of file-newest-backup.
author Markus Rost <rost@math.uni-bielefeld.de>
date Wed, 22 May 2002 23:26:51 +0000
parents 0f3260023919
children bac8aaf18835
comparison
equal deleted inserted replaced
45471:7d93671b3743 45472:6b7dcaa53b5c
293 (defun diff-latest-backup-file (fn) ; actually belongs into files.el 293 (defun diff-latest-backup-file (fn) ; actually belongs into files.el
294 "Return the latest existing backup of FILE, or nil." 294 "Return the latest existing backup of FILE, or nil."
295 (let ((handler (find-file-name-handler fn 'diff-latest-backup-file))) 295 (let ((handler (find-file-name-handler fn 'diff-latest-backup-file)))
296 (if handler 296 (if handler
297 (funcall handler 'diff-latest-backup-file fn) 297 (funcall handler 'diff-latest-backup-file fn)
298 ;; First try simple backup, then the highest numbered of the 298 (file-newest-backup fn))))
299 ;; numbered backups.
300 ;; Ignore the value of version-control because we look for existing
301 ;; backups, which maybe were made earlier or by another user with
302 ;; a different value of version-control.
303 (setq fn (file-chase-links (expand-file-name fn)))
304 (or
305 (let ((bak (make-backup-file-name fn)))
306 (if (file-exists-p bak) bak))
307 ;; We use BACKUPNAME to cope with backups stored in a different dir.
308 (let* ((backupname (car (find-backup-file-name fn)))
309 (dir (file-name-directory backupname))
310 (base-versions (concat (file-name-sans-versions
311 (file-name-nondirectory backupname))
312 ".~"))
313 ;; This is a fluid var for backup-extract-version.
314 (backup-extract-version-start (length base-versions)))
315 (concat dir
316 (car (sort
317 (file-name-all-completions base-versions dir)
318 (function
319 (lambda (fn1 fn2)
320 (> (backup-extract-version fn1)
321 (backup-extract-version fn2))))))))))))
322 299
323 (provide 'diff) 300 (provide 'diff)
324 301
325 ;;; diff.el ends here 302 ;;; diff.el ends here