+2010-04-17 Raja R Harinath <harinath@hurrynot.org>
+
+ Keep "ftp://a.b/%2fcd" urls unmolested
+ * Uri.cs (CompactEscaped): New. Check if scheme allows escaped
+ path characters are compacted (list of schemes obtained from MSDN).
+ (Reduce): Add argument that is set if escaped characters need to
+ be compacted.
+
+2010-03-20 Miguel de Icaza <miguel@novell.com>
+
+ * Uri.cs: Drop pre-2.0 support
+
+2010-03-19 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Uri.cs: Remove some MOONLIGHT defines
+
+2010-03-16 Jb Evain <jbevain@novell.com>
+
+ * Uri.cs, UriTypeConverter.cs: use MOONLIGHT symbol to
+ disambiguate MonoTouch and Moonlight code.
+
+2010-01-27 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * Uri.cs: In IsWellFormedOriginalString(), call to our internal
+ EscapeString() method since we need to tell it to *not* escape '#'
+ (hex). Fixes #549135.
+
+2009-11-30 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Uri.cs: Hide protected EscapeString and Unescape for SL2/3
+ * UriTypeConverter.cs: Seal type for SL2/3
+
+2009-11-26 Stephane Delcroix <stephane@delcroix.org>
+
+ * Uri.cs (ParseNoExceptions): don't try to find a scheme if the uri is a
+ UnixFileName or WindowsUNC.
+
+2009-11-02 Miguel de Icaza <miguel@novell.com>
+
+ * UriFormatException.cs: .NET 4.0 API
+
+2009-10-15 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Uri.cs : do not reject relative short name URI when uriKind is
+ RelativeOrAbsolute.
+
+2009-09-01 Raja R Harinath <harinath@hurrynot.org>
+
+ Fix #533572
+ * Uri.cs (ParseNoExceptions): Don't look for '@' in absolute unix paths.
+
+2009-05-16 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Uri.cs (NET_2_1): Remove some extra code for NET_2_1
+
+2009-04-23 Sebastien Pouliot <sebastien@ximian.com>
+
+ * UriParser.cs: Don't use compiled regex on NET_2_1 (feature is
+ not available)
+
+2009-04-21 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DefaultUriParser.cs: Add special case for schema
+ * Uri.cs: Make sure we can use a default parser if none was
+ registred for the URI schema.
+ * UriParser.cs: Handle "*" as a special schema for "anything"
+ [Fix bug #496783]
+
+2009-04-21 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Uri.cs: Fix some issues found with Moonlight (see new unit
+ tests)
+
+2009-04-14 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Uri.cs: Fix processing of %2f and %5c in paths. Avoid a few
+ computation where the result is not used (overwritten)
+
+2009-03-16 Raja R Harinath <harinath@hurrynot.org>
+
+ Reduce dependence of UriParser on Uri
+ * UriParser.cs (GetComponents): Don't refer to fields of Uri to
+ extract components. Use a pair of regexes instead on
+ Uri.OriginalString.
+ * Uri.cs (OriginalString): Make available as an internal property
+ in the NET_1_1 profile.
+
+2009-03-10 Jackson Harper <jackson@ximian.com>
+
+ * Uri.cs: 2.1 Uris do get a UriTypeConverter.
+
+2009-02-18 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Uri.cs : file URI for Windows path should also try '\' instead of
+ '/' as a host/path separator.
+
+2009-02-09 Raja R Harinath <harinath@hurrynot.org>
+
+ * IUriData.cs, UriData.cs: New. Initial cut at UriParser protocol.
+
+ Make UriParser available in the NET_1_1 build
+ * UriParser.cs: Make visible as internal class in the NET_1_1 build.
+ * UriComponents.cs, UriFormats.cs, DefaultUriParser.cs: Likewise.
+ * GenericUriParser.cs, GenericUriParserOptions.cs: Likewise.
+
+2009-02-08 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * Uri.cs: Moved UriKind check from TryCreate to exception-less .ctor,
+ and check accessibility of this .ctor from internal to private.
+
+2009-01-28 Bill Holmes <billholmes54@gmail.com>
+
+ * Uri.cs (IsWellFormedUriString): Changing IsWellFormedUriString
+ to not throw an exception but return false instead.
+
+ Contributed under MIT/X11 license.
+
+2009-15-01 Leeszek Ciesielski <skolima@gmail.com>
+
+ * Uri.cs: Use registered UriParser when a custom schema is passed
+ Fixes 464235, but is a bit of a hack
+
+2009-01-13 Stephane Delcroix <sdelcroix@novell.com>
+
+ * Uri.cs: Fix the previous patch for 1.0 profile
+
+2009-01-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * Uri.cs: avoid throwing exceptions when checking for the host name
+ type.
+
+2009-01-07 Sebastien Pouliot <sebastien@ximian.com>
+
+ * UriTypeConverter.cs: Customize for NET_2_1 since this type is
+ not part of System.Windows.dll anymore
+
+2008-12-20 Miguel de Icaza <miguel@novell.com>
+
+ * GenericUriParserOptions.cs: Idn and IriParsing are now part of
+ .NET
+
+2008-09-16 Miguel de Icaza <miguel@novell.com>
+
+ * Uri.cs (TryCreate): Implement one of the TryCreate methods
+ without throwing exceptions. Still two more to go, the hardest
+ ones.
+
+ Part of a fix for #424192.
+
+2008-09-08 Miguel de Icaza <miguel@novell.com>
+
+ * Uri.cs (MaybeUri): A helper routine for methods in other classes
+ to quickly determine if something might be a Uri, before calling
+ the more expensive Uri.TryCreate (see bug 424192).
+
+2008-08-08 Sebastien Pouliot <sebastien@ximian.com>
+
+ * UriTypeConverter.cs: Fix cp typo found when cp (of course ;-)
+ code into Silverlight's System.Windows.dll
+
+2008-08-07 Sebastien Pouliot <sebastien@ximian.com>
+
+ * GenericUriParserOptions.cs: Add new values for SL2 (NET_2_1)
+ * UriFormatException.cs: Add ctor(string,Exception) for SL2 (NET_2_1)
+ * UriIdnScope.cs: Fix values
+
+2008-08-06 Miguel de Icaza <miguel@novell.com>
+
+ * Uri.cs: Use exception-less operations.
+
+2008-07-31 Jb Evain <jbevain@novell.com>
+
+ * Uri.cs: cleanup for NET_2_1.
+
+2008-05-29 Marek Habersack <mhabersack@novell.com>
+
+ * UriParser.cs: use the lock in CreateDefaults in the way that it
+ needs to acquired only once.
+
+2008-03-10 Stephane Delcroix <sdelcroix@novell.com>
+
+ * Uri.cs: Fix escaping on utf8 strings. bug 363320.
+
+2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Uri.cs : UriParser field blocks serialization.
+
+2008-01-23 Robert Jordan <robertj@gmx.net>
+
+ * Uri.cs (Parse): Handle uriString.Length == 1 as a valid relative URI.
+ Fixes #346432.
+
+2007-12-04 Arina Itkes <arinai@mainsoft.com>
+
+ * Uri.cs: Unix absolute path should not be valid on Windows.
+
+2007-11-13 Zoltan Varga <vargaz@gmail.com>
+
+ * UriIdnScope.cs: Compile this in the 2.0 profile as well as this is a NET 3.5 type.
+
+2007-11-06 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Uri.cs: Revert monodoc hack from r53093 since bug #319550 (old
+ #76725) has been fixed (around 2006-05-21).
+
+2007-11-06 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * UriBuilder.cs: Fixed regression introduced by patch for bug
+ #323247: always initialize UriBuilder.Query to zero-length string.
+ On 2.0 profile, do not initialize query to zero-length string when
+ Fragment is set. Remove extra tabs.
+
+2007-11-04 Jensen Somers <jensen.somers@gmail.com>
+
+ * UriBuilder.cs (ToString): Added Fragment property to the
+ return string.
+
+ (Fragment, Query): Properties are no longer set to an empty
+ string from version 2.0 and up.
+
+2007-11-02 Miguel de Icaza <miguel@novell.com>
+
+ * Uri.cs (AppendQueryAndFragment): Unescape the query with
+ excludeSpecial = false. See bug #320614.
+
+ Unlike the patch on that bug, this only unescapes the query and
+ not the Path. This keeps our existing tests working.
+
+2007-09-29 Miguel de Icaza <miguel@novell.com>
+
+ * Uri.cs (ToString, MakeRelativeUri): refactor some code in
+ ToString to be reusable (to append the query string and the
+ fragment) by MakeRelativeUrl.
+
+ This fixes the MakeRelativeUrl stuff, but the tests can not be
+ used just yet because we fail with stuff like:
+
+ new Uri ("", UriKind.Relative)
+
+ (Parse): when parsing absolute filenames, check if the
+ UriKind is Relative, and if so, make the isAbsoluteUri false, to
+ ensure that the upper layers do not abort with relative Uris that
+ happen to be "/foo" for example.
+
+ Take an UriKind property to allow for proper checking and parsing
+ depending on the context requested by the caller.
+
+ Allows empty strings to be relative Uris as well.
+
+ Do checking when we have schema:// that the parsing is not for a
+ UriKind.Relative, otherwise throw an exception.
+
+ (Authority, HostNameType, IsDefaultPort, IsFile, IsLoopback,
+ PathAndQuery, DnsSafeHost): They all require absolute uris.
+
+ * UriKind.cs: make internal for 1.0
+
+2007-09-05 Marek Habersack <mhabersack@novell.com>
+
+ * UriTypeConverter.cs: conversion from string should be possible
+ for both relative and absolute URIs.
+ Conversion to a string or an InstanceDescriptor must not assume
+ that the uri is absolute.
+ ConvertTo must pass the uri kind to the constructor used in
+ InstanceDescriptor.
+
+2007-08-01 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Uri.cs, UriParser.cs : implemented InitializeAndValidate() and
+ IsWellFormedOriginalString().
+ IsWellFormedUriString() is already implemented.
+
+2007-07-06 Alan McGovern <amcgovern@novell.com>
+
+ * Uri.cs : The URI string should be whitespace trimmed before
+ parsing. The original string is untouched. Fixes #81960.
+
+2007-07-06 Atsushi Enomoto <atsushi@ximian.com>
+
+ * UriIdnScope.cs : new file (for net_2_1 profile).
+
+2007-06-30 Miguel de Icaza <miguel@novell.com>
+
+ * Uri.cs (GetLeftPart): If the URI is relative this method throws
+ InvalidOperationException.
+
+ (ToString): do not use GetLeftPart here, instead escape the path.
+
+ (Parse): For relative uris, keep the string as the path.
+
+2007-06-30 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * Uri.cs: Canonicalize is only obsolete from 2.0 onward. Fixed line
+ endings.
+
+2007-04-18 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * Uri.cs: added MonoNotSupported attributes.
+
+2007-04-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Uri.cs : in Uri(baseUri,relativeUri,noEscape), relativeUri could
+ contain a URI scheme. In such cases the relativeUri could be still
+ relative (i.e. not always equivalent to absolute). Fixed bug #81382.
+
+2007-03-05 Peter Dettman <peter.dettman@iinet.net.au>
+
+ * Uri.cs: This patch straightens out Equals/GetHashCode for the
+ Uri class:
+
+ - GetHashCode gives sensible values for relative Uri's.
+ - Uri's that compare equal will give same hashcode.
+ - operator == now uses Equals.
+
+ All existing tests still pass, and I have added some extra test
+ cases specifically for Equals/GetHashCode on relative Uri's
+ (included in patch).
+
+2007-01-22 Miguel de Icaza <miguel@novell.com>
+
+ * Uri.cs (MakeRelativeUri): implement, copy most of the code from
+ MakeRelative.
+
+ (EscapeUriString, EscapeDataString): Implement stuff
+ needed by apps in Moma.
+
+2006-12-07 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * Uri.cs: implemented UnescapeDataString method
+
+2006-09-28 Andrew Skiba <andrews@mainsoft.com>
+
+ * UriParser.cs: TARGET_JVM
+ * UriFormatException.cs: MonoTODO
+
+2006-08-01 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Uri.cs : don't compare UserInfo in Equals() and op_Equality().
+ Fixed a bug commented in #78799.
+
+2006-07-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * Uri.cs: update Obsolete msg.
+
+2006-06-05 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Uri.cs : revert the previous change as it caused UriTest.
+ Constructors(#rel2a). ToString() for SourceString should be
+ enough for lame users.
+
+2006-05-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Uri.cs : sometimes OriginalString was null. Fixed bug #78374.
+ Actually this property is LAMESPEC. Never use it.
+
+2006-04-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Uri.cs : Patch by pawel.sakowski@mind-breeze.com (bug #77382).
+ Reduce object allocation and avoid culture-sensitive comparison.
+
+2006-03-11 Miguel de Icaza <miguel@novell.com>
+
+ * Uri.cs: Pragma disable warning 612 (Obsolete methods are being
+ used by us internally).
+
+ Ponder: should we instead move our methods to use new versions of
+ the Obsoleted ones?
+
+2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Uri.cs : seems like Uri opreator == and != are case sensitive.
+
+2006-02-19 Raja R Harinath <harinath@gmail.com>
+
+ * Uri.cs (InternalEquals): New helper.
+ (Equals, operator ==): Use it.
+ (operator !=): Likewise. Fix to actually compare operands.
+
+2006-02-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Uri.cs : implemented op_Equality and op_Inequality.
+
+2006-02-14 Ankit Jain <jankit@novell.com>
+
+ * Uri.cs (Uri.EnsureAbsoluteUri): New. Throws exception if its not an
+ absolute uri.
+ (Uri.Parse): Set isAbsoluteUri to false, if the address is not absolute.
+ All properties other than OriginalString, IsAbsoluteUri & UserEscaped
+ throw exception for relative address.
+
+2005-11-25 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DefaultUriParser.cs: Added an internal default parser because (a)
+ UriParser is abstract and (b) MS doesn't always use the new parser
+ classes :(
+ * Uri.cs: Implemented Compare method. Added some FIXME.
+ * UriParser.cs: Implemented GetComponents and IsBaseOf methods.
+ Changed parsers to point to the new DefaultUriParser.
+
+2005-11-15 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Uri.cs: Temporary fix for monodoc (which current Uri system won't
+ work under 2.0).
+
+2005-11-15 Sebastien Pouliot <sebastien@ximian.com>
+
+ * FileStyleUriParser.cs: New. 2.0 Uri parser class.
+ * FtpStyleUriParser.cs: New. 2.0 Uri parser class.
+ * GenericUriParser.cs: New. 2.0 Uri parser class.
+ * GopherStyleUriParser.cs: New. 2.0 Uri parser class.
+ * HttpStyleUriParser.cs: New. 2.0 Uri parser class.
+ * LdapStyleUriParser.cs: New. 2.0 Uri parser class.
+ * NetPipeStyleUriParser.cs: New. 2.0 Uri parser class.
+ * NetTcpStyleUriParser.cs: New. 2.0 Uri parser class.
+ * NewsStyleUriParser.cs: New. 2.0 Uri parser class.
+ * Uri.cs: Lots of small fixes for both 1.x and 2.0. Some *big* bugs
+ in 1.x (fixed in 2.0) aren't fixed for Mono (and probably never will).
+ This class still needs to be refactored to be usable with the new
+ parsers.
+ * UriParser.cs: New. 2.0 Uri parser base class.
+
+2005-11-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Uri.cs : Unescape(string,bool) should also handle % and ?.
+ In ToString(), unescape query part as well. Fixed bug #76643.
+
+2005-10-21 Atsushi Enomoto <atsushi@ximian.com>
+
+ * UriBuilder.cs : ToString() should not add duplicate '/' before path.
+ Fixed bug #76501. Patch by Hubert Fongarnand + modified a bit.
+
+2005-10-18 Sebastien Pouliot <sebastien@ximian.com>
+
+ * UriTypeConverter.cs: New. Implemented (2.0).
+
+2005-10-17 Sebastien Pouliot <sebastien@ximian.com>
+
+ * GenericUriParserOptions.cs: New. 2.0 enum.
+ * UriBuilder.cs: Port == -1 is valid (default) in 2.0. Default name
+ is "localhhost" (not loopback) in 2.0. Fixed case where the Password
+ property could be null (instead of String.Empty).
+ * UriComponents.cs: New. 2.0 enum.
+ * UriFormat.cs: New. 2.0 enum.
+ * UriFormatException.cs: Added comments about GetObjectData.
+ * UriKind.cs: New. 2.0 enum.
+ * UriPartial.cs: Added Query value for 2.0.
+
+2005-08-16 Daniel Drake <dsd@gentoo.org>
+
+ * Uri.cs: Various parsing fixes from bug #75144.
+
+2005-07-09 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * Uri.cs: Modified fix for bug #71053 to match both MS.NET 1.x and
+ 2.0 behaviour. Parse method is no longer used on MS.NET 2.0, marked
+ obsolete.
+
+2005-07-09 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * Uri.cs: in .NET 2.0, port number should be valid UInt16 instead of
+ UInt32. If outcome of parsing is -1, do not consider this to be the
+ default port.
+
+2005-07-08 Daniel Drake <dsd@gentoo.org>
+
+ * Uri.cs: Allow descent multiple times below root. Fixes bug #71053.
+
+2005-07-02 Daniel Drake <dsd@gentoo.org>
+
+ * Uri.cs: HexUnescape() should only work on single-byte escape
+ sequences, ala HexEscape(). However, we still want to handle multi-byte
+ sequences internally, so introduce a more correct implementation of
+ multi-byte unescaping, HexUnescapeMultiByte(). Fixes bug #74872.
+
+2005-06-11 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * Uri.cs: Domain address might have trailing period to indicate
+ that the domain name is fully qualified. Fixes bug #75230.
+
+2005-06-02 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * Uri.cs: throw UriFormatException if URI starts with colon.
+ Fixed bug #75124.
+
+2005-05-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * Uri.cs:
+ (EscapeString): no need to turn the string into a char[] when calling
+ GetBytes.
+
2005-03-20 Joshua Tauberer <tauberer@for.net>
* Uri.cs: Some pedantic changes to the text of a few exceptions.
fixes bug #51510. ftp uses port 21, https uses 443 and
parse the host name properly for UNC path.
-2003-10-10 Pedro Martínez Juliá <yoros@wanadoo.es>
+2003-10-10 Pedro Martínez Juliá <yoros@wanadoo.es>
* Uri.cs: fixed a problem with some URIs like file://some_file.txt
It used to return "/some_file.txt/" instead of "some_file.txt" in