# HG changeset patch # User Richard M. Stallman # Date 784996002 0 # Node ID 5b5406fbd8331f75a681f3ae54355644071d4689 # Parent c5c2a86432a4599235de0093030029e46b62f7e9 (dired-collect-file-versions): Discard version #s from arg; then do nothing if already in dired-file-version-alist. diff -r c5c2a86432a4 -r 5b5406fbd833 lisp/dired-aux.el --- a/lisp/dired-aux.el Wed Nov 16 14:15:54 1994 +0000 +++ b/lisp/dired-aux.el Wed Nov 16 14:26:42 1994 +0000 @@ -246,19 +246,24 @@ (forward-line 1))))) (defun dired-collect-file-versions (fn) - ;; "If it looks like file FN has versions, return a list of the versions. - ;;That is a list of strings which are file names. - ;;The caller may want to flag some of these files for deletion." - (let* ((base-versions - (concat (file-name-nondirectory fn) ".~")) - (bv-length (length base-versions)) - (possibilities (file-name-all-completions - base-versions - (file-name-directory fn))) - (versions (mapcar 'backup-extract-version possibilities))) - (if versions - (setq dired-file-version-alist (cons (cons fn versions) - dired-file-version-alist))))) + (let ((fn (file-name-sans-versions fn))) + ;; Only do work if this file is not already in the alist. + (if (assoc fn dired-file-version-alist) + nil + ;; If it looks like file FN has versions, return a list of the versions. + ;;That is a list of strings which are file names. + ;;The caller may want to flag some of these files for deletion." + (let* ((base-versions + (concat (file-name-nondirectory fn) ".~")) + (bv-length (length base-versions)) + (possibilities (file-name-all-completions + base-versions + (file-name-directory fn))) + (versions (mapcar 'backup-extract-version possibilities))) + (if versions + (setq dired-file-version-alist + (cons (cons fn versions) + dired-file-version-alist))))))) (defun dired-trample-file-versions (fn) (let* ((start-vn (string-match "\\.~[0-9]+~$" fn))