1 2008-09-16 Miguel de Icaza <miguel@novell.com>
3 * Uri.cs (TryCreate): Implement one of the TryCreate methods
4 without throwing exceptions. Still two more to go, the hardest
7 Part of a fix for #424192.
9 2008-09-08 Miguel de Icaza <miguel@novell.com>
11 * Uri.cs (MaybeUri): A helper routine for methods in other classes
12 to quickly determine if something might be a Uri, before calling
13 the more expensive Uri.TryCreate (see bug 424192).
15 2008-08-08 Sebastien Pouliot <sebastien@ximian.com>
17 * UriTypeConverter.cs: Fix cp typo found when cp (of course ;-)
18 code into Silverlight's System.Windows.dll
20 2008-08-07 Sebastien Pouliot <sebastien@ximian.com>
22 * GenericUriParserOptions.cs: Add new values for SL2 (NET_2_1)
23 * UriFormatException.cs: Add ctor(string,Exception) for SL2 (NET_2_1)
24 * UriIdnScope.cs: Fix values
26 2008-08-06 Miguel de Icaza <miguel@novell.com>
28 * Uri.cs: Use exception-less operations.
30 2008-07-31 Jb Evain <jbevain@novell.com>
32 * Uri.cs: cleanup for NET_2_1.
34 2008-05-29 Marek Habersack <mhabersack@novell.com>
36 * UriParser.cs: use the lock in CreateDefaults in the way that it
37 needs to acquired only once.
39 2008-03-10 Stephane Delcroix <sdelcroix@novell.com>
41 * Uri.cs: Fix escaping on utf8 strings. bug 363320.
43 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
45 * Uri.cs : UriParser field blocks serialization.
47 2008-01-23 Robert Jordan <robertj@gmx.net>
49 * Uri.cs (Parse): Handle uriString.Length == 1 as a valid relative URI.
52 2007-12-04 Arina Itkes <arinai@mainsoft.com>
54 * Uri.cs: Unix absolute path should not be valid on Windows.
56 2007-11-13 Zoltan Varga <vargaz@gmail.com>
58 * UriIdnScope.cs: Compile this in the 2.0 profile as well as this is a NET 3.5 type.
60 2007-11-06 Sebastien Pouliot <sebastien@ximian.com>
62 * Uri.cs: Revert monodoc hack from r53093 since bug #319550 (old
63 #76725) has been fixed (around 2006-05-21).
65 2007-11-06 Gert Driesen <drieseng@users.sourceforge.net>
67 * UriBuilder.cs: Fixed regression introduced by patch for bug
68 #323247: always initialize UriBuilder.Query to zero-length string.
69 On 2.0 profile, do not initialize query to zero-length string when
70 Fragment is set. Remove extra tabs.
72 2007-11-04 Jensen Somers <jensen.somers@gmail.com>
74 * UriBuilder.cs (ToString): Added Fragment property to the
77 (Fragment, Query): Properties are no longer set to an empty
78 string from version 2.0 and up.
80 2007-11-02 Miguel de Icaza <miguel@novell.com>
82 * Uri.cs (AppendQueryAndFragment): Unescape the query with
83 excludeSpecial = false. See bug #320614.
85 Unlike the patch on that bug, this only unescapes the query and
86 not the Path. This keeps our existing tests working.
88 2007-09-29 Miguel de Icaza <miguel@novell.com>
90 * Uri.cs (ToString, MakeRelativeUri): refactor some code in
91 ToString to be reusable (to append the query string and the
92 fragment) by MakeRelativeUrl.
94 This fixes the MakeRelativeUrl stuff, but the tests can not be
95 used just yet because we fail with stuff like:
97 new Uri ("", UriKind.Relative)
99 (Parse): when parsing absolute filenames, check if the
100 UriKind is Relative, and if so, make the isAbsoluteUri false, to
101 ensure that the upper layers do not abort with relative Uris that
102 happen to be "/foo" for example.
104 Take an UriKind property to allow for proper checking and parsing
105 depending on the context requested by the caller.
107 Allows empty strings to be relative Uris as well.
109 Do checking when we have schema:// that the parsing is not for a
110 UriKind.Relative, otherwise throw an exception.
112 (Authority, HostNameType, IsDefaultPort, IsFile, IsLoopback,
113 PathAndQuery, DnsSafeHost): They all require absolute uris.
115 * UriKind.cs: make internal for 1.0
117 2007-09-05 Marek Habersack <mhabersack@novell.com>
119 * UriTypeConverter.cs: conversion from string should be possible
120 for both relative and absolute URIs.
121 Conversion to a string or an InstanceDescriptor must not assume
122 that the uri is absolute.
123 ConvertTo must pass the uri kind to the constructor used in
126 2007-08-01 Atsushi Enomoto <atsushi@ximian.com>
128 * Uri.cs, UriParser.cs : implemented InitializeAndValidate() and
129 IsWellFormedOriginalString().
130 IsWellFormedUriString() is already implemented.
132 2007-07-06 Alan McGovern <amcgovern@novell.com>
134 * Uri.cs : The URI string should be whitespace trimmed before
135 parsing. The original string is untouched. Fixes #81960.
137 2007-07-06 Atsushi Enomoto <atsushi@ximian.com>
139 * UriIdnScope.cs : new file (for net_2_1 profile).
141 2007-06-30 Miguel de Icaza <miguel@novell.com>
143 * Uri.cs (GetLeftPart): If the URI is relative this method throws
144 InvalidOperationException.
146 (ToString): do not use GetLeftPart here, instead escape the path.
148 (Parse): For relative uris, keep the string as the path.
150 2007-06-30 Gert Driesen <drieseng@users.sourceforge.net>
152 * Uri.cs: Canonicalize is only obsolete from 2.0 onward. Fixed line
155 2007-04-18 Igor Zelmanovich <igorz@mainsoft.com>
157 * Uri.cs: added MonoNotSupported attributes.
159 2007-04-16 Atsushi Enomoto <atsushi@ximian.com>
161 * Uri.cs : in Uri(baseUri,relativeUri,noEscape), relativeUri could
162 contain a URI scheme. In such cases the relativeUri could be still
163 relative (i.e. not always equivalent to absolute). Fixed bug #81382.
165 2007-03-05 Peter Dettman <peter.dettman@iinet.net.au>
167 * Uri.cs: This patch straightens out Equals/GetHashCode for the
170 - GetHashCode gives sensible values for relative Uri's.
171 - Uri's that compare equal will give same hashcode.
172 - operator == now uses Equals.
174 All existing tests still pass, and I have added some extra test
175 cases specifically for Equals/GetHashCode on relative Uri's
178 2007-01-22 Miguel de Icaza <miguel@novell.com>
180 * Uri.cs (MakeRelativeUri): implement, copy most of the code from
183 (EscapeUriString, EscapeDataString): Implement stuff
184 needed by apps in Moma.
186 2006-12-07 Vladimir Krasnov <vladimirk@mainsoft.com>
188 * Uri.cs: implemented UnescapeDataString method
190 2006-09-28 Andrew Skiba <andrews@mainsoft.com>
192 * UriParser.cs: TARGET_JVM
193 * UriFormatException.cs: MonoTODO
195 2006-08-01 Atsushi Enomoto <atsushi@ximian.com>
197 * Uri.cs : don't compare UserInfo in Equals() and op_Equality().
198 Fixed a bug commented in #78799.
200 2006-07-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
202 * Uri.cs: update Obsolete msg.
204 2006-06-05 Atsushi Enomoto <atsushi@ximian.com>
206 * Uri.cs : revert the previous change as it caused UriTest.
207 Constructors(#rel2a). ToString() for SourceString should be
208 enough for lame users.
210 2006-05-13 Atsushi Enomoto <atsushi@ximian.com>
212 * Uri.cs : sometimes OriginalString was null. Fixed bug #78374.
213 Actually this property is LAMESPEC. Never use it.
215 2006-04-28 Atsushi Enomoto <atsushi@ximian.com>
217 * Uri.cs : Patch by pawel.sakowski@mind-breeze.com (bug #77382).
218 Reduce object allocation and avoid culture-sensitive comparison.
220 2006-03-11 Miguel de Icaza <miguel@novell.com>
222 * Uri.cs: Pragma disable warning 612 (Obsolete methods are being
223 used by us internally).
225 Ponder: should we instead move our methods to use new versions of
228 2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
230 * Uri.cs : seems like Uri opreator == and != are case sensitive.
232 2006-02-19 Raja R Harinath <harinath@gmail.com>
234 * Uri.cs (InternalEquals): New helper.
235 (Equals, operator ==): Use it.
236 (operator !=): Likewise. Fix to actually compare operands.
238 2006-02-14 Atsushi Enomoto <atsushi@ximian.com>
240 * Uri.cs : implemented op_Equality and op_Inequality.
242 2006-02-14 Ankit Jain <jankit@novell.com>
244 * Uri.cs (Uri.EnsureAbsoluteUri): New. Throws exception if its not an
246 (Uri.Parse): Set isAbsoluteUri to false, if the address is not absolute.
247 All properties other than OriginalString, IsAbsoluteUri & UserEscaped
248 throw exception for relative address.
250 2005-11-25 Sebastien Pouliot <sebastien@ximian.com>
252 * DefaultUriParser.cs: Added an internal default parser because (a)
253 UriParser is abstract and (b) MS doesn't always use the new parser
255 * Uri.cs: Implemented Compare method. Added some FIXME.
256 * UriParser.cs: Implemented GetComponents and IsBaseOf methods.
257 Changed parsers to point to the new DefaultUriParser.
259 2005-11-15 Sebastien Pouliot <sebastien@ximian.com>
261 * Uri.cs: Temporary fix for monodoc (which current Uri system won't
264 2005-11-15 Sebastien Pouliot <sebastien@ximian.com>
266 * FileStyleUriParser.cs: New. 2.0 Uri parser class.
267 * FtpStyleUriParser.cs: New. 2.0 Uri parser class.
268 * GenericUriParser.cs: New. 2.0 Uri parser class.
269 * GopherStyleUriParser.cs: New. 2.0 Uri parser class.
270 * HttpStyleUriParser.cs: New. 2.0 Uri parser class.
271 * LdapStyleUriParser.cs: New. 2.0 Uri parser class.
272 * NetPipeStyleUriParser.cs: New. 2.0 Uri parser class.
273 * NetTcpStyleUriParser.cs: New. 2.0 Uri parser class.
274 * NewsStyleUriParser.cs: New. 2.0 Uri parser class.
275 * Uri.cs: Lots of small fixes for both 1.x and 2.0. Some *big* bugs
276 in 1.x (fixed in 2.0) aren't fixed for Mono (and probably never will).
277 This class still needs to be refactored to be usable with the new
279 * UriParser.cs: New. 2.0 Uri parser base class.
281 2005-11-14 Atsushi Enomoto <atsushi@ximian.com>
283 * Uri.cs : Unescape(string,bool) should also handle % and ?.
284 In ToString(), unescape query part as well. Fixed bug #76643.
286 2005-10-21 Atsushi Enomoto <atsushi@ximian.com>
288 * UriBuilder.cs : ToString() should not add duplicate '/' before path.
289 Fixed bug #76501. Patch by Hubert Fongarnand + modified a bit.
291 2005-10-18 Sebastien Pouliot <sebastien@ximian.com>
293 * UriTypeConverter.cs: New. Implemented (2.0).
295 2005-10-17 Sebastien Pouliot <sebastien@ximian.com>
297 * GenericUriParserOptions.cs: New. 2.0 enum.
298 * UriBuilder.cs: Port == -1 is valid (default) in 2.0. Default name
299 is "localhhost" (not loopback) in 2.0. Fixed case where the Password
300 property could be null (instead of String.Empty).
301 * UriComponents.cs: New. 2.0 enum.
302 * UriFormat.cs: New. 2.0 enum.
303 * UriFormatException.cs: Added comments about GetObjectData.
304 * UriKind.cs: New. 2.0 enum.
305 * UriPartial.cs: Added Query value for 2.0.
307 2005-08-16 Daniel Drake <dsd@gentoo.org>
309 * Uri.cs: Various parsing fixes from bug #75144.
311 2005-07-09 Gert Driesen <drieseng@users.sourceforge.net>
313 * Uri.cs: Modified fix for bug #71053 to match both MS.NET 1.x and
314 2.0 behaviour. Parse method is no longer used on MS.NET 2.0, marked
317 2005-07-09 Gert Driesen <drieseng@users.sourceforge.net>
319 * Uri.cs: in .NET 2.0, port number should be valid UInt16 instead of
320 UInt32. If outcome of parsing is -1, do not consider this to be the
323 2005-07-08 Daniel Drake <dsd@gentoo.org>
325 * Uri.cs: Allow descent multiple times below root. Fixes bug #71053.
327 2005-07-02 Daniel Drake <dsd@gentoo.org>
329 * Uri.cs: HexUnescape() should only work on single-byte escape
330 sequences, ala HexEscape(). However, we still want to handle multi-byte
331 sequences internally, so introduce a more correct implementation of
332 multi-byte unescaping, HexUnescapeMultiByte(). Fixes bug #74872.
334 2005-06-11 Gert Driesen <drieseng@users.sourceforge.net>
336 * Uri.cs: Domain address might have trailing period to indicate
337 that the domain name is fully qualified. Fixes bug #75230.
339 2005-06-02 Gert Driesen <drieseng@users.sourceforge.net>
341 * Uri.cs: throw UriFormatException if URI starts with colon.
344 2005-05-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
347 (EscapeString): no need to turn the string into a char[] when calling
350 2005-03-20 Joshua Tauberer <tauberer@for.net>
352 * Uri.cs: Some pedantic changes to the text of a few exceptions.
354 2005-03-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
356 * Uri.cs: when unescaping in stages, handle the case when the next
357 substring is not a escaped sequence or the string ends. Fixes bug
360 2005-01-20 Miguel de Icaza <miguel@ximian.com>
362 * Uri.cs: Set the UriSchemNews port default to 119 as well.
365 When dealing with fragments use the `dontEscape' flag passed to
366 the Uri constructor to decide whether the fragment must or must
367 not be escaped, fixes 71051.
369 2004-06-22 Atsushi Enomoto <atsushi@ximian.com>
371 * Uri.cs : Such ctor arg string that starts with "//" should be
372 regarded as a local file path that will be condensed to single "/",
373 so handle such path differently under Windows and under *nix.
374 Since '\\' is a valid path character on Unix, so we should not
375 replace it with '/' in LocalPath.
377 2004-06-17 Jackson Harper <jackson@ximian.com>
379 * Uri.cs: Use invariant culture.
381 2004-06-16 Atsushi Enomoto <atsushi@ximian.com>
383 * Uri.cs : Fixed LocalPath. In that condition, path is always UNC.
385 2004-06-16 Atsushi Enomoto <atsushi@ximian.com>
387 * Uri.cs : Reimplemented HexUnescape() (It was too broken to handle
388 multi-byte utf-8 characters.)
390 2004-06-11 Atsushi Enomoto <atsushi@ximian.com>
393 - We don't have to mind '\\'.
394 - Fixed bug #58301. When path starts with "///" and not more than
395 "////" and not "///*:", handle it as unix path and set Host as
396 empty string. In absolute path case, port should not be parsed
397 and LocalPath should start with '/'.
398 - Handle fragment in prior to path.
400 2004-06-11 Atsushi Enomoto <atsushi@ximian.com>
402 * Uri.cs : Handle Windows UNC. Now we could simplify Parse(). Don't
403 escape windows path twice. Check scheme name as defined in RFC2396.
405 2004-06-11 Atsushi Enomoto <atsushi@ximian.com>
407 * Uri.cs : Reverted some changes. '#' should be handled when the input
408 string is NOT raw file path. So handle raw file paths differently.
409 (right now except for Windows UNC).
410 Cache LocalPath and don't compute every time.
412 2004-06-10 Atsushi Enomoto <atsushi@ximian.com>
414 * Uri.cs : Don't escape '#' in file URI paths. This fixes bug #47691.
415 Some code simplification.
417 2004-06-09 Atsushi Enomoto <atsushi@ximian.com>
420 - Now Parse() is properly implemented. If overriden, the overriding
421 Parse() is used _instead of_ this class's parsing logic.
422 - AbsoluteUri does not escape URI string at all.
423 - ToString() should unescape Query. But should not unescape fragment.
424 And all all parts should be unescaped individually to keep ? and #.
425 - In relative .ctor(), handle Windows UNC as an absolute file URI.
426 - In some cases, hosts and paths were not properly escaped in
428 - Removed unused isWindowsPath.
430 * UriBuilder.cs : Fragment and Query aren't escaped when they are set.
432 2004-05-12 Dick Porter <dick@ximian.com>
434 * Uri.cs: Reduce(string) is not in the public API.
436 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
438 * UriBuilder.cs: ignore empty Query. Fixes bug #57082.
440 2004-03-21 Jackson Harper <jackson@ximian.com>
442 * Uri.cs: Equals should be case insensitive for all parts except
445 2004-02-11 Jackson Harper <jackson@ximian.com>
447 * Uri.cs: If we are sure we have a windows path use \ instead of
448 / for directory separating.
450 2004-02-11 Jackson Harper <jackson@ximian.com>
452 * Uri.cs: If the relative uri passed to Uri (base_uri,
453 relative_uri) is an absolute uri do not combine the uris. The base
456 2004-02-10 Jackson Harper <jackson@ximian.com>
458 * Uri.cs: Preserve the trailing / if there is one when reducing
461 2004-02-08 Jackson Harper <jackson@ximian.com>
463 * Uri.cs: IsLoopback has different behavoir then
464 IPAddress::IsLoopback. It will only return true for ipv4 addresses
465 if they are 127.0.0.1, localhost, or loopback.
467 2004-02-06 Jackson Harper <jackson@ximian.com>
469 * Uri.cs: Do not escape querys or fragements. Only reduce certain
472 2004-02-06 Jackson Harper <jackson@ximian.com>
474 * Uri.cs: Use UTF8 characters when escaping. Reduce paths. This
475 method is taken from System.Web.Utils.UrlUtils.
476 * UriBuilder.cs: Do not escape fragments or queries, but do a utf8
477 switch on them. Do not prepend a "/" to Paths. Do not use
478 IPEndPoint to determine if a port is valid, UriBuilder allows
479 ports to be any positive integer, IPEndPoint does not. Use the
480 ToString () method for generate a uri in get_Uri. Only set the
481 port in ToString () if it is greater then 0.
483 2004-02-05 Jackson Harper <jackson@ximian.com>
485 * UriBuilder.cs: Do not call Uri::ToString for uri builders
486 ToString. UriBuilder's ToString is a little more primitive.
488 2004-01-12 Atsushi Enomoto <atsushi@ximian.com>
490 * Uri.cs : should not escape already-escaped string (Patch by
491 Boris Kirzner). File LocalPath should unespace return value.
492 ToString() should be unescaped only when it is not an UNC path.
493 (UNC looks not to be unescaped).
495 2004-01-06 Atsushi Enomoto <atsushi@ximian.com>
497 * Uri.cs : quick fix on local file relative uri.
499 2004-01-06 Atsushi Enomoto <atsushi@ximian.com>
501 * Uri.cs : Fixed Parse(). Should not allow relative URIs.
503 2004-01-05 Atsushi Enomoto <atsushi@ximian.com>
505 * Uri.cs : fixed IsBadFileSystemCharacter() to reject more characters
506 based on MS.NET experiment.
508 2003-12-08 Atsushi Enomoto <atsushi@ximian.com>
510 * Uri.cs : more fixes. More presice UNC handling, opaque part
511 handling for non-standard uri (e.g. urn:go-mono.com), ToString()
512 fix (that returns AbsoluteUri, which is not escaped any more),
515 2003-12-08 Atsushi Enomoto <atsushi@ximian.com>
517 * Uri.cs : Several fixes, including Unc problem, Host and LocalPath
518 fixes, null reference check for .ctor(Uri, string). This fixes
521 2003-12-04 John Luke <jluke@cfl.rr.com>
523 * Uri.cs: applied patch from Chris Masters <neeeeeep@bigpond.com>
524 fixes bug #51510. ftp uses port 21, https uses 443 and
525 parse the host name properly for UNC path.
527 2003-10-10 Pedro MartÃnez Juliá <yoros@wanadoo.es>
529 * Uri.cs: fixed a problem with some URIs like file://some_file.txt
530 It used to return "/some_file.txt/" instead of "some_file.txt" in
531 LocalPath. Fix handling of full path files and SMB addresses.
533 2003-08-12 Duncan Mak <duncan@ximian.com>
535 * Uri.cs (constructor): Properly implement RFC 2396, Par. 5.2,
538 In other words, any characters after the last (right-most)
539 slash character, if any, are excluded.
541 Previously, when merging "a://foo.com/foo" with "bar", we yield
542 the result "a://foo.com/foobar", instead of the correct
545 This fixes bug #45614.
547 2003-07-27 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
549 * SRDescriptionAttribute.cs: Moved from System.Diagnostics directory
551 2003-07-18 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
553 * Uri.cs: Added MonoTODO'd members, implemented member, fixed signature
555 2003-05-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
557 * TempFileCollection.cs: fixed the build under windows.
559 2003-05-07 Ben Maurer <bmaurer@users.sourceforge.net>
560 * Uri.cs: Checked in code to fix bug #41998. Some
561 code from Ian MacLean.
563 2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
565 * Uri.cs: reworked Segment. Small fix in MakeRelative. Throw exception
566 in Parse when host length is 0 and the Uri is not a file.
568 2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
571 (CheckSchemeName): fixed bug #28549. Thanks to Eric Runquist.
573 2003-02-01 Miguel de Icaza <miguel@ximian.com>
575 * Uri.cs (LocalPath): Local path should return un-escaped
576 strings. Patch from tum@veridicus.com (Thong (Tum) Nguyen)
578 2002-09-16 Duncan Mak <duncan@ximian.com>
580 * Uri.cs (GetObjectData):
581 (Uri): The key should be "AbsoluteUri", not "Uri".
583 2002-09-16 Miguel de Icaza <miguel@ximian.com>
585 * Uri.cs: Implemented a few of the protected methods.
587 Mon Jun 17 15:05:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
589 * Uri.cs: workaround for mcs bug.
591 2002-05-28 Lawrence Pit <loz@cable.a2000.nl>
593 * Uri.cs: Implemented ctor UriTest (baseUri, relativeUri)
594 * Uri.cs: Fixed bug in internal method GetSchemeDelimiter
596 2002-05-22 Lawrence Pit <loz@cable.a2000.nl>
598 * Uri.cs: implemented MakeRelative, improved GetLeftPart
599 * UriBuilder.cs: removed Serializable attribute
600 * UriHostNameType.cs: added Basic
602 2002-05-12 Lawrence Pit <loz@cable.a2000.nl>
604 * Uri.LocalPath and Uri.AbsoluteUri modified to support both w32
607 2002-05-09 Lawrence Pit <loz@cable.a2000.nl>
609 * Uri.GetLeftPart fixed for mailto and news schemes.
611 2002-05-05 Lawrence Pit <loz@cable.a2000.nl>
613 * UriBuilder.cs: Implemented.
615 * Uri.cs: Complete new reimplementation.
617 2002-02-08 Duncan Mak <duncan@ximian.com>
619 * UriFormatException.cs: Removed TODO attribute, the docs are
620 probably wrong here. In any case, this code compiles and should work.
622 2002-01-31 Duncan Mak <duncan@ximian.com>
624 * UriFormatException.cs: Added bits for serialization.
626 2002-01-05 Ravi Pratap <ravi@ximian.com>
628 * ChangeLog : Add to this directory.
630 * Uri.cs, UriFormatException.cs : Decorate bits with MonoTODO attribute.