On 2/15/11 10:37 PM, Theam Yong Chew wrote:
Dear ABCL developers,
While ABCL can handle spaces (& others) in file pathnames just fine, a space in jar file pathnames still doesn't work. I have confirmed this on Linux, Mac and Windows. An example using Cygwin,
[…]
When a Pathname starts using URI scheme identifiers like 'jar', the strings are then required to obey URI encoding rules. So try replacing #\Space characters with the string "%20".
#<THREAD "interpreter" {9AC0F5}>: Debugger invoked on condition of
type FILE-ERROR Failed to create URI from 'e:/My Dropbox/temp/a space/hello.jar': Illegal character in opaque part at index 10: file:e:/My Dropbox/temp/a space/hello.jar Restarts: 0: TOP-LEVEL Return to top level.
[…]
Try with the URI escaped version, i.e. "jar:file:e/My%20Dropbox/temp/a%20spac/hello.jar!/hello.abcl", instead.
A quick glance through the [ABCL JAR-PATHNAME specification][1] shows that it doesn't explicity mention this design. Implicitly, since a JAR-PATHNAME is a URI-PATHNAME it has to obey the [URI-PATHNAME rules][2], but we could certainly make things clearer.
[1]: http://trac.common-lisp.net/armedbear/browser/trunk/abcl/doc/design/pathname...
[2]: http://trac.common-lisp.net/armedbear/browser/trunk/abcl/doc/design/pathname...
We tried to make the Lisp reader friendly is this regard by DWIMing a String inputs into Pathname, but if you find an unambiguous case that could be improved to be friendly, we would solicit a specification or patches.
Enjoy the bear!