pathname-match-p doesn't handle search lists
Assuming /tmp/
exists, then
(setf (search-list "tmp:") '("/tmp/"))
(pathname-match-p "/tmp/foo.lisp" "tmp:*.lisp")
signals an error that the search-list is the wrong type.
http://www.lispworks.com/documentation/lw61/CLHS/Body/f_pn_mat.htm says pathname-match-p
has implementation-dependent matching, but it should be consistent with directory
.
I think this means that if the search-list has multiple entries, we need to search each entry for a match because directory
returns a list of all files in each entry of a search-list.
This issue affects asdf. If the $HOME/.cache/
directory doesn't exist, then asdf eventually tries to match some file in the cache directory against a path merged against (user-homedir-pathname)
which returns #P"home:"
.