[TransWarp] ZConfig and MS-like file paths
alexander smishlajev
alex at ank-sia.com
Tue Jul 15 10:46:32 EDT 2003
Phillip J. Eby wrote, at 15.07.2003 16:38:
> By the way, the "technically correct" way to specify such a URL is:
>
> file:///e|/src/Test/App/app_config.xml
the whole matter about 'file:' urls on non-posix platforms is rather
complicated. i would like to quote from Fourthought, Inc. folks who did
quite a research on the topic:
=== cut ===
# see the following XML-SIG threads for 'file:' URI resolution discussion
#> http://aspn.activestate.com/ASPN/Mail/Message/xml-sig/614905
#> http://aspn.activestate.com/ASPN/Mail/Message/xml-sig/614913
#> http://mail.python.org/pipermail/xml-sig/2001-February/004572.html
#
# also see how Perl handles them:
# http://www.perldoc.com/perl5.8.0/lib/URI/file.html
#
#============================================================================
#
# These are valid absoluteURIs:
#
# file:/autoexec.bat (scheme ":" abs_path)
# file:///autoexec.bat (scheme ":" net_path)
#
# This one is valid but is not what you'd expect it to be:
#
# file://autoexec.bat (authority = autoexec.bat, no abs_path)
#
# If you have any more than 3 slashes, it's OK because each path segment
# can be an empty string.
#
# This one is valid too, although everything after 'file:' is
# considered an opaque_part:
#
# file:etc/passwd
#
# Unescaped backslashes are NOT allowed in URIs, ever.
# It is not possible to use them as path segment separators.
# Yet... Windows Explorer will accept these:
# file:C:\WINNT\setuplog.txt
# file:/C:\WINNT\setuplog.txt
# file:///C:\WINNT\setuplog.txt
# However, it will also accept "|" in place of the colon after the drive:
# file:C|/WINNT/setuplog.txt
# file:/C|/WINNT/setuplog.txt
# file:///C|/WINNT/setuplog.txt
#
# RFC 1738 says file://localhost/ and file:/// are equivalent;
# localhost in this case is always the local machine, no matter what
# your DNS says.
#
# Basically, any file: URI is valid. Good luck resolving them, though.
=== cut ===
(it seems to me that pipermail archives on python.org were rebuilt
since, and the url in this qoute point to an irrelevant message. i
guess that url should be
http://mail.python.org/pipermail/xml-sig/2001-February/004621.html)
> which is hideous, but will work with or without the fix. Unfortunately,
> to use it on the command line, you may have to escape the '|', leading to:
>
> file:///e\|/src/Test/App/app_config.xml
>
> Only I'm not sure whether you *can* escape the | symbol from a Windows
> command prompt. Sigh.
on the command line, you need to include the whole argument in double
quotes. try:
echo "file:///e|/src/Test/App/app_config.xml"
to step aside from the discussion on what is and what is not a valid
file url, may it be possible to use 'supportedSchemes' to construct the
re pattern for FileURL.fromFilename, and not use generic URLMatch? i
mean, anything that is passed to fromFilename() and does not start with
'file:' scheme should be a local file path. (otherwise why was it
passed to fromFilename?)
best wishes,
alex.
More information about the PEAK
mailing list