How about this: > > (defun directory-pathname-p (pathname) > (and (member (pathname-name pathname) (list nil :unspecified)) > (member (pathname-type pathname) (list nil :unspecified)))) > > (defun sysdef-central-registry-search (system) > (let ((name (coerce-name system)) > (to-remove nil)) > (block nil > (unwind-protect > (dolist (dir *central-registry*) > (let ((defaults (eval dir))) > (cond ((directory-pathname-p defaults) > (let ((file (and defaults > (make-pathname > :defaults defaults :version :newest > :name name :type "asd" :case :local)))) > (if (and file (probe-file file)) > (return file)))) > (t > (warn "~@<While searching for system `~s`: `~s` evaluated > to > `~s` which is not a directory. Removing entry from *central- > registry*~@:>" system dir defaults) > (push dir to-remove))))) > ;; cleanup > (dolist (dir to-remove) > (setf *central-registry* (remove dir *central-registry*))))))) >
On Jul 7, 2009, at 7:16 AM, Gary King wrote: > Hi Tobias, > > I think this would be a good thing. > > On Jul 7, 2009, at 6:31 AM, Tobias C. Rittweiler wrote: > >> >> I think it's bitten pretty much all of us that we at least once >> tried to >> push a non-directory-designating filename to *CENTRAL-REGISTRY*. >> >> It's a common pitfalls for newcomers. >> >> Couldn't ASDF signal a warning when it encounters such a thing while >> grovelling through the registry? >> >> -T. >> >> >> _______________________________________________ >> asdf-devel mailing list >> asdf-devel@common-lisp.net >> http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel > > -- > Gary Warren King, metabang.com > Cell: (413) 559 8738 > Fax: (206) 338-4052 > gwkkwg on Skype * garethsan on AIM * gwking on twitter > > > > > -- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter _______________________________________________ asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel