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