URL.java (getPath): New JDK 1.3 method.

* java/net/URL.java (getPath):  New JDK 1.3 method.

	* java/net/URLStreamHandler.java (parseURL):
	It is wrong to prepend '/' to the file part of a relative url.

	* java/net/URLStreamHandler.java (parseURL):
	Minor optizations - append '/' rather than "/".

	* java/net/URLStreamHandler.java (parseURL):
	Don't canonicalize "xx/.." or "./" URLs - JDK doesn't.
	We probably should canonicalize for a context-relative url, though.
	* java/net/URL.java (sameFile):  Delegate to URLStreamHandler.
	* java/net/URLStreamHandler.java (canonicalizeFilename):  New helper.
	(sameFile):  New method.  Uses canonicalizeFilename.

From-SVN: r49980
This commit is contained in:
Per Bothner 2002-02-22 16:15:49 -08:00 committed by Per Bothner
parent 43710f9f89
commit 9abe2e29b4
3 changed files with 59 additions and 19 deletions

View file

@ -1,6 +1,6 @@
// URL.java - A Uniform Resource Locator.
/* Copyright (C) 1999, 2000 Free Software Foundation
/* Copyright (C) 1999, 2000, 2002 Free Software Foundation
This file is part of libgcj.
@ -219,6 +219,12 @@ public final class URL implements Serializable
return file;
}
public String getPath()
{
int quest = file.indexOf('?');
return quest < 0 ? file : file.substring(0, quest);
}
public String getHost()
{
return host;
@ -274,16 +280,7 @@ public final class URL implements Serializable
public boolean sameFile(URL other)
{
// This comparison is very conservative. It assumes that any
// field can be null.
return (other != null
&& port == other.port
&& ((protocol == null && other.protocol == null)
|| (protocol != null && protocol.equals(other.protocol)))
&& ((host == null && other.host == null)
|| (host != null && host.equals(other.host)))
&& ((file == null && other.file == null)
|| (file != null && file.equals(other.file))));
return handler.sameFile(this, other);
}
protected void set(String protocol, String host, int port, String file,