aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/io/natFileWin32.cc
diff options
context:
space:
mode:
authorRanjit Mathew <rmathew@hotmail.com>2003-03-01 23:38:13 +0000
committerTom Tromey <tromey@gcc.gnu.org>2003-03-01 23:38:13 +0000
commit5bedfc9356014b29aa696f63421d3a3b000fc57c (patch)
tree4cd6d3bffb8812360e139400a1ec89459ba0a0d9 /libjava/java/io/natFileWin32.cc
parent73058ef68c40c5c9f129d79e3eccc19543412d55 (diff)
downloadgcc-5bedfc9356014b29aa696f63421d3a3b000fc57c.zip
gcc-5bedfc9356014b29aa696f63421d3a3b000fc57c.tar.gz
gcc-5bedfc9356014b29aa696f63421d3a3b000fc57c.tar.bz2
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
Diffstat (limited to 'libjava/java/io/natFileWin32.cc')
-rw-r--r--libjava/java/io/natFileWin32.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/libjava/java/io/natFileWin32.cc b/libjava/java/io/natFileWin32.cc
index 5245feb5..9029881 100644
--- a/libjava/java/io/natFileWin32.cc
+++ b/libjava/java/io/natFileWin32.cc
@@ -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