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'.

Reply via email to