On Tue, May 11, 2010 at 10:52 AM, Mark Evenson
<evenson@panix.com> wrote:
On May 11, 2010, at 4:37 AM, Alan Ruttenberg wrote:
> CL-USER> (DIRECTORY
> "jar:file:/Users/alanr/Desktop/jar2go.jar!/abcl-module-*.lisp")
> Calling (DIRECTORY
> "jar:file:/Users/alanr/Desktop/jar2go.jar!/abcl-module-*.lisp")
> DIRECTORY returned #<FILE-ERROR {E2C42F}>
This turned out to be a problem with WILD-PATHNAME-P not detecting wildcards in components which were string (i.e. (WILD-PATHNAME-P "foo*bar") was returning nil), which I have fixed in [r12667][1] for "*" occuring in DIRECTORY, NAME, and TYPE string components. The rules for HOST and DEVICE would be a little more complicated, which I don't have time at the moment.
[1]: http://trac.common-lisp.net/armedbear/changeset/12667
> Below is the function I use for directory in jars. Please consider
> including it until there is a correct implementation in java.
[…]
This is identical to the algorithm implemented in
Pathname.java:match-wild-jar-pathname (I think I aped your
implementation into Java). I had coded a further check that the argument was
indeed a wild pathname, which was failing due to a faulty WILD-PATHNAME-P
implementation.
Verified to work for me. Thanks.
-Alan
--
"A screaming comes across the sky. It has happened before, but there is nothing to compare to it now."