2011-07-26  Jeffrey Stedfast  <jeff@xamarin.com>

	Don't invoke libc uname() on non-Unix systems

2011-07-06  Jeffrey Stedfast  <jeff@xamarin.com>

	Reverted previous commit, struct sizes vary way too much between
	platforms

2011-07-06  Jeffrey Stedfast  <jeff@xamarin.com>

	Use a struct utsname when calling uname() instead of an 8K buffer

2011-07-06  Jeffrey Stedfast  <jeff@xamarin.com>

	Make internal Platform class static

2011-07-05  Jeffrey Stedfast  <jeff@xamarin.com>

	Implemented a shared way to detect MacOSX for System.dll

2011-01-25  Geoff Norton  <grompf@sublimeintervention.com>

	Further .NET 4.0 ification of the mobile profile

2010-11-18  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Add support for 'safe' unescaping rules *
	System/UriParser.cs: Add support for SafeUnescaped in Format.
	Avoid escaping the # when adding a fragment at the end of the Uri

2010-10-15  Marek Safar  <marek.safar@gmail.com>

	Clean up few more warnings

2010-09-27  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Avoid the culture-specific String.EndsWith when
	reducing an URI

2010-09-25  Miguel de Icaza  <miguel@gnome.org>

	Improve the Uri parsing speed

	This affects MonoTouch startup as our dictionaries are a little
	bit slow to be created now that we use Dictionary<> hashes for
	switch statements.

	Some timings:

	Using a simple block of if's is twice as slow as the compiler
	generated switch statement. But using this tuned code is faster
	than the compiler generated code, with a million loops on x86-64:

	With "http": .10 vs .51 (first check) with "https": .16 vs .51
	(second check) with "foo": .22 vs .31 (never found) with "mailto":
	.12 vs .51 (last check)

2010-09-24  Andreia Gaita  <shana@jitted.com>

	Fix UriParser.GetComponents for the PathAndQuery case

	PathAndQuery should always return the path starting with /, even
	when it's empty

2010-09-22  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Fix escaping non-ascii host names. Avoid memory
	allocations (UTF8.GetBytes) when it is not necessary while
	escaping.

2010-09-21  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Update some NET_4_0 to include MOONLIGHT too

2010-09-21  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: A bit more strict when parsing the port number

2010-09-21  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Fix host name checks. Delay port check until the
	host name is checked (compatibility). Fix exception messages to
	match the expected values from the NCL tests.

2010-09-20  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Unescape LocalPath

2010-09-20  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Compute the expected OriginalString when an
	absolute URI is merged with a (String or Uri) relative Uri to
	create a new Uri instance. Keep original fragment around for
	ToString

2010-09-20  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Exception message does not specify Authority when
	a file:// URI is parsed

2010-09-20  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: An empty username/password is treated differently
	than having none, i.e. the '@' character is kept present in the
	URI

2010-09-20  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: IsUnc returns true for file:/// URI on Windows
	only. This makes us closer to Mac-behavior (see NCL tests) since
	the other properties, e.g. LocalPath, match this. Also fix some
	exception text where the values are checked by some test cases.

2010-09-20  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Fix merging URI where a relative URI contains a
	':' but no valid scheme

2010-09-17  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: While parsing only escape the path for absolute
	URI. Do not unescape relative URI in ToString and avoid calling
	AppendQueryAndFragment on them (relative) since both are not
	parsed as such.

2010-09-17  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Fix DnsSafeHost for IPv6 addresses, removing the
	[] brackets and adding, when available, the scope id

2010-09-17  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Fix parsing the port/host when a ':' is present
	without a port number on non-file:// URI

2010-09-17  Sebastien Pouliot  <sebastien@ximian.com>

	* System/UriBuilder.cs: Fix typo from previous change

2010-09-17  Sebastien Pouliot  <sebastien@ximian.com>

	* System/UriBuilder.cs: Refactor constructors to share
	Initialization methods. Allow a second chance to .ctor(string) to
	parse an URI by assuming it's an HTTP URI

2010-09-17  Sebastien Pouliot  <sebastien@ximian.com>

	* System/UriBuilder.cs: Fix Host property to add the missing
	brackets on IPv6 address (if missing from input)

2010-09-17  Sebastien Pouliot  <sebastien@ximian.com>

	* System/UriBuilder.cs: Update UriBuilder.Path once the Uri has
	been created using Uri.AbsolutePath

2010-09-16  Sebastien Pouliot  <sebastien@ximian.com>

	* System/UriBuilder.cs: Update UriBuilder.Host once the Uri has
	been created

2010-09-16  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Add EscapeCommonHexBracketsQuery constant since ?
	also needs to be escaped from UriBuilder * System/UriBuilder.cs:
	Fix Equals (escaping '?') and UserInfo. Fix NRE in ctor that was
	fixed in FX4. Drop NET_2_0 defines.

2010-09-16  Sebastien Pouliot  <sebastien@ximian.com>

	* System/UriBuilder.cs: Fix line endings

2010-09-16  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs (Reduce): Process %2E while reducing a path.
	Avoid, when possible, the creation of StringBuilder and replace
	ArrayList with generics

2010-09-16  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Fix TryCreate overloads wrt NotWorking unit tests

2010-09-16  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Fix 'file' URI since they can't have a query

2010-09-15  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Fix 'ftp' support, mostly same fixes as 'nntp'

2010-09-15  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Fix 'nntp' support which is close to 'news' (no
	query) but still has an Host, Autority, Port...

2010-09-15  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Remove condition/code wrt 'news:' that occurs
	after the new "shortcut".

2010-09-15  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Make it easier to reuse EscapeString without
	adding new boolean parameters. Shortcut parsing for 'news' since
	it's simpler (no query, host, authority...) Avoid creating
	StringBuilder instance when [un]escape-ing empty strings *
	System/UriBuilder.cs: Adjust for EscapeString API change *
	System/UriParser.cs: Fix default news port and adjust for
	EscapeString API change

2010-09-15  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Keep the cached 'segments' as a List<string> and
	return a new array (ToArray) when the Segment propery is called.

2010-09-15  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Fix ToString (Unescape) to ignore '\\' and let it
	be outputed as %5C * Test/System/UriTest2.cs: Add test case for
	above

2010-09-15  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Reimplement Segment property to reduce copying
	and string allocations. Fix case with slashes (separate, not
	single, segments)

2010-09-14  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Handle multiple starting slash correctly *
	Test/System/UriTest2.cs: Add test cases with multiple slashes

2010-09-14  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Fix Segments and username/password (unsupported)
	on file:// URI * Test/System/UriTest.cs: Remove
	[Category("NotWorking")] from some tests and add a few additional
	(helpful) asserts.

2010-09-14  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: For most scheme a drive letter is converted into
	an host name (minus the ':' character)

2010-09-14  Atsushi Eno  <atsushi@ximian.com>

	Remove Console.WriteLine.

2010-09-13  Sebastien Pouliot  <sebastien@ximian.com>

	* System/Uri.cs: Fix some "bugs" that are not part of FX4 anymore.
	Change how Query/Fragment are merged to match FX4 (while keeping
	it compatible with buggy FX2 under the NET_2_0 profile)

2010-08-31  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	Trim the uri in UriParser::GetComponents, just like we do in
	Uri::Parse

2010-08-31  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	Uri: fix path component of merged uris with parent directory
	references above the root directory

2010-06-28  Alan McGovern  <amcgovern@novell.com>

	* UriTypeConverter.cs: Fix some regressed tests and add a new test
	for when ConvertFrom is called with String.Empty.

2010-06-28  Alan McGovern  <amcgovern@novell.com>

	* UriTypeConverter.cs: Converting String.Empty should return null
	instead of a Uri instance. Null values and unconvertable values
	need to throw NotSupportedExceptions for moonlight too.

2010-06-22 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* Uri.cs: change of behavior un 4.0.
	Fixes bug #602411.

2010-06-18 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* Uri.cs: fix serialization for relative URIs. Patch from Greg
	Smolyn. Fixes bug #615320.

2010-05-29 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* Uri.cs: Leave consecutive slashes in 'path' alone.
	Fix for bug #606142. Backport once tested.

2010-05-24  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : do not reject relative URIs that contain ':' and
	  any non-scheme characters preceding it.

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.

2005-03-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Uri.cs: when unescaping in stages, handle the case when the next
	substring is not a escaped sequence or the string ends. Fixes bug
	#73316.

2005-01-20  Miguel de Icaza  <miguel@ximian.com>

	* Uri.cs: Set the UriSchemNews port default to 119 as well.
	Fixes bug #71050.

	When dealing with fragments use the `dontEscape' flag passed to
	the Uri constructor to decide whether the fragment must or must
	not be escaped, fixes 71051.

2004-06-22  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : Such ctor arg string that starts with "//" should be 
	  regarded as a local file path that will be condensed to single "/",
	  so handle such path differently under Windows and under *nix.
	  Since '\\' is a valid path character on Unix, so we should not
	  replace it with '/' in LocalPath.

2004-06-17  Jackson Harper  <jackson@ximian.com>

	* Uri.cs: Use invariant culture.
	
2004-06-16  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : Fixed LocalPath. In that condition, path is always UNC.

2004-06-16  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : Reimplemented HexUnescape() (It was too broken to handle
	  multi-byte utf-8 characters.)

2004-06-11  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs :
	  - We don't have to mind '\\'.
	  - Fixed bug #58301. When path starts with "///" and not more than
	    "////" and not "///*:", handle it as unix path and set Host as
	    empty string. In absolute path case, port should not be parsed
	    and LocalPath should start with '/'.
	  - Handle fragment in prior to path. 

2004-06-11  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : Handle Windows UNC. Now we could simplify Parse(). Don't
	  escape windows path twice. Check scheme name as defined in RFC2396.

2004-06-11  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : Reverted some changes. '#' should be handled when the input
	  string is NOT raw file path. So handle raw file paths differently.
	  (right now except for Windows UNC).
	  Cache LocalPath and don't compute every time.

2004-06-10  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : Don't escape '#' in file URI paths. This fixes bug #47691.
	  Some code simplification.

2004-06-09  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : 
	  - Now Parse() is properly implemented. If overriden, the overriding
	    Parse() is used _instead of_ this class's parsing logic.
	  - AbsoluteUri does not escape URI string at all.
	  - ToString() should unescape Query. But should not unescape fragment.
	    And all all parts should be unescaped individually to keep ? and #.
	  - In relative .ctor(), handle Windows UNC as an absolute file URI.
	  - In some cases, hosts and paths were not properly escaped in
	    relative .ctor().
	  - Removed unused isWindowsPath.
	  - Escape Query.
	* UriBuilder.cs : Fragment and Query aren't escaped when they are set.

2004-05-12  Dick Porter  <dick@ximian.com>

	* Uri.cs: Reduce(string) is not in the public API.

2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* UriBuilder.cs: ignore empty Query. Fixes bug #57082.

2004-03-21  Jackson Harper  <jackson@ximian.com>

	* Uri.cs: Equals should be case insensitive for all parts except
	the path.

2004-02-11  Jackson Harper  <jackson@ximian.com>

	* Uri.cs: If we are sure we have a windows path use \ instead of
	/ for directory separating.
	
2004-02-11  Jackson Harper  <jackson@ximian.com>

	* Uri.cs: If the relative uri passed to Uri (base_uri,
	relative_uri) is an absolute uri do not combine the uris. The base
	uri is dropped.
	
2004-02-10  Jackson Harper  <jackson@ximian.com>

	* Uri.cs: Preserve the trailing / if there is one when reducing
	paths.
	
2004-02-08  Jackson Harper  <jackson@ximian.com>

	* Uri.cs: IsLoopback has different behavoir then
	IPAddress::IsLoopback. It will only return true for ipv4 addresses
	if they are 127.0.0.1, localhost, or loopback. 
	
2004-02-06  Jackson Harper  <jackson@ximian.com>

	* Uri.cs: Do not escape querys or fragements. Only reduce certain
	schemes.
	
2004-02-06  Jackson Harper  <jackson@ximian.com>

	* Uri.cs: Use UTF8 characters when escaping. Reduce paths. This
	method is taken from System.Web.Utils.UrlUtils.
	* UriBuilder.cs: Do not escape fragments or queries, but do a utf8
	switch on them. Do not prepend a "/" to Paths. Do not use
	IPEndPoint to determine if a port is valid, UriBuilder allows
	ports to be any	positive integer, IPEndPoint does not. Use the
	ToString () method for generate a uri in get_Uri. Only set the
	port in ToString () if it is greater then 0.
	
2004-02-05  Jackson Harper  <jackson@ximian.com>

	* UriBuilder.cs: Do not call Uri::ToString for uri builders
	ToString. UriBuilder's ToString is a little more primitive.
	
2004-01-12  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : should not escape already-escaped string (Patch by 
	  Boris Kirzner).  File LocalPath should unespace return value.
	  ToString() should be unescaped only when it is not an UNC path.
	  (UNC looks not to be unescaped).

2004-01-06  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : quick fix on local file relative uri.

2004-01-06  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : Fixed Parse(). Should not allow relative URIs.

2004-01-05  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : fixed IsBadFileSystemCharacter() to reject more characters
	  based on MS.NET experiment.

2003-12-08  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : more fixes. More presice UNC handling, opaque part 
	  handling for non-standard uri (e.g. urn:go-mono.com), ToString()
	  fix (that returns AbsoluteUri, which is not escaped any more),
	  and so on.

2003-12-08  Atsushi Enomoto  <atsushi@ximian.com>

	* Uri.cs : Several fixes, including Unc problem, Host and LocalPath
	  fixes, null reference check for .ctor(Uri, string). This fixes
	  bug #51844.

2003-12-04  John Luke  <jluke@cfl.rr.com>
	
	* Uri.cs: applied patch from Chris Masters <neeeeeep@bigpond.com>
	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>

	* 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
	LocalPath. Fix handling of full path files and SMB addresses.

2003-08-12  Duncan Mak  <duncan@ximian.com>

	* Uri.cs (constructor): Properly implement RFC 2396, Par. 5.2,
	part 6a, which says:
	
		In other words, any characters after the last (right-most)
		slash character, if any, are excluded.

        Previously, when merging "a://foo.com/foo" with "bar", we yield
	the result "a://foo.com/foobar", instead of the correct
	"a://foo.com/bar".

	This fixes bug #45614.

2003-07-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* SRDescriptionAttribute.cs: Moved from System.Diagnostics directory

2003-07-18  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* Uri.cs: Added MonoTODO'd members, implemented member, fixed signature

2003-05-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* TempFileCollection.cs: fixed the build under windows.
	
2003-05-07  Ben Maurer <bmaurer@users.sourceforge.net>
	* Uri.cs: Checked in code to fix bug #41998. Some
	code from Ian MacLean.
	
2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Uri.cs: reworked Segment. Small fix in MakeRelative. Throw exception
	in Parse when host length is 0 and the Uri is not a file.

2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Uri.cs:
	(CheckSchemeName): fixed bug #28549. Thanks to Eric Runquist.

2003-02-01  Miguel de Icaza  <miguel@ximian.com>

	* Uri.cs (LocalPath): Local path should return un-escaped
	strings.  Patch from tum@veridicus.com (Thong (Tum) Nguyen)

2002-09-16  Duncan Mak  <duncan@ximian.com>

	* Uri.cs (GetObjectData):
	(Uri): The key should be "AbsoluteUri", not "Uri".

2002-09-16  Miguel de Icaza  <miguel@ximian.com>

	* Uri.cs: Implemented a few of the protected methods. 

Mon Jun 17 15:05:05 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* Uri.cs: workaround for mcs bug.

2002-05-28  Lawrence Pit <loz@cable.a2000.nl>

	* Uri.cs: Implemented ctor UriTest (baseUri, relativeUri)
	* Uri.cs: Fixed bug in internal method GetSchemeDelimiter

2002-05-22  Lawrence Pit <loz@cable.a2000.nl>

	* Uri.cs: implemented MakeRelative, improved GetLeftPart
	* UriBuilder.cs: removed Serializable attribute
	* UriHostNameType.cs: added Basic

2002-05-12  Lawrence Pit <loz@cable.a2000.nl>

	* Uri.LocalPath and Uri.AbsoluteUri modified to support both w32 
	and *nix filepaths

2002-05-09  Lawrence Pit <loz@cable.a2000.nl>

	* Uri.GetLeftPart fixed for mailto and news schemes.

2002-05-05  Lawrence Pit <loz@cable.a2000.nl>

	* UriBuilder.cs: Implemented.
	
	* Uri.cs: Complete new reimplementation. 

2002-02-08  Duncan Mak  <duncan@ximian.com>

	* UriFormatException.cs: Removed TODO attribute, the docs are
	probably wrong here. In any case, this code compiles and should work.

2002-01-31  Duncan Mak  <duncan@ximian.com>

	* UriFormatException.cs: Added bits for serialization.

2002-01-05  Ravi Pratap  <ravi@ximian.com>

	* ChangeLog : Add to this directory.

	* Uri.cs, UriFormatException.cs : Decorate bits with MonoTODO attribute.
