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