On Mar 11, 2010, at 3:00 AM, Alan Ruttenberg wrote:
CL-USER(1): (PATHNAME-DIRECTORY #P"jar:file:/Users/alanr/Desktop/lsw.jar!/lsw/jss/invoke.abcl") -> (:RELATIVE "lsw" "jss")
I think that's wrong. Should be :absolute, right?
:RELATIVE is the desired behavior because "!/" is actually a terminal symbol that separates the URL from the ENTRY, i.e.
JAR-PATHNAME ::= "jar:" URL "!/" ENTRY
If you look at the contents of a jar file via java.util.ZipFile.entries(), all the hierarchal entries do not have an initial slash, so are best expressed as relative pathnames. Or at least that was true in my testing. Although I didn't look a specification of Zip file structure to confirm this but rather observed how the JVM tools on various platforms behaved, so perhaps this is an incorrect assumption.
Do you have an example of a JAR where this isn't the case? If so, please give details so we can somehow figure out how to accommodate this behavior.
-- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now."