Commit 7647ca49 authored by Robert Goldman's avatar Robert Goldman

Add loop check to search for ASD files.

parent 68b332cb
......@@ -79,15 +79,22 @@ after having found a .asd file? True by default.")
(defun collect-sub*directories-asd-files
(directory &key (exclude *default-source-registry-exclusions*) collect
(recurse-beyond-asds *recurse-beyond-asds*) ignore-cache)
(collect-sub*directories
directory
#'(lambda (dir)
(unless (and (not ignore-cache) (process-source-registry-cache directory collect))
(let ((asds (collect-asds-in-directory dir collect)))
(or recurse-beyond-asds (not asds)))))
#'(lambda (x)
(not (member (car (last (pathname-directory x))) exclude :test #'equal)))
(constantly nil)))
(let ((visited (make-hash-table :test 'equalp)))
(collect-sub*directories
directory
#'(lambda (dir)
(unless (and (not ignore-cache) (process-source-registry-cache directory collect))
(let ((asds (collect-asds-in-directory dir collect)))
(or recurse-beyond-asds (not asds)))))
#'(lambda (x) ; x will be a directory pathname
(and
(not (member (car (last (pathname-directory x))) exclude :test #'equal))
(flet ((pathname-key (x)
(namestring (truename* x))))
(let ((visitedp (gethash (pathname-key x) visited)))
(if visitedp nil
(setf (gethash (pathname-key x) visited) t))))))
(constantly nil))))
(defun validate-source-registry-directive (directive)
(or (member directive '(:default-registry))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment