New tests, update
[mono.git] / mcs / class / System / System / ChangeLog
1 2007-11-04  Jensen Somers <jensen.somers@gmail.com>
2
3         * UriBuilder.cs (ToString): Added Fragment property to the
4         return string.
5         
6         (Fragment, Query): Properties are no longer set to an empty
7         string from version 2.0 and up.
8
9 2007-11-02  Miguel de Icaza  <miguel@novell.com>
10
11         * Uri.cs (AppendQueryAndFragment): Unescape the query with
12         excludeSpecial = false.  See bug #320614.
13
14         Unlike the patch on that bug, this only unescapes the query and
15         not the Path.   This keeps our existing tests working. 
16
17 2007-09-29  Miguel de Icaza  <miguel@novell.com>
18
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.
22
23         This fixes the MakeRelativeUrl stuff, but the tests can not be
24         used just yet because we fail with stuff like: 
25
26                 new Uri ("", UriKind.Relative)
27
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.
32
33         Take an UriKind property to allow for proper checking and parsing
34         depending on the context requested by the caller. 
35
36         Allows empty strings to be relative Uris as well.
37
38         Do checking when we have schema:// that the parsing is not for a
39         UriKind.Relative, otherwise throw an exception. 
40
41         (Authority, HostNameType, IsDefaultPort, IsFile, IsLoopback,
42         PathAndQuery, DnsSafeHost): They all require absolute uris.
43
44         * UriKind.cs: make internal for 1.0
45         
46 2007-09-05  Marek Habersack  <mhabersack@novell.com>
47
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
53         InstanceDescriptor.
54
55 2007-08-01  Atsushi Enomoto  <atsushi@ximian.com>
56
57         * Uri.cs, UriParser.cs : implemented InitializeAndValidate() and
58           IsWellFormedOriginalString().
59           IsWellFormedUriString() is already implemented.
60
61 2007-07-06  Alan McGovern  <amcgovern@novell.com>
62
63         * Uri.cs : The URI string should be whitespace trimmed before
64         parsing. The original string is untouched. Fixes #81960.
65
66 2007-07-06  Atsushi Enomoto  <atsushi@ximian.com>
67
68         * UriIdnScope.cs : new file (for net_2_1 profile).
69
70 2007-06-30  Miguel de Icaza  <miguel@novell.com>
71
72         * Uri.cs (GetLeftPart): If the URI is relative this method throws
73         InvalidOperationException. 
74
75         (ToString): do not use GetLeftPart here, instead escape the path. 
76
77         (Parse): For relative uris, keep the string as the path.
78
79 2007-06-30  Gert Driesen  <drieseng@users.sourceforge.net>
80
81         * Uri.cs: Canonicalize is only obsolete from 2.0 onward. Fixed line
82         endings.
83
84 2007-04-18  Igor Zelmanovich  <igorz@mainsoft.com>
85
86         * Uri.cs: added MonoNotSupported attributes.
87
88 2007-04-16  Atsushi Enomoto  <atsushi@ximian.com>
89
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.
93
94 2007-03-05  Peter Dettman  <peter.dettman@iinet.net.au>
95
96         * Uri.cs: This patch straightens out Equals/GetHashCode for the
97         Uri class: 
98
99         - GetHashCode gives sensible values for relative Uri's.
100         - Uri's that compare equal will give same hashcode.  
101         - operator == now uses Equals.
102
103         All existing tests still pass, and I have added some extra test
104         cases specifically for Equals/GetHashCode on relative Uri's
105         (included in patch).
106
107 2007-01-22  Miguel de Icaza  <miguel@novell.com>
108
109         * Uri.cs (MakeRelativeUri): implement, copy most of the code from
110         MakeRelative. 
111         
112         (EscapeUriString, EscapeDataString): Implement stuff
113         needed by apps in Moma.
114
115 2006-12-07  Vladimir Krasnov  <vladimirk@mainsoft.com>
116
117         * Uri.cs: implemented UnescapeDataString method
118
119 2006-09-28  Andrew Skiba  <andrews@mainsoft.com>
120
121         * UriParser.cs: TARGET_JVM
122         * UriFormatException.cs: MonoTODO
123
124 2006-08-01  Atsushi Enomoto  <atsushi@ximian.com>
125
126         * Uri.cs : don't compare UserInfo in Equals() and op_Equality().
127           Fixed a bug commented in #78799.
128
129 2006-07-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
130
131         * Uri.cs: update Obsolete msg.
132
133 2006-06-05  Atsushi Enomoto  <atsushi@ximian.com>
134
135         * Uri.cs : revert the previous change as it caused UriTest.
136           Constructors(#rel2a). ToString() for SourceString should be
137           enough for lame users.
138
139 2006-05-13  Atsushi Enomoto  <atsushi@ximian.com>
140
141         * Uri.cs : sometimes OriginalString was null. Fixed bug #78374.
142           Actually this property is LAMESPEC. Never use it.
143
144 2006-04-28  Atsushi Enomoto  <atsushi@ximian.com>
145
146         * Uri.cs : Patch by pawel.sakowski@mind-breeze.com (bug #77382).
147           Reduce object allocation and avoid culture-sensitive comparison.
148
149 2006-03-11  Miguel de Icaza  <miguel@novell.com>
150
151         * Uri.cs: Pragma disable warning 612 (Obsolete methods are being
152         used by us internally).
153
154         Ponder: should we instead move our methods to use new versions of
155         the Obsoleted ones?
156
157 2006-02-21  Atsushi Enomoto  <atsushi@ximian.com>
158
159         * Uri.cs : seems like Uri opreator == and != are case sensitive.
160
161 2006-02-19  Raja R Harinath  <harinath@gmail.com>
162
163         * Uri.cs (InternalEquals): New helper.
164         (Equals, operator ==): Use it.
165         (operator !=): Likewise.  Fix to actually compare operands.
166
167 2006-02-14  Atsushi Enomoto  <atsushi@ximian.com>
168
169         * Uri.cs : implemented op_Equality and op_Inequality.
170
171 2006-02-14  Ankit Jain  <jankit@novell.com>
172
173         * Uri.cs (Uri.EnsureAbsoluteUri): New. Throws exception if its not an
174         absolute uri.
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.
178
179 2005-11-25  Sebastien Pouliot  <sebastien@ximian.com> 
180
181         * DefaultUriParser.cs: Added an internal default parser because (a)
182         UriParser is abstract and (b) MS doesn't always use the new parser
183         classes :(
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.
187
188 2005-11-15  Sebastien Pouliot  <sebastien@ximian.com> 
189  
190         * Uri.cs: Temporary fix for monodoc (which current Uri system won't
191         work under 2.0).
192
193 2005-11-15  Sebastien Pouliot  <sebastien@ximian.com>
194
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
207         parsers.
208         * UriParser.cs: New. 2.0 Uri parser base class.
209
210 2005-11-14  Atsushi Enomoto  <atsushi@ximian.com>
211
212         * Uri.cs : Unescape(string,bool) should also handle % and ?.
213           In ToString(), unescape query part as well. Fixed bug #76643.
214
215 2005-10-21  Atsushi Enomoto  <atsushi@ximian.com>
216
217         * UriBuilder.cs : ToString() should not add duplicate '/' before path.
218           Fixed bug #76501. Patch by Hubert Fongarnand + modified a bit.
219
220 2005-10-18  Sebastien Pouliot  <sebastien@ximian.com>
221
222         * UriTypeConverter.cs: New. Implemented (2.0).
223
224 2005-10-17  Sebastien Pouliot  <sebastien@ximian.com>
225
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.
235
236 2005-08-16  Daniel Drake  <dsd@gentoo.org>
237
238         * Uri.cs: Various parsing fixes from bug #75144.
239
240 2005-07-09  Gert Driesen  <drieseng@users.sourceforge.net>
241
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 
244         obsolete.
245
246 2005-07-09  Gert Driesen  <drieseng@users.sourceforge.net>
247
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
250         default port.
251
252 2005-07-08  Daniel Drake  <dsd@gentoo.org>
253
254         * Uri.cs: Allow descent multiple times below root. Fixes bug #71053.
255
256 2005-07-02  Daniel Drake  <dsd@gentoo.org>
257
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.
262
263 2005-06-11 Gert Driesen <drieseng@users.sourceforge.net>
264
265         * Uri.cs: Domain address might have trailing period to indicate
266         that the domain name is fully qualified. Fixes bug #75230.
267
268 2005-06-02 Gert Driesen <drieseng@users.sourceforge.net>
269
270         * Uri.cs: throw UriFormatException if URI starts with colon.
271         Fixed bug #75124.
272
273 2005-05-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
274
275         * Uri.cs:
276         (EscapeString): no need to turn the string into a char[] when calling
277         GetBytes.
278
279 2005-03-20 Joshua Tauberer <tauberer@for.net>
280
281         * Uri.cs: Some pedantic changes to the text of a few exceptions.
282
283 2005-03-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
284
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
287         #73316.
288
289 2005-01-20  Miguel de Icaza  <miguel@ximian.com>
290
291         * Uri.cs: Set the UriSchemNews port default to 119 as well.
292         Fixes bug #71050.
293
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.
297
298 2004-06-22  Atsushi Enomoto  <atsushi@ximian.com>
299
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.
305
306 2004-06-17  Jackson Harper  <jackson@ximian.com>
307
308         * Uri.cs: Use invariant culture.
309         
310 2004-06-16  Atsushi Enomoto  <atsushi@ximian.com>
311
312         * Uri.cs : Fixed LocalPath. In that condition, path is always UNC.
313
314 2004-06-16  Atsushi Enomoto  <atsushi@ximian.com>
315
316         * Uri.cs : Reimplemented HexUnescape() (It was too broken to handle
317           multi-byte utf-8 characters.)
318
319 2004-06-11  Atsushi Enomoto  <atsushi@ximian.com>
320
321         * Uri.cs :
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. 
328
329 2004-06-11  Atsushi Enomoto  <atsushi@ximian.com>
330
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.
333
334 2004-06-11  Atsushi Enomoto  <atsushi@ximian.com>
335
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.
340
341 2004-06-10  Atsushi Enomoto  <atsushi@ximian.com>
342
343         * Uri.cs : Don't escape '#' in file URI paths. This fixes bug #47691.
344           Some code simplification.
345
346 2004-06-09  Atsushi Enomoto  <atsushi@ximian.com>
347
348         * Uri.cs : 
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
356             relative .ctor().
357           - Removed unused isWindowsPath.
358           - Escape Query.
359         * UriBuilder.cs : Fragment and Query aren't escaped when they are set.
360
361 2004-05-12  Dick Porter  <dick@ximian.com>
362
363         * Uri.cs: Reduce(string) is not in the public API.
364
365 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
366
367         * UriBuilder.cs: ignore empty Query. Fixes bug #57082.
368
369 2004-03-21  Jackson Harper  <jackson@ximian.com>
370
371         * Uri.cs: Equals should be case insensitive for all parts except
372         the path.
373
374 2004-02-11  Jackson Harper  <jackson@ximian.com>
375
376         * Uri.cs: If we are sure we have a windows path use \ instead of
377         / for directory separating.
378         
379 2004-02-11  Jackson Harper  <jackson@ximian.com>
380
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
383         uri is dropped.
384         
385 2004-02-10  Jackson Harper  <jackson@ximian.com>
386
387         * Uri.cs: Preserve the trailing / if there is one when reducing
388         paths.
389         
390 2004-02-08  Jackson Harper  <jackson@ximian.com>
391
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. 
395         
396 2004-02-06  Jackson Harper  <jackson@ximian.com>
397
398         * Uri.cs: Do not escape querys or fragements. Only reduce certain
399         schemes.
400         
401 2004-02-06  Jackson Harper  <jackson@ximian.com>
402
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.
411         
412 2004-02-05  Jackson Harper  <jackson@ximian.com>
413
414         * UriBuilder.cs: Do not call Uri::ToString for uri builders
415         ToString. UriBuilder's ToString is a little more primitive.
416         
417 2004-01-12  Atsushi Enomoto  <atsushi@ximian.com>
418
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).
423
424 2004-01-06  Atsushi Enomoto  <atsushi@ximian.com>
425
426         * Uri.cs : quick fix on local file relative uri.
427
428 2004-01-06  Atsushi Enomoto  <atsushi@ximian.com>
429
430         * Uri.cs : Fixed Parse(). Should not allow relative URIs.
431
432 2004-01-05  Atsushi Enomoto  <atsushi@ximian.com>
433
434         * Uri.cs : fixed IsBadFileSystemCharacter() to reject more characters
435           based on MS.NET experiment.
436
437 2003-12-08  Atsushi Enomoto  <atsushi@ximian.com>
438
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),
442           and so on.
443
444 2003-12-08  Atsushi Enomoto  <atsushi@ximian.com>
445
446         * Uri.cs : Several fixes, including Unc problem, Host and LocalPath
447           fixes, null reference check for .ctor(Uri, string). This fixes
448           bug #51844.
449
450 2003-12-04  John Luke  <jluke@cfl.rr.com>
451         
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.
455         
456 2003-10-10  Pedro Martínez Juliá  <yoros@wanadoo.es>
457
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.
461
462 2003-08-12  Duncan Mak  <duncan@ximian.com>
463
464         * Uri.cs (constructor): Properly implement RFC 2396, Par. 5.2,
465         part 6a, which says:
466         
467                 In other words, any characters after the last (right-most)
468                 slash character, if any, are excluded.
469
470         Previously, when merging "a://foo.com/foo" with "bar", we yield
471         the result "a://foo.com/foobar", instead of the correct
472         "a://foo.com/bar".
473
474         This fixes bug #45614.
475
476 2003-07-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
477
478         * SRDescriptionAttribute.cs: Moved from System.Diagnostics directory
479
480 2003-07-18  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
481
482         * Uri.cs: Added MonoTODO'd members, implemented member, fixed signature
483
484 2003-05-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
485
486         * TempFileCollection.cs: fixed the build under windows.
487         
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.
491         
492 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
493
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.
496
497 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
498
499         * Uri.cs:
500         (CheckSchemeName): fixed bug #28549. Thanks to Eric Runquist.
501
502 2003-02-01  Miguel de Icaza  <miguel@ximian.com>
503
504         * Uri.cs (LocalPath): Local path should return un-escaped
505         strings.  Patch from tum@veridicus.com (Thong (Tum) Nguyen)
506
507 2002-09-16  Duncan Mak  <duncan@ximian.com>
508
509         * Uri.cs (GetObjectData):
510         (Uri): The key should be "AbsoluteUri", not "Uri".
511
512 2002-09-16  Miguel de Icaza  <miguel@ximian.com>
513
514         * Uri.cs: Implemented a few of the protected methods. 
515
516 Mon Jun 17 15:05:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
517
518         * Uri.cs: workaround for mcs bug.
519
520 2002-05-28  Lawrence Pit <loz@cable.a2000.nl>
521
522         * Uri.cs: Implemented ctor UriTest (baseUri, relativeUri)
523         * Uri.cs: Fixed bug in internal method GetSchemeDelimiter
524
525 2002-05-22  Lawrence Pit <loz@cable.a2000.nl>
526
527         * Uri.cs: implemented MakeRelative, improved GetLeftPart
528         * UriBuilder.cs: removed Serializable attribute
529         * UriHostNameType.cs: added Basic
530
531 2002-05-12  Lawrence Pit <loz@cable.a2000.nl>
532
533         * Uri.LocalPath and Uri.AbsoluteUri modified to support both w32 
534         and *nix filepaths
535
536 2002-05-09  Lawrence Pit <loz@cable.a2000.nl>
537
538         * Uri.GetLeftPart fixed for mailto and news schemes.
539
540 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
541
542         * UriBuilder.cs: Implemented.
543         
544         * Uri.cs: Complete new reimplementation. 
545
546 2002-02-08  Duncan Mak  <duncan@ximian.com>
547
548         * UriFormatException.cs: Removed TODO attribute, the docs are
549         probably wrong here. In any case, this code compiles and should work.
550
551 2002-01-31  Duncan Mak  <duncan@ximian.com>
552
553         * UriFormatException.cs: Added bits for serialization.
554
555 2002-01-05  Ravi Pratap  <ravi@ximian.com>
556
557         * ChangeLog : Add to this directory.
558
559         * Uri.cs, UriFormatException.cs : Decorate bits with MonoTODO attribute.