File (getAbsolutePath): Prefix drive specifier on Windows for paths starting with a '\'.

2003-03-01  Ranjit Mathew  <rmathew@hotmail.com>

	* java/io/File (getAbsolutePath): Prefix drive specifier on
	Windows for paths starting with a '\'.
	(toURL): Make URL more consistent with what Sun's JDK returns.

	* java/io/natFileWin32.cc (java::io::File::isAbsolute): Return
	true only if the path is a UNC network path or it starts with a
	drive specifier.

	* java/net/URLStreamHandler.java (parseURL): Correct minor typo.
	Be prepared to handle either '/' or '\\' in the file path for
	Windows if using the "file" protocol.
	Canonicalise the file path if using a relative path in the given
	context and the "file" protocol.

From-SVN: r63635
This commit is contained in:
Ranjit Mathew 2003-03-01 23:38:13 +00:00 committed by Tom Tromey
parent 73058ef68c
commit 5bedfc9356
4 changed files with 71 additions and 11 deletions

View file

@ -119,9 +119,14 @@ java::io::File::getCanonicalPath (void)
jboolean
java::io::File::isAbsolute (void)
{
if (path->length() > 0
&& (path->charAt(0) == '/' || path->charAt(0) == '\\'))
// See if the path represents a Windows UNC network path.
if (path->length () > 1
&& (path->charAt (0) == '\\') && (path->charAt (1) == '\\'))
return true;
// Note that the path is not an absolute path even if it starts with
// a '/' or a '\' because it lacks a drive specifier.
if (path->length() < 3)
return false;
// Hard-code A-Za-z because Windows (I think) can't use non-ASCII