branch: externals/truename-cache
commit af9352ae8b6a2085d1fbac0fd68325fa5fac6a04
Author: Martin Edström <[email protected]>
Commit: Martin Edström <[email protected]>
Never analyze a dir if dirs-recursive has done it already
---
truename-cache.el | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/truename-cache.el b/truename-cache.el
index 596e44a2db..c3ef1130d8 100644
--- a/truename-cache.el
+++ b/truename-cache.el
@@ -619,13 +619,14 @@ ARGS mostly as in
`truename-cache-collect-files-and-attributes'."
"Analyze TRUE-DIR, maybe recursively.
ARGS mostly as in `truename-cache-collect-files-and-attributes'."
(map-let (:keep-remotes :REMOTE-HANDLER-ALIST :LOCAL-HANDLER-ALIST) args
- (let ((default-directory (file-name-as-directory true-dir)))
- (if (file-remote-p true-dir)
- (when keep-remotes
- (let ((file-name-handler-alist REMOTE-HANDLER-ALIST))
- (truename-cache--analyze-1 "" args true-dir)))
- (let ((file-name-handler-alist LOCAL-HANDLER-ALIST))
- (truename-cache--analyze-1 "" args true-dir))))))
+ (unless (gethash (directory-file-name true-dir) truename-cache--visited)
+ (let ((default-directory (file-name-as-directory true-dir)))
+ (if (file-remote-p true-dir)
+ (when keep-remotes
+ (let ((file-name-handler-alist REMOTE-HANDLER-ALIST))
+ (truename-cache--analyze-1 "" args true-dir)))
+ (let ((file-name-handler-alist LOCAL-HANDLER-ALIST))
+ (truename-cache--analyze-1 "" args true-dir)))))))
(defun truename-cache--analyze-1 (rel-dir args true-dir)
"Subroutine of `truename-cache--analyze'.