[armedbear-devel] Spaces in pathnames (jar:file:/x/y/z/a space/...)
Mark Evenson
evenson at panix.com
Wed Feb 16 06:46:43 UTC 2011
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/pathnames/jar-pathnames.markdown
[2]:
http://trac.common-lisp.net/armedbear/browser/trunk/abcl/doc/design/pathnames/url-pathnames.markdown
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!
--
"A screaming comes across the sky. It has happened before, but there
is nothing to compare to it now."
More information about the armedbear-devel
mailing list