1 2007-11-04 Jensen Somers <jensen.somers@gmail.com>
3 * UriBuilder.cs (ToString): Added Fragment property to the
6 (Fragment, Query): Properties are no longer set to an empty
7 string from version 2.0 and up.
9 2007-11-02 Miguel de Icaza <miguel@novell.com>
11 * Uri.cs (AppendQueryAndFragment): Unescape the query with
12 excludeSpecial = false. See bug #320614.
14 Unlike the patch on that bug, this only unescapes the query and
15 not the Path. This keeps our existing tests working.
17 2007-09-29 Miguel de Icaza <miguel@novell.com>
19 * Uri.cs (ToString, MakeRelativeUri): refactor some code in
20 ToString to be reusable (to append the query string and the
21 fragment) by MakeRelativeUrl.
23 This fixes the MakeRelativeUrl stuff, but the tests can not be
24 used just yet because we fail with stuff like:
26 new Uri ("", UriKind.Relative)
28 (Parse): when parsing absolute filenames, check if the
29 UriKind is Relative, and if so, make the isAbsoluteUri false, to
30 ensure that the upper layers do not abort with relative Uris that
31 happen to be "/foo" for example.
33 Take an UriKind property to allow for proper checking and parsing
34 depending on the context requested by the caller.
36 Allows empty strings to be relative Uris as well.
38 Do checking when we have schema:// that the parsing is not for a
39 UriKind.Relative, otherwise throw an exception.
41 (Authority, HostNameType, IsDefaultPort, IsFile, IsLoopback,
42 PathAndQuery, DnsSafeHost): They all require absolute uris.
44 * UriKind.cs: make internal for 1.0
46 2007-09-05 Marek Habersack <mhabersack@novell.com>
48 * UriTypeConverter.cs: conversion from string should be possible
49 for both relative and absolute URIs.
50 Conversion to a string or an InstanceDescriptor must not assume
51 that the uri is absolute.
52 ConvertTo must pass the uri kind to the constructor used in
55 2007-08-01 Atsushi Enomoto <atsushi@ximian.com>
57 * Uri.cs, UriParser.cs : implemented InitializeAndValidate() and
58 IsWellFormedOriginalString().
59 IsWellFormedUriString() is already implemented.
61 2007-07-06 Alan McGovern <amcgovern@novell.com>
63 * Uri.cs : The URI string should be whitespace trimmed before
64 parsing. The original string is untouched. Fixes #81960.
66 2007-07-06 Atsushi Enomoto <atsushi@ximian.com>
68 * UriIdnScope.cs : new file (for net_2_1 profile).
70 2007-06-30 Miguel de Icaza <miguel@novell.com>
72 * Uri.cs (GetLeftPart): If the URI is relative this method throws
73 InvalidOperationException.
75 (ToString): do not use GetLeftPart here, instead escape the path.
77 (Parse): For relative uris, keep the string as the path.
79 2007-06-30 Gert Driesen <drieseng@users.sourceforge.net>
81 * Uri.cs: Canonicalize is only obsolete from 2.0 onward. Fixed line
84 2007-04-18 Igor Zelmanovich <igorz@mainsoft.com>
86 * Uri.cs: added MonoNotSupported attributes.
88 2007-04-16 Atsushi Enomoto <atsushi@ximian.com>
90 * Uri.cs : in Uri(baseUri,relativeUri,noEscape), relativeUri could
91 contain a URI scheme. In such cases the relativeUri could be still
92 relative (i.e. not always equivalent to absolute). Fixed bug #81382.
94 2007-03-05 Peter Dettman <peter.dettman@iinet.net.au>
96 * Uri.cs: This patch straightens out Equals/GetHashCode for the
99 - GetHashCode gives sensible values for relative Uri's.
100 - Uri's that compare equal will give same hashcode.
101 - operator == now uses Equals.
103 All existing tests still pass, and I have added some extra test
104 cases specifically for Equals/GetHashCode on relative Uri's
107 2007-01-22 Miguel de Icaza <miguel@novell.com>
109 * Uri.cs (MakeRelativeUri): implement, copy most of the code from
112 (EscapeUriString, EscapeDataString): Implement stuff
113 needed by apps in Moma.
115 2006-12-07 Vladimir Krasnov <vladimirk@mainsoft.com>
117 * Uri.cs: implemented UnescapeDataString method
119 2006-09-28 Andrew Skiba <andrews@mainsoft.com>
121 * UriParser.cs: TARGET_JVM
122 * UriFormatException.cs: MonoTODO
124 2006-08-01 Atsushi Enomoto <atsushi@ximian.com>
126 * Uri.cs : don't compare UserInfo in Equals() and op_Equality().
127 Fixed a bug commented in #78799.
129 2006-07-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
131 * Uri.cs: update Obsolete msg.
133 2006-06-05 Atsushi Enomoto <atsushi@ximian.com>
135 * Uri.cs : revert the previous change as it caused UriTest.
136 Constructors(#rel2a). ToString() for SourceString should be
137 enough for lame users.
139 2006-05-13 Atsushi Enomoto <atsushi@ximian.com>
141 * Uri.cs : sometimes OriginalString was null. Fixed bug #78374.
142 Actually this property is LAMESPEC. Never use it.
144 2006-04-28 Atsushi Enomoto <atsushi@ximian.com>
146 * Uri.cs : Patch by pawel.sakowski@mind-breeze.com (bug #77382).
147 Reduce object allocation and avoid culture-sensitive comparison.
149 2006-03-11 Miguel de Icaza <miguel@novell.com>
151 * Uri.cs: Pragma disable warning 612 (Obsolete methods are being
152 used by us internally).
154 Ponder: should we instead move our methods to use new versions of
157 2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
159 * Uri.cs : seems like Uri opreator == and != are case sensitive.
161 2006-02-19 Raja R Harinath <harinath@gmail.com>
163 * Uri.cs (InternalEquals): New helper.
164 (Equals, operator ==): Use it.
165 (operator !=): Likewise. Fix to actually compare operands.
167 2006-02-14 Atsushi Enomoto <atsushi@ximian.com>
169 * Uri.cs : implemented op_Equality and op_Inequality.
171 2006-02-14 Ankit Jain <jankit@novell.com>
173 * Uri.cs (Uri.EnsureAbsoluteUri): New. Throws exception if its not an
175 (Uri.Parse): Set isAbsoluteUri to false, if the address is not absolute.
176 All properties other than OriginalString, IsAbsoluteUri & UserEscaped
177 throw exception for relative address.
179 2005-11-25 Sebastien Pouliot <sebastien@ximian.com>
181 * DefaultUriParser.cs: Added an internal default parser because (a)
182 UriParser is abstract and (b) MS doesn't always use the new parser
184 * Uri.cs: Implemented Compare method. Added some FIXME.
185 * UriParser.cs: Implemented GetComponents and IsBaseOf methods.
186 Changed parsers to point to the new DefaultUriParser.
188 2005-11-15 Sebastien Pouliot <sebastien@ximian.com>
190 * Uri.cs: Temporary fix for monodoc (which current Uri system won't
193 2005-11-15 Sebastien Pouliot <sebastien@ximian.com>
195 * FileStyleUriParser.cs: New. 2.0 Uri parser class.
196 * FtpStyleUriParser.cs: New. 2.0 Uri parser class.
197 * GenericUriParser.cs: New. 2.0 Uri parser class.
198 * GopherStyleUriParser.cs: New. 2.0 Uri parser class.
199 * HttpStyleUriParser.cs: New. 2.0 Uri parser class.
200 * LdapStyleUriParser.cs: New. 2.0 Uri parser class.
201 * NetPipeStyleUriParser.cs: New. 2.0 Uri parser class.
202 * NetTcpStyleUriParser.cs: New. 2.0 Uri parser class.
203 * NewsStyleUriParser.cs: New. 2.0 Uri parser class.
204 * Uri.cs: Lots of small fixes for both 1.x and 2.0. Some *big* bugs
205 in 1.x (fixed in 2.0) aren't fixed for Mono (and probably never will).
206 This class still needs to be refactored to be usable with the new
208 * UriParser.cs: New. 2.0 Uri parser base class.
210 2005-11-14 Atsushi Enomoto <atsushi@ximian.com>
212 * Uri.cs : Unescape(string,bool) should also handle % and ?.
213 In ToString(), unescape query part as well. Fixed bug #76643.
215 2005-10-21 Atsushi Enomoto <atsushi@ximian.com>
217 * UriBuilder.cs : ToString() should not add duplicate '/' before path.
218 Fixed bug #76501. Patch by Hubert Fongarnand + modified a bit.
220 2005-10-18 Sebastien Pouliot <sebastien@ximian.com>
222 * UriTypeConverter.cs: New. Implemented (2.0).
224 2005-10-17 Sebastien Pouliot <sebastien@ximian.com>
226 * GenericUriParserOptions.cs: New. 2.0 enum.
227 * UriBuilder.cs: Port == -1 is valid (default) in 2.0. Default name
228 is "localhhost" (not loopback) in 2.0. Fixed case where the Password
229 property could be null (instead of String.Empty).
230 * UriComponents.cs: New. 2.0 enum.
231 * UriFormat.cs: New. 2.0 enum.
232 * UriFormatException.cs: Added comments about GetObjectData.
233 * UriKind.cs: New. 2.0 enum.
234 * UriPartial.cs: Added Query value for 2.0.
236 2005-08-16 Daniel Drake <dsd@gentoo.org>
238 * Uri.cs: Various parsing fixes from bug #75144.
240 2005-07-09 Gert Driesen <drieseng@users.sourceforge.net>
242 * Uri.cs: Modified fix for bug #71053 to match both MS.NET 1.x and
243 2.0 behaviour. Parse method is no longer used on MS.NET 2.0, marked
246 2005-07-09 Gert Driesen <drieseng@users.sourceforge.net>
248 * Uri.cs: in .NET 2.0, port number should be valid UInt16 instead of
249 UInt32. If outcome of parsing is -1, do not consider this to be the
252 2005-07-08 Daniel Drake <dsd@gentoo.org>
254 * Uri.cs: Allow descent multiple times below root. Fixes bug #71053.
256 2005-07-02 Daniel Drake <dsd@gentoo.org>
258 * Uri.cs: HexUnescape() should only work on single-byte escape
259 sequences, ala HexEscape(). However, we still want to handle multi-byte
260 sequences internally, so introduce a more correct implementation of
261 multi-byte unescaping, HexUnescapeMultiByte(). Fixes bug #74872.
263 2005-06-11 Gert Driesen <drieseng@users.sourceforge.net>
265 * Uri.cs: Domain address might have trailing period to indicate
266 that the domain name is fully qualified. Fixes bug #75230.
268 2005-06-02 Gert Driesen <drieseng@users.sourceforge.net>
270 * Uri.cs: throw UriFormatException if URI starts with colon.
273 2005-05-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
276 (EscapeString): no need to turn the string into a char[] when calling
279 2005-03-20 Joshua Tauberer <tauberer@for.net>
281 * Uri.cs: Some pedantic changes to the text of a few exceptions.
283 2005-03-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
285 * Uri.cs: when unescaping in stages, handle the case when the next
286 substring is not a escaped sequence or the string ends. Fixes bug
289 2005-01-20 Miguel de Icaza <miguel@ximian.com>
291 * Uri.cs: Set the UriSchemNews port default to 119 as well.
294 When dealing with fragments use the `dontEscape' flag passed to
295 the Uri constructor to decide whether the fragment must or must
296 not be escaped, fixes 71051.
298 2004-06-22 Atsushi Enomoto <atsushi@ximian.com>
300 * Uri.cs : Such ctor arg string that starts with "//" should be
301 regarded as a local file path that will be condensed to single "/",
302 so handle such path differently under Windows and under *nix.
303 Since '\\' is a valid path character on Unix, so we should not
304 replace it with '/' in LocalPath.
306 2004-06-17 Jackson Harper <jackson@ximian.com>
308 * Uri.cs: Use invariant culture.
310 2004-06-16 Atsushi Enomoto <atsushi@ximian.com>
312 * Uri.cs : Fixed LocalPath. In that condition, path is always UNC.
314 2004-06-16 Atsushi Enomoto <atsushi@ximian.com>
316 * Uri.cs : Reimplemented HexUnescape() (It was too broken to handle
317 multi-byte utf-8 characters.)
319 2004-06-11 Atsushi Enomoto <atsushi@ximian.com>
322 - We don't have to mind '\\'.
323 - Fixed bug #58301. When path starts with "///" and not more than
324 "////" and not "///*:", handle it as unix path and set Host as
325 empty string. In absolute path case, port should not be parsed
326 and LocalPath should start with '/'.
327 - Handle fragment in prior to path.
329 2004-06-11 Atsushi Enomoto <atsushi@ximian.com>
331 * Uri.cs : Handle Windows UNC. Now we could simplify Parse(). Don't
332 escape windows path twice. Check scheme name as defined in RFC2396.
334 2004-06-11 Atsushi Enomoto <atsushi@ximian.com>
336 * Uri.cs : Reverted some changes. '#' should be handled when the input
337 string is NOT raw file path. So handle raw file paths differently.
338 (right now except for Windows UNC).
339 Cache LocalPath and don't compute every time.
341 2004-06-10 Atsushi Enomoto <atsushi@ximian.com>
343 * Uri.cs : Don't escape '#' in file URI paths. This fixes bug #47691.
344 Some code simplification.
346 2004-06-09 Atsushi Enomoto <atsushi@ximian.com>
349 - Now Parse() is properly implemented. If overriden, the overriding
350 Parse() is used _instead of_ this class's parsing logic.
351 - AbsoluteUri does not escape URI string at all.
352 - ToString() should unescape Query. But should not unescape fragment.
353 And all all parts should be unescaped individually to keep ? and #.
354 - In relative .ctor(), handle Windows UNC as an absolute file URI.
355 - In some cases, hosts and paths were not properly escaped in
357 - Removed unused isWindowsPath.
359 * UriBuilder.cs : Fragment and Query aren't escaped when they are set.
361 2004-05-12 Dick Porter <dick@ximian.com>
363 * Uri.cs: Reduce(string) is not in the public API.
365 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
367 * UriBuilder.cs: ignore empty Query. Fixes bug #57082.
369 2004-03-21 Jackson Harper <jackson@ximian.com>
371 * Uri.cs: Equals should be case insensitive for all parts except
374 2004-02-11 Jackson Harper <jackson@ximian.com>
376 * Uri.cs: If we are sure we have a windows path use \ instead of
377 / for directory separating.
379 2004-02-11 Jackson Harper <jackson@ximian.com>
381 * Uri.cs: If the relative uri passed to Uri (base_uri,
382 relative_uri) is an absolute uri do not combine the uris. The base
385 2004-02-10 Jackson Harper <jackson@ximian.com>
387 * Uri.cs: Preserve the trailing / if there is one when reducing
390 2004-02-08 Jackson Harper <jackson@ximian.com>
392 * Uri.cs: IsLoopback has different behavoir then
393 IPAddress::IsLoopback. It will only return true for ipv4 addresses
394 if they are 127.0.0.1, localhost, or loopback.
396 2004-02-06 Jackson Harper <jackson@ximian.com>
398 * Uri.cs: Do not escape querys or fragements. Only reduce certain
401 2004-02-06 Jackson Harper <jackson@ximian.com>
403 * Uri.cs: Use UTF8 characters when escaping. Reduce paths. This
404 method is taken from System.Web.Utils.UrlUtils.
405 * UriBuilder.cs: Do not escape fragments or queries, but do a utf8
406 switch on them. Do not prepend a "/" to Paths. Do not use
407 IPEndPoint to determine if a port is valid, UriBuilder allows
408 ports to be any positive integer, IPEndPoint does not. Use the
409 ToString () method for generate a uri in get_Uri. Only set the
410 port in ToString () if it is greater then 0.
412 2004-02-05 Jackson Harper <jackson@ximian.com>
414 * UriBuilder.cs: Do not call Uri::ToString for uri builders
415 ToString. UriBuilder's ToString is a little more primitive.
417 2004-01-12 Atsushi Enomoto <atsushi@ximian.com>
419 * Uri.cs : should not escape already-escaped string (Patch by
420 Boris Kirzner). File LocalPath should unespace return value.
421 ToString() should be unescaped only when it is not an UNC path.
422 (UNC looks not to be unescaped).
424 2004-01-06 Atsushi Enomoto <atsushi@ximian.com>
426 * Uri.cs : quick fix on local file relative uri.
428 2004-01-06 Atsushi Enomoto <atsushi@ximian.com>
430 * Uri.cs : Fixed Parse(). Should not allow relative URIs.
432 2004-01-05 Atsushi Enomoto <atsushi@ximian.com>
434 * Uri.cs : fixed IsBadFileSystemCharacter() to reject more characters
435 based on MS.NET experiment.
437 2003-12-08 Atsushi Enomoto <atsushi@ximian.com>
439 * Uri.cs : more fixes. More presice UNC handling, opaque part
440 handling for non-standard uri (e.g. urn:go-mono.com), ToString()
441 fix (that returns AbsoluteUri, which is not escaped any more),
444 2003-12-08 Atsushi Enomoto <atsushi@ximian.com>
446 * Uri.cs : Several fixes, including Unc problem, Host and LocalPath
447 fixes, null reference check for .ctor(Uri, string). This fixes
450 2003-12-04 John Luke <jluke@cfl.rr.com>
452 * Uri.cs: applied patch from Chris Masters <neeeeeep@bigpond.com>
453 fixes bug #51510. ftp uses port 21, https uses 443 and
454 parse the host name properly for UNC path.
456 2003-10-10 Pedro MartÃnez Juliá <yoros@wanadoo.es>
458 * Uri.cs: fixed a problem with some URIs like file://some_file.txt
459 It used to return "/some_file.txt/" instead of "some_file.txt" in
460 LocalPath. Fix handling of full path files and SMB addresses.
462 2003-08-12 Duncan Mak <duncan@ximian.com>
464 * Uri.cs (constructor): Properly implement RFC 2396, Par. 5.2,
467 In other words, any characters after the last (right-most)
468 slash character, if any, are excluded.
470 Previously, when merging "a://foo.com/foo" with "bar", we yield
471 the result "a://foo.com/foobar", instead of the correct
474 This fixes bug #45614.
476 2003-07-27 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
478 * SRDescriptionAttribute.cs: Moved from System.Diagnostics directory
480 2003-07-18 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
482 * Uri.cs: Added MonoTODO'd members, implemented member, fixed signature
484 2003-05-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
486 * TempFileCollection.cs: fixed the build under windows.
488 2003-05-07 Ben Maurer <bmaurer@users.sourceforge.net>
489 * Uri.cs: Checked in code to fix bug #41998. Some
490 code from Ian MacLean.
492 2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
494 * Uri.cs: reworked Segment. Small fix in MakeRelative. Throw exception
495 in Parse when host length is 0 and the Uri is not a file.
497 2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
500 (CheckSchemeName): fixed bug #28549. Thanks to Eric Runquist.
502 2003-02-01 Miguel de Icaza <miguel@ximian.com>
504 * Uri.cs (LocalPath): Local path should return un-escaped
505 strings. Patch from tum@veridicus.com (Thong (Tum) Nguyen)
507 2002-09-16 Duncan Mak <duncan@ximian.com>
509 * Uri.cs (GetObjectData):
510 (Uri): The key should be "AbsoluteUri", not "Uri".
512 2002-09-16 Miguel de Icaza <miguel@ximian.com>
514 * Uri.cs: Implemented a few of the protected methods.
516 Mon Jun 17 15:05:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
518 * Uri.cs: workaround for mcs bug.
520 2002-05-28 Lawrence Pit <loz@cable.a2000.nl>
522 * Uri.cs: Implemented ctor UriTest (baseUri, relativeUri)
523 * Uri.cs: Fixed bug in internal method GetSchemeDelimiter
525 2002-05-22 Lawrence Pit <loz@cable.a2000.nl>
527 * Uri.cs: implemented MakeRelative, improved GetLeftPart
528 * UriBuilder.cs: removed Serializable attribute
529 * UriHostNameType.cs: added Basic
531 2002-05-12 Lawrence Pit <loz@cable.a2000.nl>
533 * Uri.LocalPath and Uri.AbsoluteUri modified to support both w32
536 2002-05-09 Lawrence Pit <loz@cable.a2000.nl>
538 * Uri.GetLeftPart fixed for mailto and news schemes.
540 2002-05-05 Lawrence Pit <loz@cable.a2000.nl>
542 * UriBuilder.cs: Implemented.
544 * Uri.cs: Complete new reimplementation.
546 2002-02-08 Duncan Mak <duncan@ximian.com>
548 * UriFormatException.cs: Removed TODO attribute, the docs are
549 probably wrong here. In any case, this code compiles and should work.
551 2002-01-31 Duncan Mak <duncan@ximian.com>
553 * UriFormatException.cs: Added bits for serialization.
555 2002-01-05 Ravi Pratap <ravi@ximian.com>
557 * ChangeLog : Add to this directory.
559 * Uri.cs, UriFormatException.cs : Decorate bits with MonoTODO attribute.