2009-07-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
[mono.git] / mcs / class / corlib / System.IO / ChangeLog
1 2009-07-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
2
3         * Path.cs: only trim the end of the file.
4         Fixes bug #521924.
5
6 2009-05-05  Miguel de Icaza  <miguel@novell.com>
7
8         * Contribution from David Uvalle <david.uvalle@gmail.com> that
9         implements FileInfo.Replace.
10
11 2009-04-25  Miguel de Icaza  <miguel@novell.com>
12
13         * StreamReader.cs (DataAvailable): New internal function to work
14         around the fact that StreamReaders are now blocking on Peek(), and
15         that our own Console.TermInfoDriver used Peek() as a way of
16         probing if there was data on a stream before to avoid blocking. o
17
18 2009-04-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
19
20         * StreamReader.cs: if Peek() needs to block, do it.
21         Fixes bug #496905.
22
23 2009-03-22  Marek Habersack  <mhabersack@novell.com>
24
25         * FileStream.cs: implemented the SafeFileHandle property.
26
27 2009-02-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
28
29         * StringReader.cs: LF followed by CR is 2 lines.
30
31 2009-02-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
32
33         * MonoIO.cs:
34         * MonoIOError.cs: enable ERROR_NOT_SAME_DEVICE.
35
36 2009-02-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
37
38         * StreamReader.cs: when a LF ends a decoded buffer and is not followed
39         by a CR in the next decoded buffer, we didn't flush the string.
40         Fixes bug #445326.
41
42 2009-01-08  Christian Prochnow  <cproch@seculogix.de>
43
44         * DriveInfo.cs: Added GetDiskFreeSpaceInternal
45         to query drive size and free space.
46         Added GetDriveTypeInternal to query type of drive.
47
48 2008-12-20  Miguel de Icaza  <miguel@novell.com>
49
50         * FileStream.cs: Found while debugging webcompare, we should add
51         Obsoletes to the FileStream constructors that take IntPtrs.
52
53 2008-11-27  Sebastien Pouliot  <sebastien@ximian.com>
54
55         * FileInfo.cs: Change ToString (in 2.1) not to return the full path
56         of the filename (since it's not SecurityCritical).
57
58 2008-11-09  William Holmes  <billholmes54@gmail.com>
59
60         * TextReader.cs : Adding the NullTextReader as a private class to
61           the TestReader class for the Null field of the TestReader.
62
63         Code is contributed under MIT/X11 license.
64
65 2008-11-06  Jonathan Chambers  <joncham@gmail.com>
66
67         * MonoIO.cs : Add DuplicateHandle.
68
69 2008-10-29 Gonzalo Paniagua Javier <gonzalo@novell.com>
70
71         * Path.cs: clean the path when we're not in windows. 
72         Bug #321706 fixed.
73
74 2008-10-12  Zoltan Varga  <vargaz@gmail.com>
75
76         * BinaryReader.cs (Read7BitEncodedInt): Check for an invalid encoding.
77         Fixes #434581.
78
79 2008-08-22  Sebastien Pouliot  <sebastien@ximian.com>
80
81         * FileStream.cs, MonoIO.cs: For Silverlight 2.0 (NET_2_1) we always
82         throw IsolatedStorageException instead of FileNotFoundException and
83         DirectoryNotFoundException.
84
85 2008-08-21  Sebastien Pouliot  <sebastien@ximian.com>
86
87         * FileStream.cs: Adjust exception being thrown for Silverlight 2.0.
88         * FileSystemInfo.cs: In Silverlight 2 this type does not inherit from 
89         MarshalByRefObject nor does it implement ISerializable.
90         * Stream.cs: In Silverlight 2 this type does not inherit from 
91         MarshalByRefObject.
92         * TextReader.cs: In Silverlight 2 this type does not inherit from 
93         MarshalByRefObject.
94         * TextWriter.cs: In Silverlight 2 this type does not inherit from 
95         MarshalByRefObject.
96         * UnmanagedMemoryStream.cs: For Silverlight 2 add CLSCompliant(false)
97         to the PositionPointer property.
98
99 2008-08-15  Gert Driesen  <drieseng@users.sourceforge.net>
100
101         * StreamWriter.cs: Change argument check for buffersize to require
102         positive number. Removed duplicate disposed check for AutoFlush.
103         Removed unnecessary initialization of bools.
104
105 2008-08-15  Gert Driesen  <drieseng@users.sourceforge.net>
106
107         * StreamWriter.cs: Removed duplicate argument checks from .ctor taking
108         path, as these checks are already done in FileStream .ctor. Removed
109         parameter name from ArgumentException to match MS.
110
111 2008-07-28  Marek Safar <marek.safar@gmail.com>
112
113         * File.cs: Delay DateTime .cctor invocation.
114
115 2008-07-04  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
116
117         * File.cs: Fix parameter name
118
119 2008-07-03  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
120
121         * TextWriter.cs:
122         * StreamWriter.cs:
123         * StreamReader.cs:
124         * Stream.cs:
125         * MemoryStream.cs:
126         * File.cs:
127         * DriveNotFoundException.cs:
128         * Directory.cs: Fix parameter names
129
130 2008-06-30  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
131
132         * BinaryReader.cs: Fix parameter names
133         * BinaryWriter.cs: Fix parameter names, fix exceptions
134         * BufferedStream.cs: Fix parameter names
135         * Directory.cs: Fix parameter names, fix exceptions, optimize == "" cases
136         * DirectoryInfo.cs:
137         * DirectoryNotFoundException.cs:
138         * FileNotFoundException.cs:
139         * FileStream.cs: Fix parameter names, fix exceptions
140         * IOException.cs: Fix parameter names
141
142 2008-06-21  Gert Driesen  <drieseng@users.sourceforge.net>
143
144         * Path.cs: Fixed exception arguments to match MS. Removed obsolete
145         LAMESPEC comment. In GetPathRoot, throw ArgumentException if path
146         is whitespace-only. Throw ArgumentException in HasExtension, if path
147         contains invalid path characters.
148
149 2008-05-29  Robert Jordan  <robertj@gmx.net>
150
151         * Path.cs (InsecureGetFullPath): Call CanonicalizePath for
152         UNC paths as well.
153         * Path.cs (GetServerAndShare): New helper method.
154         * Path.cs (SameRoot, CanonicalizePath): Add UNC support.
155         Fixes #394681 and a bunch of TestGetFullPath unit test cases.
156         All changes are Win32 related.
157
158 2008-05-14  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
159
160         * DriveInfo.cs: Fix compiler warning
161
162 2008-05-07  Sebastien Pouliot  <sebastien@ximian.com>
163
164         * CheckArgument.cs: Removed. Lots of unused code. The two methods
165         used are now inlined into Path.cs
166         * CheckPermission.cs: Removed. Lots of unused code.
167         * Path.cs: Inlined two checks.
168         [Found using Gendarme]
169
170 2008-04-18  Sebastien Pouliot  <sebastien@ximian.com>
171
172         * Path.cs: Change PathSeparatorChars from private to internal since
173         it's needed for IsolatedStorage.
174
175 2008-04-17  Gert Driesen  <drieseng@users.sourceforge.net>
176
177         * DirectoryInfo.cs: Added new internal ctor, which takes a bool that
178         indicates whether the original path should only container the last
179         part of the directory. Moved logic for determining the Name and
180         Parent to Initialize method, to allow it to be re-used on
181         deserialization. Renamed argument names to fix corcompare issues.
182         Added missing argument checks.
183         * Directory.cs (CreateDirectoriesInternal): Use internal ctor for
184         DirectoryInfo to ensure OriginalPath only contains last part of
185         the directory. 
186         * File.cs: Removed redundant checks from Create. On 2.0 profile, pass
187         FileOptions to FileStream. Removed redundant directory check from
188         Delete and modified exceptions to more closely match MS.
189         * FileInfo.cs: Added argument check to ctor to match MS. Added missing
190         deserialization ctor. Modified argument checks in MoveTo, and removed
191         redundant checks. Added missing argument checks in CopyTo. Code
192         formatting.
193         * FileSystemInfo.cs: Modified argument checks in CheckPath to more
194         closely match MS.
195         * MonoIO.cs: Added msg that does not disclose filename for 
196         ERROR_FILE_EXISTS. 
197         * Path.cs: Use String.Length instead of comparing with String.Empty.
198         Removed exceptions argument names to match MS.
199
200 2008-04-16  Gert Driesen  <drieseng@users.sourceforge.net>
201
202         * File.cs: Changed argument names and thrown exception to better match
203         .NET. Use String.Length instead of comparison with empty string.
204         * DirectoryInfo.cs: Added missing deserialization ctor.
205
206 2008-04-04  Dick Porter  <dick@ximian.com>
207
208         * File.cs: Pretty up the file share exception with the path name.
209
210 2008-03-28  Sebastien Pouliot  <sebastien@ximian.com>
211
212         * Directory.cs: Exception differs when deleting a directory if it 
213         does not exists or if a file of the same name exists. Also don't 
214         include path in exception if Delete fails.
215
216 2008-03-20  Marek Safar  <marek.safar@gmail.com>
217
218         * Path.cs (Combine): Call ToString to optimize concatenation.
219
220 2008-03-02  Gert Driesen  <drieseng@users.sourceforge.net>
221
222         * DriveInfo.cs: Removed debug code.
223
224 2008-02-15  Miguel de Icaza  <miguel@novell.com>
225
226         * UnmanagedMemoryStream.cs: Implement few missing pieces.
227
228 2008-02-10  Zoltan Varga  <vargaz@gmail.com>
229
230         * UnexceptionalStreamReader.cs (Read): Optimize this to avoid making a number of
231         calls + creation of a string for each character read.
232
233 2008-02-03  Sebastien Pouliot  <sebastien@ximian.com>
234
235         * MemoryStream.cs: Remove unused code found by Gendarme.
236
237 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
238
239         * BinaryReader.cs: Fix ReadCharBytes method to avoid non-linear behavior. 
240         Fixes #352184.
241
242 2007-12-28  Zoltan Varga  <vargaz@gmail.com>
243
244         * MemoryStream.cs: Fix crash if internalBuffer is null. Avoid calling
245         unsafe icalls. Fixes #350860.
246
247 2007-11-21  Atsushi Enomoto  <atsushi@ximian.com>
248
249         * FileStream.cs : Close() does not exist in 2.0 (Stream does).
250           Move GC.SuppressFinalize() to Dispose(true).
251
252 2007-11-12  Juraj Skripsky  <js@hotfeet.ch>
253
254         * Path.cs (GetRandomFileName): Return filenames containing only
255         characters from the range [a..z0..9] as MS.NET does. 
256
257 2007-11-02  Atsushi Enomoto  <atsushi@ximian.com>
258
259         * StreamReader.cs : Encoding.GetMaxCharCount() does not always return
260           the maximum max char count for Decoder.GetChars() since it might
261           contain pending buffer by flush. Fixed bug #338370.
262
263 2007-11-01  Miguel de Icaza  <miguel@novell.com>
264
265         * Path.cs (GetDirectoryName): The paths returned from this routine
266         should be canonical, not just a substring.   In addition to fixing
267         this, it also fixes #324742.
268
269 2007-10-26  Atsushi Enomoto  <atsushi@ximian.com>
270
271         * BinaryReader.cs, BinaryWriter.cs : use unsafe encoding that has ""
272           for replacement fallback. Binary serialization regression is fixed.
273
274 2007-09-06  Atsushi Enomoto  <atsushi@ximian.com>
275
276         * Stream.cs, BufferedStream.cs, MemoryStream.cs: in 2.0 override
277           Dispose(bool) rather than Close().
278           Stream.Dispose() is virtual in 2.0.
279
280 2007-08-24  Gert Driesen  <drieseng@users.sourceforge.net>
281
282         * BinaryReader.cs: Fixed line endings.
283         * FileStream.cs: Rename name argument to path. Spaces to tabs.
284
285 2007-08-20  William Holmes  <billholmes54@gmail.com>
286
287         *File.cs:  Add implementation for IO.File.Replace methods.
288         *MonoIO.cs: Declared an internal call for ReplaceFile
289
290         Code is contributed under MIT/X11 license.
291
292 2007-07-31  Dick Porter  <dick@ximian.com>
293
294         * MonoIO.cs: Fix formatting of 'access denied' exception when the
295         path info isn't known.  Fixes bug 82141.
296
297 2007-07-08  Gert Driesen  <drieseng@users.sourceforge.net>
298
299         * Directory.cs: Renamed Move arguments to match MS. Allow Move to be
300         used to move files, patch by Robert Jordan. Fixes bug #81912. Spaces
301         to tabs.
302
303 2007-06-21  Dick Porter  <dick@ximian.com>
304
305         * FileStream.cs: Fix FileShare test, fixing better bug 79250.
306
307 2007-05-28  Atsushi Enomoto  <atsushi@ximian.com>
308
309         * UnmanagedMemoryStream.cs : added Closed event for sys.Resources use.
310         * IntPtrStream.cs : added internal get_BaseAddress(), for the same.
311
312 2007-05-25  Gert Driesen  <drieseng@users.sourceforge.net>
313
314         * UnmanagedMemoryStream.cs: In Read and ReadByte, use Marshal.ReadByte
315         to read bytes as this allows us to start reading from the current
316         position. In Read, return 0 when reading beyond the end of the stream
317         and only read bytes until the end of the stream (not capacity).
318         In ReadByte, return -1 when reading beyond the end of the stream.
319         In SetLength: changed argument validation (and reported exceptions) to
320         match MS, removed duplicate access check and changed the current
321         position if length is less than position. In Write: throw
322         NotSupportedException when attempting to write beyond capacity, use
323         Marshal.WriteByte since that allows us to start writing from the
324         current position. Adjust length when position moves beyond length
325         in both Write and WriteByte. Allow position to be moved beyond
326         capacity of stream. Fixed position using Seek (=+ typo). Changed
327         CanRead to ignore current position. Allow Position to be used to move
328         beyond capacity of stream.
329
330 2007-05-24  Gert Driesen  <drieseng@users.sourceforge.net>
331
332         * UnmanagedMemoryStream.cs: Changed argument names and exceptions 
333         (msg, params) to match MS. Verify access argument in ctor. 
334
335 2007-05-23  Atsushi Enomoto  <atsushi@ximian.com>
336
337         * UnmanagedMemoryStream.cs : couple of bugfixes. in Read(), don't
338           return buffer beyond the requested length. Fixed .ctor() for wrong
339           capacity initialization.
340
341 2007-05-12  Jonathan Chambers  <joncham@gmail.com>
342
343         * FileStream.cs: Implement SafeHandle constructors.
344
345 2007-05-01  Dick Porter  <dick@ximian.com>
346
347         * File.cs:
348         * Stream.cs: Missed a few 2.0 methods
349
350 2007-04-30  Dick Porter  <dick@ximian.com>
351
352         * Directory.cs: 
353         * FileShare.cs: 
354         * DirectoryNotFoundException.cs: 
355         * SeekOrigin.cs: 
356         * FileAttributes.cs: 
357         * IOException.cs: 
358         * MemoryStream.cs: 
359         * FileMode.cs: 
360         * BinaryWriter.cs: 
361         * TextWriter.cs: 
362         * File.cs: 
363         * BinaryReader.cs: 
364         * TextReader.cs: 
365         * UnmanagedMemoryStream.cs: 
366         * StringWriter.cs: 
367         * FileAccess.cs: 
368         * FileLoadException.cs: 
369         * BufferedStream.cs: 
370         * Stream.cs: 
371         * FileInfo.cs: 
372         * FileStream.cs:
373         * StringReader.cs: 
374         * StreamWriter.cs: 
375         * EndOfStreamException.cs: 
376         * DriveInfo.cs: 
377         * StreamReader.cs: 
378         * PathTooLongException.cs: 
379         * DriveType.cs: 
380         * FileNotFoundException.cs: 2.0 profile updates
381
382 2007-04-21  Alp Toker  <alp@atoker.com>
383
384         * FileStream.cs: Respect request for buffering in all cases.
385
386         Gonzalo added code in r42667 that disables buffering even when it is
387         requested, in the case that ftype != MonoFileType.Disk. This was
388         killing performance for users who do Console.OpenStandardOutput(1024)
389         but were ending up with a non-buffered FileStream.
390
391         The new behaviour appears correct but we should watch for any
392         regressions.
393
394 2007-04-05  Dick Porter  <dick@ximian.com>
395
396         * Directory.cs: Pass combined path and pattern to
397         MonoIO.GetFileSystemEntries()
398
399 2007-04-03  Alp Toker  <alp@atoker.com>
400
401         * UnmanagedMemoryStream.cs: Should not have a public Dispose().
402         This behaviour is already provided by the base class.
403
404 2007-04-03  Alp Toker  <alp@atoker.com>
405
406         * Stream.cs: CreateWaitHandle() obsolete in 2.0.
407
408 2007-03-18  Alp Toker  <alp@atoker.com>
409
410         * UnmanagedMemoryStream.cs:
411         * Directory.cs: Exception message typo fixes.
412
413 2007-03-11  Zoltan Varga  <vargaz@gmail.com>
414
415         * UnmanagedMemoryStream.cs: Fix a warning.
416
417 2007-03-05  Miguel de Icaza  <miguel@novell.com>
418
419         * Path.cs: Manually call FileStream and pass the new internal
420         FileOptions.1 flag that means "This is a temporary file, use 600
421         permissions". 
422
423         * FileOptions.cs: Document the new private enum value.
424
425 2007-02-22  Dick Porter  <dick@ximian.com>
426
427         * MonoIOError.cs: 
428         * MonoIO.cs: Handle ERROR_CANNOT_MAKE.
429
430 2007-02-19      Eyal Alaluf <eyala@mainsoft.com>
431
432         * DirectoryInfo.cs, Directory.cs: Use MonoNotSupported & MonoLimitation
433           attribute to tag that DirectorySecurity is not supported.
434
435 2007-02-19      Boris Kirzner <borisk@mainsoft.com>
436
437         * Path.cs: fix order of InvalidPathChars on windows.
438
439 2007-01-31  Gert Driesen  <drieseng@users.sourceforge.net>
440
441         * StreamReader.cs: Removed checks for non-existing directory or file,
442         since these checks are also performed in FileStream.
443
444 2007-01-31  Gert Driesen  <drieseng@users.sourceforge.net>
445
446         * FileStream.cs: Always resolve to absolute paths for exceptions, when not
447         in anonymous mode.
448
449 2007-01-24 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
450
451         * StreamReader.cs: fix for bug #75526. We return earlier from Read () if
452         the underlying stream might block or end on the next read.
453
454 2007-01-22  Miguel de Icaza  <miguel@novell.com>
455
456         * DirectoryInfo.cs: Throw a better exception (accorind go the
457         docs, UnauthorizedAccessException is thrown if the underlying
458         platform does not support it and *also* if there are no
459         permissions to access it, which is more convenient than the
460         PlatformNotSupportedException that only states that it needs Win2k
461         or newer).
462
463 2006-12-23  Alp Toker  <alp@atoker.com>
464
465         * Directory.cs: "platfor" typofix
466
467 2006-12-22  Sebastien Pouliot  <sebastien@ximian.com>
468
469         * File.cs: Add stubs for Encrypt and Decrypt that throws 
470         NotSupportedException just like non-NTFS file systems would with MS.
471         Remove nested #if NET_2_0.
472         * FileInfo.cs: Add stubs for Encrypt and Decrypt that throws 
473         NotSupportedException just like non-NTFS file systems would with MS.
474
475 2006-12-22  Atsushi Enomoto  <atsushi@ximian.com>
476
477         * Directory.cs : non NET_2_0 build fix.
478
479 2006-12-15  Miguel de Icaza  <miguel@novell.com>
480
481         * FileInfo.cs: Empty implementations for Encrypt and Decrypt
482
483 Mon Dec 11 11:40:06 CET 2006 Paolo Molaro <lupus@ximian.com>
484
485         * FileStream.cs: correct exception message patch from
486         Markus Mauhart <mmauhart@chello.at>.
487
488 2006-11-28  Duncan Mak  <duncan@novell.com>
489
490         * TextReader.cs (Dispose): Expose as public in NET_2_0.
491
492 2006-11-26  Miguel de Icaza  <miguel@novell.com>
493
494         * DriveInfo.cs, DriveType.cs: Add a couple of classes for
495         CreativeDocs.Net.  
496
497         Thanks MoMA!  http://www.mono-project.com/Moma
498
499 2006-11-16  Miguel de Icaza  <miguel@novell.com>
500
501         * DirectoryInfo.cs (GetFiles): Implement option with SearchOptions
502         == AllDirectories
503
504 2006-11-13  Dick Porter  <dick@ximian.com>
505
506         * Directory.cs: Don't follow symlinks when deleting directories.
507         Keeps bug 79733 fixed while fixing bug 79887.
508
509         * MonoIO.cs: ExistsSymlink() added, which checks for
510         FileAttributes.ReparsePoint.
511
512 2006-11-07  Dick Porter  <dick@ximian.com>
513
514         * Directory.cs: CreateDirectory() should only throw IOException in
515         the 2.0 profile if a file already exists with the same name, not a
516         directory.
517
518 2006-11-03 Jensen Somers <jensen.somers@gmail.com>
519
520         * Directory.cs: CreateDirectory() should throw IOException if a
521         file or directory with the same name already exists, in the 2.0
522         profile.  Fixes bug 79806.
523
524 2006-10-30 Joel Reed  <joel.reed@ddiworld.com>
525
526         * DirectoryInfo.cs: Implement SearchOption.AllDirectories option.
527
528 2006-10-11  Dick Porter  <dick@ximian.com>
529
530         * FileStream.cs: Cope with 2.0 FileShare.Delete values.  Patch by
531         Peter Dettman <peter.dettman@iinet.net.au> fixing bug 79250.
532
533 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
534
535         * FileInfo.cs: added 2.0 IsReadOnly. Patch by Joel Reed.
536
537 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
538
539         * FileInfo.cs: eol-style.
540
541 2006-09-19  Gert Driesen  <drieseng@users.sourceforge.net>
542
543         * FileNotFoundException.cs: Changed message for default ctor to match
544         MS. Use internal message field of Exception to check whether Message
545         is null. On 2.0 profile, use file/assembly load failure message when
546         no message is set and a filename was specified. On 1.0 profile,
547         always use file/assembly load failure message when no message is set
548         (regardless of whether a filename was specified or not). Made some
549         cosmetic changes to ToString to have it match MS.
550
551 2006-09-02  Zoltan Varga  <vargaz@gmail.com>
552
553         * BinaryReader.cs (Read): Avoid allocating memory when reading a char.
554
555 2006-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
556
557         * StreamReader.cs: avoid ArgumentOutRangeException when the underlying
558         stream returns -1 on Read.
559
560 2006-08-30  Lluis Sanchez Gual  <lluis@novell.com>
561
562         * FileInfo.cs: OpenRead should open the file using the Read share mode.
563
564 2006-08-21  Sebastien Pouliot  <sebastien@ximian.com>
565
566         * Path.cs: Added internal method IsPathSubsetOf required to implement
567         correctly FileIOPermission (better located here).
568
569 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
570
571         * File.cs: (Delete) avoid creating the exception object for the 'file
572         not found' case.
573
574 2006-07-24  Miguel de Icaza  <miguel@novell.com>
575
576         * FileShare.cs: Add Delete in 2.0
577
578 2006-07-06  Dick Porter  <dick@ximian.com>
579
580         * Directory.cs: When creating a directory treat ERROR_FILE_EXISTS
581         (ie a file already exists with that name) the same as
582         ERROR_ALREADY_EXISTS (ie a directory already exists with that
583         name.)  Keeps bug 50753 fixed when I fix the io-layer
584         CreateDirectory() behaviour.
585
586 2006-06-21  Atsushi Enomoto <atsushi@ximian.com>
587
588         * Directory.cs : implemented GetFiles() and GetDirectories() which
589           takes SearchOption (as they are used in one of ruby.net stuff).
590
591 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
592
593         * File.cs: never throw in Exists.
594
595 2006-05-18  Miguel de Icaza  <miguel@novell.com>
596
597         * Directory.cs (Exists): Ignore INVALID_HANDlE, return false.
598
599 2006-06-03 John Luke <john.luke@gmail.com>
600
601         * Path.cs: fix typo in [Obsolete] message
602         
603 2006-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
604
605         * BinaryReader.cs: use BlockCopyInternal.
606
607 2006-05-01  Daniel Drake  <dsd@gentoo.org>
608
609         * Directory.cs: Return false (as documented) on ERROR_ACCESS_DENIED in
610         Exists() rather than throwing an exception. Bug #78239.
611
612 2006-04-29  Atsushi Enomoto <atsushi@ximian.com>
613
614         * UnexceptionalStreamReader.cs (Read): Fix for #78218, where we
615         consumed characters from the input even when the count was not set
616         to zero, causing some characters to be missing in some
617         circumstances. 
618
619 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
620
621         * Directory.cs: make sure the parent directory is not an empty string
622         when a file name with no path is provided. Fixes bug #78209. Patch by
623         Emery Conrad.
624
625 2006-04-28  Atsushi Enomoto  <atsushi@ximian.com>
626
627         * StreamReader.cs : implemented EndOfStream property.
628         * File.cs : implemented AppendAllText(), WriteAllLines(),
629           WriteAllBytes() and ReadAllLines(). Bug #77813 fixed.
630
631 2006-04-28  Robert Jordan  <robertj@gmx.net>
632
633         * Path.cs (GetPathRoot): Return just the \\server\share
634         part of a UNC. Fixes #78147.
635
636
637 2006-04-26  Miguel de Icaza  <miguel@novell.com>
638
639         * FileStream.cs: Implement the FileOptions usage by passing all
640         the information to the C layer.  Remove the "isAsync" argument for
641         MonoIO.Open, and instead pass it on the FileOptions.
642
643         * FileOptions.cs: Make it build when including WriteThrough
644
645         * MonoIO.cs: Update MonoIO.Open signature to drop the async
646         argument and take FileOptions instead. 
647
648 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
649
650         * FileStream.cs: Add new net 2.0 ctor.
651
652         * FileOptions.cs: New file.
653
654 2006-03-21  Miguel de Icaza  <miguel@novell.com>
655
656         * Stream.cs: In 2.0 make Close call Dispose(true).
657
658 2006-03-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
659
660         * FileStream.cs: Seek() should flush the buffer, if any. Fixes bug
661         #77863.
662
663 2006-03-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
664
665         * Stream.cs: Add 2.0 members to Stream.cs (CanTimeout,
666         ReadTimeout and WriteTimeout).
667         
668 2006-02-27  Gert Driesen  <drieseng@users.sourceforge.net>
669
670         * File.cs: In 2.0 profile, File.Get****Time(Utc) should not throw
671         IOException if specified path does not exist. Fixes bug #77641.
672
673 2006-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
674
675         * FileStream.cs: To match MSFT, ignore FileShare.Inheritable on 2.0
676         profile. This fixes bug #77644. Improved usefulness of some existing
677         exception messages.
678
679 2006-02-22  Joerg Rosenkranz <joergr@voelcker.com>
680
681         * MonoIO.cs, MonoIOError.cs: Verbose exception for error 39 
682           (disk full).
683           
684 2006-02-03  Zoltan Varga  <vargaz@gmail.com>
685
686         * Stream.cs FileStream.cs: Add new 2.0 Dispose () method and protected
687         Dispose (bool) method.
688
689 2006-01-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
690
691         * TextWriter.cs: Dispose () is public in 2.0.
692
693 2006-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
694
695         * UnexceptionalStreamReader.cs: Read (char,int,int) should not
696         return -1. Thanks to Jakob Berkman.
697
698 2006-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
699
700         * StreamReader.cs: (ReadToEnd) if Read returns -1 or 0, we're done.
701
702 2006-01-18  Atsushi Enomoto  <atsushi@ximian.com>
703
704         * Path.cs : (GetRandomFileName) use random buffer ;-) It somehow
705           caused infinite loop on Windows.
706
707 2006-01-18  Atsushi Enomoto  <atsushi@ximian.com>
708
709         * DirectoryInfo.cs : on Windows top directory is something like c:\.
710
711 2006-01-17  Joshua Tauberer  <tauberer@for.net>
712
713         * StreamReader.cs: Avoid two totally unnecessary string creations.
714           (kind of pedantic)
715
716 2006-01-13  Ben Maurer  <bmaurer@andrew.cmu.edu>
717
718         * TextWriter.cs: Call char[],int,int from the Write(char[]) method
719         both for msft compat and for performance. Thanks to "Mike Glenn" 
720         <mglenn@zoominternet.net> for pointing.
721
722 2006-01-12  Ben Maurer  <bmaurer@andrew.cmu.edu>
723
724         * File.cs: Support for Read/WriteAllText
725
726 2006-01-11  Sebastien Pouliot  <sebastien@ximian.com>
727
728         * Path.cs: Previous fix caused regression of bug #76191. Fixed (again)
729
730 2006-01-09  Sebastien Pouliot  <sebastien@ximian.com>
731
732         * Path.cs: Fix c14n on Windows when the first separator after the root
733         isn't '\'. Fix problems for XSP with 1.1.13.
734
735 2006-01-07  Miguel de Icaza  <miguel@novell.com>
736
737         * Path.cs (GetTempFilename): Append ".tmp" to the path, some
738         external application expect this extension.
739
740 2006-01-05  Kornél Pál  <kornelpal@hotmail.com>
741
742         * DriveNotFoundException.cs: Added.
743         * MonoIO.cs: Added ERROR_INVALID_DRIVE handling. Pass HResult to
744           IOException constructors.
745         * MonoIOError.cs: Expose ERROR_INVALID_DRIVE.
746
747 2006-01-02  Sebastien Pouliot  <sebastien@ximian.com>
748
749         * UnexceptionalStreamReader.cs: Re-implemented the Read method to fix 
750         the new line handling when reading from the Console (bug #77108).
751
752 2005-12-24  Kornél Pál  <kornelpal@hotmail.com>
753
754         * FileStream.cs: Set buf_start to actual initial position when creating
755           FileStreams from handles.
756
757 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
758
759         * DirectoryInfo.cs: Fixed #77090 to fix /home parent to be / (and not
760         null).
761
762 2005-12-21  Sebastien Pouliot  <sebastien@ximian.com>
763
764         * Path.cs: Fixed #77058 where a Windows drive wasn't considered during
765         path canonalization.
766
767 2005-12-20  Sebastien Pouliot  <sebastien@ximian.com>
768
769         * Path.cs: Fixed #77007 where a Windows drive is specified with a 
770         partial path.
771
772 2005-12-15  Sebastien Pouliot  <sebastien@ximian.com>
773
774         * DirectoryInfo.cs: Fixed #76903 where the Name property wasn't 
775         correct in some cases. Added special case for Windows drives. Reduced
776         temporary allocations in Get* methods (removed ArrayList). Added some
777         new 2.0 methods (partial).
778         * MonoIO.cs: Removed InvalidPathChars icall as the return value is 
779         different from 1.x and 2.0. The values are now defined in Path.cs.
780         * Path.cs: Fixed #76191 so that GetFullPath on a Windows drive returns
781         the current directory (if it's on the specified drive). Fixed 2.0 API
782         changes (e.g. static class).
783         * SearchOption.cs: Added missing [Serializable] (2.0).
784
785 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
786
787         * Directory.cs: Fix a warning.
788
789 2005-11-10  Dick Porter  <dick@ximian.com>
790
791         * DirectoryInfo.cs: Fix endless recursion problem with root
792         directory on windows too.  Fixes bug 76191.
793
794 2005-11-06  Zoltan Varga  <vargaz@freemail.hu>
795
796         * Directory.cs: Add stub for net 2.0 GetFiles method.
797
798         * SearchOption.cs: New file.
799
800 2005-10-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
801
802         * StreamReader.cs: made ReadLine() less memory-hungry. Fixes bug #76399.
803
804 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
805
806         * MonoIO.cs: replace FindFirst/FindNext/FindClose with
807         GetFileSystemEntries.
808         * Directory.cs: simplify GetFileSystemEntries by using the new icall.
809
810 2005-10-01  Ben Maurer  <bmaurer@ximian.com>
811
812         * BinaryReader.cs: The patch below had a nasty little bug with
813         long strings that had non-ascii chars in it, because it was
814         looking at the char count, not the byte count.
815
816 2005-09-11  Ben Maurer  <bmaurer@ximian.com>
817
818         * BinaryReader.cs: An optimization for ReadString that had been
819         approved/well tested for a while but never gotten in. Bug #52754.
820
821 2005-09-05  Miguel de Icaza  <miguel@novell.com>
822
823         * MonoIOError.cs: expose the ERROR_DIR_NOT_EMPTY as we are
824         throwing it. 
825
826         * MonoIO.cs: Return a properly named error.
827
828 2005-08-23  Raja R Harinath  <rharinath@novell.com>
829
830         Fix #75679.
831         * StreamReader.cs (DiscardBufferedData): Reset the decoder too.
832
833 2005-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
834
835         * BinaryReader.cs: use Buffer.BlockCopy instead of Array.Copy when
836         expanding the buffer.
837
838 2005-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
839
840         * Directory.cs: don't leak 'find' handles.
841
842 2005-07-05  Dick Porter  <dick@ximian.com>
843
844         * MonoIO.cs:
845         * MonoIOError.cs: Add error message for ERROR_WRITE_FAULT.
846
847 2005-07-04  Sebastien Pouliot  <sebastien@ximian.com>
848
849         * DirectoryInfo.cs: Fixed recursion problem with root directory 
850         introduced when fixing bug #75443.
851
852 2005-07-02  Sebastien Pouliot  <sebastien@ximian.com>
853
854         * FileSystemInfo.cs: Fixed exception arguments. Added ComVisible for
855         NET_2_0.
856         * DirectoryInfo.cs: Fixed bug #75443 when the directory ends with a
857         separator. Added ComVisible for NET_2_0. Normalized line endings.
858
859 2005-05-26  Miguel de Icaza  <miguel@novell.com>
860
861         * File.cs (ReadAllBytes): add.
862
863 Tue May 17 10:54:18 CEST 2005 Paolo Molaro <lupus@ximian.com>
864
865         * FileStream.cs: complete fix for #74971.
866
867 2005-05-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
868
869         * FileStream.cs: make WriteByte work in all cases when no buffer is
870         being used. Fixes bug #74971.
871
872 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
873
874         * Directory.cs: if the pattern is just a file name and it exists, return
875         it right away. Fixes bug #72143.
876
877 2005-05-06  Ben Maurer  <bmaurer@ximian.com>
878
879         * File.cs (Open): If a stream is opened with Append access, you
880         only want Write access. Fixes bug #71088.
881
882 2005-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
883
884         * UnexceptionalStreamWriter.cs: don't throw anything on Flush. Closes
885         bug #74190.
886
887 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
888
889         * Path.cs: don't trim the path in CanonicalizePath on non-windows
890         systems. Fixes bug #53173.
891
892 2005-04-09  Miguel de Icaza  <miguel@novell.com>
893
894         * StreamWriter.cs (Initialize): Avoid echoing the preamble to a
895         file if the position of the stream is not at the beginning.  Fixes
896         bug #74513
897
898 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
899
900         * FileStream.cs:
901         * MonoIO.cs: remove dead code related to async IO.
902
903 2005-03-24  Sebastien Pouliot  <sebastien@ximian.com>
904
905         * Directory.cs: Added a Demand for Read/Write when creating a new 
906         directory.
907         * FileSystemInfo.cs: Added an InheritanceDemand for Unrestricted on 
908         the class.
909         * Path.cs: Added a Demand for PathDiscovery in GetFullPath method.
910         Added an Assert for unrestricted file access to GetTempFilename as
911         the method must create the (zero-length) file and can be called from
912         partially trusted code. Added a Demand for unrestricted environment
913         access to GetTempPath method.
914         * FileStream.cs: Added a Demand for UnmanagedCode for all constructors
915         accepting a file handle. Added LinkDemand and InheritanceDemand for 
916         UnmanagedCode to get Handle and SafeFileHandle (2.0) properties.
917
918 2005-03-16  Lluis Sanchez Gual  <lluis@novell.com>
919
920         * BinaryReader.cs, BinaryWriter.cs: Read/write dobules, floats and
921         decimals in little endian format.
922
923 2005-03-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
924
925         * MonoIO.cs:
926         * MonoIOError.cs: handle ERROR_LOCK_VIOLATION.
927
928 2005-03-15  Sebastien Pouliot  <sebastien@ximian.com>
929
930         * FileStream.cs: Anonymize part of the path when exceptions are throw
931         by a FileStream is used for isolated storage. Throw a DirectoryNotFound
932         Exception for any FileMode not just CreateNew (see new unit tests).
933
934 2005-03-09  Dick Porter  <dick@ximian.com>
935
936         * MonoIOError.cs: 
937         * MonoIO.cs: Add a few more exception messages
938
939 2005-02-11  Zoltan Varga  <vargaz@freemail.hu>
940
941         * CheckPermission.cs: Fix warning.
942
943 2005-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
944
945         * File.cs: Exists does not throw when there are invalid characters in
946         the file name.
947         * MonoIOError.cs: uncommented INVALID_NAME.
948
949         Patch by Gert Driesen.
950
951 2005-01-31  Sebastien Pouliot  <sebastien@ximian.com>
952
953         * FileStream.cs: Added new constructor to allow anonymous files (i.e.
954         when Name property is "[Unknown]") for IsolatedStorage. Added
955         SafeFileHandle property and a reference to Microsoft.Win32.SafeHandles
956         for the NET_2_0 profile.
957
958 2005-01-28  Sebastien Pouliot  <sebastien@ximian.com>
959
960         * FileNotFoundException.cs, FileLoadException.cs: Fixed bad "if ();".
961
962 2005-01-27  Sebastien Pouliot  <sebastien@ximian.com>
963
964         * FileNotFoundException.cs, FileLoadException.cs: Protect the fusion
965         (GAC) log from being disclosed unless code has ControlPolicy and 
966         ControlEvidence. Added missing HResult value. Fixed Message property 
967         to match MS results. Changed ToString to use a StringBuilder.
968
969 2005-01-24  Sebastien Pouliot  <sebastien@ximian.com>
970
971         * Directory.cs: Added CAS security to Get|SetCurrentDirectory to 
972         complete Environment security checks.
973
974 2004-12-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
975
976         * BufferedStream.cs: use Buffer.BlockCopyInternal instead of Array.Copy.
977
978 2004-12-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
979
980         * File.cs: delegate to the runtime the task of checking for destination
981         file existence in Move.
982
983 2004-12-11  Ben Maurer  <bmaurer@ximian.com>
984
985         * BinaryReader.cs (ReadByte): Check for exceptions here.
986
987 2004-12-06  Atsushi Enomoto  <atsushi@ximian.com>
988
989         * TextWriter.cs : create CoreNewLine in another .ctor().
990
991 2004-12-05  Ben Maurer  <bmaurer@ximian.com>
992
993         * TextWriter.cs (WriteLine): Use CoreNewLine so that this does
994         not make a string out of the array every time it is called.
995
996         Thanks to Atsushi for the idea.
997
998 2004-12-04  Ben Maurer  <bmaurer@ximian.com>
999
1000         * DirectoryInfo.cs (CreateSubDirectory): Check the input here.
1001         
1002         * FileSystemInfo.cs (CheckPath): Empty paths are invalid.
1003
1004 2004-11-19  Dick Porter  <dick@ximian.com>
1005
1006         * MonoIOError.cs: 
1007         * MonoIO.cs: Add a proper message for sharing violation
1008
1009 2004-11-01  Ben Maurer  <bmaurer@ximian.com>
1010
1011         * MonoIOError.cs: All of these fields just take up room in corlib,
1012         bloating things up. To make it worse, we need to malloc data at
1013         runtime about them. Since most are not used, am commenting them
1014         out
1015
1016 2004-09-19  Dick Porter  <dick@ximian.com>
1017
1018         * UnexceptionalStreamWriter.cs: 
1019         * UnexceptionalStreamReader.cs: Wrappers around StreamWriter and
1020         StreamReader that catch IOException.  Used by System.Console so
1021         that graphical applications dont get IO errors when their
1022         stdin/out/err vanishes (ie when they spew debug output.)
1023
1024 2004-09-12 Ben Maurer  <bmaurer@ximian.com>
1025
1026         * BinaryReader.cs: Use ReadByte when possible. Gives a tad
1027         of perf, and fixes a bug reported on mono-patches-list
1028
1029 2004-09-08  Miguel de Icaza  <miguel@ximian.com>
1030
1031         * File.cs: Added Gettextification, provide a better error message
1032         for #62112
1033
1034 2004-09-08  Marek Safar  <marek.safar@seznam.cz>
1035
1036         * Directory.cs,
1037         * File.cs: Class is static for NET_2_0.
1038
1039 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1040
1041         * MemoryStream.cs (SetLength): Use Array.Clear here
1042
1043 2004-09-05 Ben Maurer  <bmaurer@users.sourceforge.net>
1044
1045         * Path.cs (Combine): Array.IndexOf is slow (because of the
1046         special cases it must handle). So, rather than doing IndexOf
1047         just check each type of seperator.
1048
1049 2004-09-05 Ben Maurer  <bmaurer@users.sourceforge.net>
1050
1051         * StringReader.cs (StreamReader): remove sourceChars and disposed
1052         variables
1053         (Read): Copy directly from the string, rather than a char []
1054         (Dispose, CheckObjectDisposedException): the flag for being
1055         disposed is now source == null.
1056
1057 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1058
1059         * Stream.cs: Close() does not call Flush(). Fixes bug #65340.
1060
1061 2004-08-26 Ben Maurer  <bmaurer@users.sourceforge.net>
1062
1063         * StreamWriter.cs: avoid String.ToCharArray for perf.
1064
1065 2004-08-18  Dick Porter  <dick@ximian.com>
1066
1067         * StreamWriter.cs: Flush the buffer if AutoFlush is set to true.
1068         Fixes bug 63063, patch by Laurent Debacker (debackerl@yahoo.com).
1069
1070 2004-08-13  Dick Porter  <dick@ximian.com>
1071
1072         * StreamWriter.cs: Allow FileShare.Read access to the underlying
1073         FileStream, to be compatible with MS.  Fixes bug 62152.
1074
1075 2004-07-06  Dick Porter  <dick@ximian.com>
1076
1077         * MonoIO.cs: Add ERROR_INVALID_PARAMETER to the exception list.
1078         Don't blow away the SetFileTime() error before the caller gets to
1079         see it.  Part of the bug fix to 60970.
1080
1081 2004-07-05  Dick Porter  <dick@ximian.com>
1082
1083         * CheckPermission.cs:
1084         * File.cs:
1085         * FileInfo.cs:
1086         * MonoIO.cs:
1087         * FileStream.cs: Give the filename when throwing
1088         FileNotFoundException.  Fixes bug 61120, based on patch from
1089         Carlos Alberto Cesario <carloscesario@gmail.com>.
1090
1091 2004-07-05  Dick Porter  <dick@ximian.com>
1092
1093         * File.cs: File.Move() should check that the destination doesn't
1094         already exist.  Fixes bug 60915, patch based on one from Carlos
1095         Alberto Cesario <carloscesario@gmail.com>.
1096
1097 2004-06-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1098
1099         * Directory.cs: implemented GetLogicalDrives.
1100
1101 2004-06-24  Lluis Sanchez Gual  <lluis@novell.com>
1102
1103         * StreamReader.cs: In DiscardBufferedData(), reset the mayBlock flag.
1104
1105 2004-06-21  Atsushi Enomoto  <atsushi@ximian.com>
1106
1107         * FileStream.cs :
1108           .ctor() should block write access when created with FileAccess.Write.
1109
1110 2004-06-21  Atsushi Enomoto  <atsushi@ximian.com>
1111
1112         * FileStream.cs : Check buffer size before creating file.
1113         * StreamReader.cs : Check encoding!=null before creating file.
1114         * File.cs,
1115           MonoIO.cs : Convert DateTime to FileTime after checking
1116           file IO sharing violation (it just fixes the type of exception).
1117
1118 2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>
1119
1120         * MemoryStream.cs: added TODO for serialization
1121         * StringWriter.cs: added TODO for serialization
1122
1123 2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>
1124
1125         * TextWriter.cs: fixed CoreNewLine to return char[]
1126
1127 2004-06-14  Dick Porter  <dick@ximian.com>
1128
1129         * Directory.cs:
1130         * File.cs: Catch PATH_NOT_FOUND errors in Exists() too.  Fixes bug
1131         59354.
1132
1133 2004-06-09  Duncan Mak  <duncan@ximian.com>
1134
1135         * BufferedStream.cs (SetLength): Add checks and throw the
1136         appropriate Exceptions here instead.
1137
1138         * FileStream.cs (SetLength): Revert part of my last patch, we're
1139         throwing ObjectDisposedException instead of IOException again.
1140
1141 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1142
1143         * FileStream.cs: re-enabled ignoring broken pipe errors when reading.
1144         Fixes bug #59639.
1145
1146 2004-06-08  Duncan Mak  <duncan@ximian.com>
1147
1148         * Directory.cs (IsRootDirectory): New helper method for
1149         determining if a path is the root directory. Handles both Unix as
1150         well as Windows.
1151         (GetParent): Use IsRootDirectory for the check.
1152
1153 2004-06-08  Duncan Mak  <duncan@ximian.com>
1154
1155         * File.cs: Fix line endings, took out ^Ms.
1156
1157         * Directory.cs (GetParent): Return null if the specified path is
1158         the root directory.
1159
1160         * StreamReader.cs (StreamReader):
1161         (Initialize): Add a check that buffer_size must not be less than
1162         or equal to zero.
1163
1164 2004-06-07  Duncan Mak  <duncan@ximian.com>
1165
1166         * FileStream.cs (SetLength): The other exceptions have precendence
1167         over ObjectDisposedException, which is not one of the exceptions
1168         listed in the documentation). Also, instead of throwing an
1169         ObjectDisposedException, throw an IOException.
1170
1171 2004-06-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1172
1173         * BufferedStream.cs: fixed typo that prevented Read() from working.
1174         This went out with beta 2. Closes bug #59534.
1175
1176 2004-05-31  Atsushi Enomoto  <atsushi@ximian.com>
1177
1178         * Directory.cs, File.cs : Fixed Exists() that raised 
1179           DirectoryNotFoundException. Quick fix for bug #59354.
1180
1181 2004-05-30  Sebastien Pouliot  <sebastien@ximian.com>
1182
1183         * BinaryReader.cs: Added missing disposed check for most methods. 
1184         Reordered some exceptions to match MS implementation. 
1185         * BufferedStream.cs: Fixed Seek logic (check for CanSeek and dispose).
1186         SetLength must also reset Position and check for dispose.
1187         * FileStream.cs: Added missing check for invalid SeekOrigin. Added
1188         missing validations.
1189
1190 2004-05-27  Dick Porter  <dick@ximian.com>
1191
1192         * FileSystemInfo.cs: Take out the error checking in Refresh(), it
1193         broke other stuff
1194         
1195 2004-05-27  Dick Porter  <dick@ximian.com>
1196
1197         * MonoIO.cs: Define icalls for Lock() and Unlock()
1198         
1199         * FileStream.cs: Implement Lock() and Unlock().  Also improve IO
1200         error reporting.
1201
1202         * FileSystemInfo.cs:
1203         * File.cs:
1204         * Directory.cs: Improve IO error reporting
1205
1206 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1207
1208         * FileStream.cs: delay seeking to the end when FileMode.Append is
1209         specified until after buffer initialization. Fixes bug #59151.
1210
1211 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
1212
1213         * BufferedStream.cs: Added globalization and fixed exceptions and 
1214         possible integer overflow.
1215         * FileStream.cs: Fixed possible integer overflow.
1216         * MemoryStream.cs: Fixed possible integer overflow.
1217         * StringReader.cs: Fixed possible integer overflow.
1218         * TextWriter.cs: Fixed possible integer overflow.
1219
1220 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1221
1222         * FileInfo.cs,
1223           DirectoryInfo.cs : ToString() should return constructor arg as is.
1224           This fixes bug #58804.
1225
1226 2004-05-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1227
1228         * Directory.cs: ERROR_FILE_NOT_FOUND in FindFirstFile means there are
1229         no files, but the directory was found. Fixes bug #58875.
1230
1231 2004-05-24  Duncan Mak  <duncan@ximian.com>
1232
1233         * StreamWriter.cs (Close): Remember to set the 'closed' flag.
1234
1235         * DirectoryInfo.cs: 
1236         * FileInfo.cs: Reformat the whole file to use DOS line endings.
1237         (MoveTo): Return if the destination of Move is the
1238         same as the file's current location.
1239
1240 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
1241
1242         * MemoryStream.cs: Fixed exception reporting to match MS Fx. Fixed the
1243         condition to allow zeroization of existing data when we shrink the 
1244         stream.
1245         * StreamReader.cs: Add checks for null encoding. Fixed possible integer
1246         overflow and ArgumentNullException in Read.
1247         * StreamWriter.cs: Add dispose check to Write(char) and Write(char[]),
1248         AutoFlush. Fixed possible integer overflow in Write(char[],int,int).
1249         * StringWriter.cs: Fixed possible integer overflow in Write. Changed
1250         spaces for tabs.
1251
1252 2004-05-22  Duncan Mak  <duncan@ximian.com>
1253
1254         * Directory.cs: Reformat the whole file to use Unix line endings
1255         for consistency.
1256         (GetFileSystemEntries): If pattern is String.Empty, always
1257         return an empty string array. Throw the ArgumentException if path
1258         is an empty string (determined using the new helper method)
1259         (IsEmptyString): Returns true on an empty string or a string with
1260         only whitespace characters.
1261
1262         * Path.cs (GetPathRoot): Throw an ArgumentException if the path
1263         argument is String.Empty.
1264
1265 2004-05-20  Jackson Harper  <jackson@ximian.com>
1266
1267         * DirectoryInfo.cs: Create subdirectories correctly if more then
1268         one is supplied.
1269         
1270 2004-05-16  Atsushi Enomoto  <atsushi@ximian.com>
1271
1272         * DirectoryInfo.cs: Fixed ToString() as well as FileInfo.
1273
1274 2004-05-16  Atsushi Enomoto  <atsushi@ximian.com>
1275
1276         * FileInfo.cs: ToString() returns not full path but just the file name.
1277
1278 2004-05-14  Marek Safar  <marek.safar@seznam.cz>
1279
1280         * TextWriter.cs: Removed useless [CLSCompliant (false)]
1281
1282 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1283
1284         * Directory.cs: use the real wildcard for file names as it is supported
1285         now in io-layer. SearhPattern is not needed now.
1286
1287 2004-04-30 Ben Maurer  <bmaurer@users.sourceforge.net>
1288
1289         * BinaryWriter.cs, Stream.cs: ensure we have beforefieldinit.
1290
1291 2004-04-29 Ben Maurer  <bmaurer@users.sourceforge.net>
1292
1293         * Path.cs: readonlyificate.
1294
1295 2004-04-29 Ben Maurer  <bmaurer@users.sourceforge.net>
1296
1297         * FileStream.cs: constify.
1298
1299 2004-04-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1300
1301         * SearchPattern.cs: Call invariant String.ToLower
1302
1303 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1304
1305         * FileStreamAsyncResult.cs: invoke the callback if set as completed
1306         before the asynchronous stuff jumps in.
1307
1308 2004-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1309
1310         * FileStream.cs: only pass the async flag set to true when opening the
1311         file and AIO is supported by the underlying system. Fixes bug #56883.
1312
1313 2004-04-12  Gert Driesen (drieseng@users.sourceforge.net)
1314
1315         * FileSystemInfo.cs: Implemented ISerializable, corrected COM 
1316         visibility of UTC properties
1317
1318 2004-04-01  Lluis Sanchez Gual  <lluis@ximian.com>
1319
1320         * BufferedStream.cs: On Position change, do not reset the buffer if the
1321         new position is in the limits of the buffer. This fixes #49403.
1322
1323 2003-04-03  Atsushi Enomoto <atsushi@ximian.com>
1324
1325         * Path.cs : ChangeExtension() does not remove dot(.) when extension is
1326           an empty string.
1327
1328 2004-04-01  Lluis Sanchez Gual  <lluis@ximian.com>
1329
1330         * FileSystemInfo.cs: Added InternalRefresh, a virtual method that derived
1331           classes can override to perform class specific refreshing.
1332         * FileInfo.cs: Refresh existence flag when Refresh is called.
1333         * TextWriter.cs: Applied patch by Benjamin Jemlich for bug #52512.
1334           The method Write(char) should do nothing by default.
1335
1336 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1337
1338         * BinaryReader.cs: don't modify the underlying stream in Peek(). Fixes
1339         bug #51741. Patch by Nick Vaughan.
1340
1341 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
1342
1343         * FileStream.cs: ReadByte(): when buffering is disabled, read the byte
1344         with a direct call to ReadData. In InitBuffer(), if buffering is
1345         disabled, create a buffer of one byte, to be used in ReadByte.  This
1346         fixes bug #52361.
1347
1348 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
1349
1350         * Path.cs: In GetDirectoryName, fixed check for volumeSeparator. This
1351           fixes bug #53892.
1352
1353 2004-03-24  Lluis Sanchez Gual  <lluis@ximian.com>
1354
1355         * File.cs: In Move, throw IOException instead of ArgumentException if 
1356           destination is a directory.
1357         * MonoIO.cs: In ExistsDirectory, return ERROR_PATH_NOT_FOUND instead of
1358         ERROR_FILE_NOT_FOUND, since we are looking for a directory, not a file.
1359         
1360 2004-03-15  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1361
1362         * StreamWriter.cs: Removed unneeded function
1363
1364 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1365
1366         * FileStream.cs: added support for asynchronous I/O without using the
1367         OS native libraries if available.
1368
1369         * FileStreamAsyncResult.cs: IAsyncResult for asynch. I/O.
1370
1371         * MonoIO.cs: added BeginRead/Write, GetSupportsAsync. Open has now a
1372         new parameter to tell ifthe file will be used for asynch operations.
1373
1374         * Stream.cs: BeginRead/Write do not use delegates. They just are
1375         actually synchronous.
1376
1377         * StreamAsyncResult.cs: IAsyncResult for Stream.
1378
1379 2004-03-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1380
1381         * Directory.cs: check if the error returned in Exists is different
1382         from 'path not found' and throw the appropiate exception in that case.
1383         See #55160.
1384
1385 2004-03-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1386
1387         * MonoIO.cs: added case for ERROR_FILENAME_EXCED_RANGE.
1388
1389 2004-02-25  Jackson Harper <jackson@ximian.com>
1390
1391         * File.cs: Report the filename when deleting a file fails. Patch
1392         by Gert Driesen. Fixes bug #54855.
1393         
1394 2004-02-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1395
1396         * FileStream.cs: remove dangling ^Ms.
1397
1398 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1399
1400         * FileStream.cs: (.ctor) Path.DirectoryName can be empty and make
1401         Path.GetFullPath crash. Fixed it.
1402
1403         * MonoIO.cs: fixed typo.
1404
1405 2004-02-13  Jackson Harper  <jackson@ximian.com>
1406
1407         * FileStream.cs: Throw some more exceptions for invalid
1408         params. Fixes some unit test failures.
1409         * BufferedStream.cs: If the stream is closed (can't read from it
1410         or write to it) throw an ObjectDisposedException.
1411         
1412 Tue Jan 20 23:10:22 CET 2004 Paolo Molaro <lupus@ximian.com>
1413
1414         * StreamWriter.cs, TextWriter.cs: comply with the documented
1415         behaviour and use a decode buffer to improve performance.
1416
1417 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1418
1419         * Path.cs: now Path.GetFullPath ("/") returns "/" instead of "".
1420
1421 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1422
1423         * Path.cs: add the trailing directory separator only for volumes.
1424         Fixes bug #53035.
1425
1426 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
1427
1428         * IntPtrStream.cs: Fix build bustage.
1429         
1430         * IntPtrStream.cs: Add a 'Closed' event. Also throw exceptions after
1431         the stream is closed.
1432
1433 2004-01-18 Ben Maurer  <bmaurer@users.sourceforge.net>
1434
1435         * FileStream.cs: Locking from bug #32344 removed. This is not
1436         necessary because the correct fix was actually in the console.
1437         This fixes bug #53026. Miguel de Icaza reviewed/approved this
1438         patch.
1439
1440 2004-01-14  Zoltan Varga  <vargaz@freemail.hu>
1441
1442         * FileStream.cs (.ctor): Avoid allocating a large buffer when reading
1443         from small files.
1444
1445 2004-01-10  Atsushi Enomoto <atsushi@ximian.com>
1446
1447         * Path.cs : GetDirectoryName ("c:\readme.txt") should return "c:\"
1448           instead of "c:" . This fixed bug #52735.
1449
1450 2004-01-04  Nick Drochak <ndrochak@gol.com>
1451
1452         * Path.cs: Remove defined but unused variable, and also got rid of
1453         some unreachable code.  Eliminates some build warnings.
1454
1455 2003-12-28 Ben Maurer  <bmaurer@users.sourceforge.net>
1456
1457         * BinaryWriter.cs: use one encoding buffer for writing
1458         strings rather than allocting one/string. HUGE perf
1459         boost when writing many strings.
1460
1461 2003-12-25  Atsushi Enomoto <atsushi@ximian.com>
1462
1463         * Path.cs : Fixed GetFullPath() (and CanonicalizePath()), 
1464           HasExtension(), GetPathRoot() and IsPathRooted() to fit with tests.
1465
1466 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
1467
1468         * FileStream.cs: (.ctor) do not set handle
1469         in object until after it is validated via
1470         GetFileType so finalizer doesn't see bad handles and
1471         initialize this.handle to InvalidHandle
1472
1473 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
1474
1475         * MonoIO.cs: SetFileTime() Failed Open returns InvalidHandle
1476         not Zero
1477
1478 2003-12-17  Atsushi Enomoto <atsushi@ximian.com>
1479
1480         * Directory.cs : SetCurrentDirectory() should raise errors for
1481           some kind of arguments.
1482
1483 2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1484
1485         * Path.cs: GetTempPath () ends with DirectorySeparatorChar. Fixes bug
1486         #52056.
1487
1488 2003-12-06  Ravindra  <rkumar@novell.com>
1489         *MonoIO.cs: Added a new exception case. It is thrown 
1490         when a directory creation is attempted with a name that
1491         is already used by an existing file.
1492
1493 2003-11-28  Dick Porter  <dick@ximian.com>
1494
1495         * Path.cs: Use the char form of LastIndexOf, so that the
1496         comparison is done with the Invariant culture.
1497
1498 2003-11-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1499
1500         * Directory.cs: provide the path when getting the IOException.
1501
1502 2003-11-18  John Luke  <jluke@cfl.rr.com>
1503
1504         * CheckArgument.cs:
1505         (PathLength): fix recursion found by JonK
1506         
1507 2003-11-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1508
1509         * Directory.cs:
1510         (GetCurrentDirectory):
1511         (SetCurrentDirectory): moved here from Environment. Handle error cases.
1512
1513         * MonoIO.cs: add path to the default error message.
1514
1515 2003-11-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1516
1517         * StringReader.cs: fixed ReadLine for some cases where there are mixed
1518         '\r' and '\n'. Closes bug #51020.
1519
1520 2003-11-14 Ben Maurer  <bmaurer@users.sourceforge.net>
1521
1522         * MemoryStream.cs (.ctor): We need to check if buffer is null
1523         before we get the Length of it.
1524
1525 2003-11-14  Miguel de Icaza  <miguel@ximian.com>
1526
1527         * StreamReader.cs, TextReader, StreamReader (Read): Add [Out]
1528
1529 2003-11-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1530
1531         * Directory.cs: allow directory names without wildcards in the pattern.
1532         Fixes bug #3 50969.
1533
1534         * SearchPattern.cs: made InvalidChars and WildcardChars internal.
1535
1536 2003-11-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1537
1538         * FileStream.cs: use the argument name when throwing exception.
1539
1540         * StreamReader.cs:
1541         * StringReader.cs:
1542         * TextReader.cs: added [In] attribute for the array in Read.
1543
1544 2003-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1545
1546         * DirectoryInfo.cs: fixed ToString. Closes bug #50842.
1547
1548 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
1549
1550         * Directory.cs: Adjust for missing PlatformID.Unix.
1551
1552 2003-10-28  Miguel de Icaza  <miguel@ximian.com>
1553
1554         * StreamReader.cs: Add checks for disposed stream from bug report
1555         #48696 (Patrik Reali)
1556
1557         * TextReader.cs (Read): Return the total number of bytes read, 
1558         patch from Patrik Realli.
1559
1560 2003-10-20  Miguel de Icaza  <miguel@ximian.com>
1561
1562         * FileStream.cs public FileStream (string name, FileMode mode)
1563         constructor: If we pass FileMode.Append, we can not pass
1564         FileAccess.ReadWrite.  This fixes bug 44959
1565
1566 2003-09-26  Miguel de Icaza  <miguel@ximian.com>
1567
1568         * BufferedStream.cs (Write): Use CanWrite in Write.  Patch from
1569         Francisco Figueiredo Jr.
1570
1571 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1572
1573         * BinaryReader.cs: return the correct number of bytes read when there
1574         are some bytes from peeking.
1575
1576 2003-09-11  Lluis Sanchez Gual  <lluis@ximian.com>
1577
1578         * BufferedStream.cs, FileStream.cs, MemoryStream.cs, Stream.cs:
1579           Added [In,Out] attributes to Read method.
1580
1581 2003-08-05  Martin Baulig  <martin@ximian.com>
1582
1583         * StreamReader.cs (DiscardBufferedData): Do the same like on the
1584         ms runtime: just discard the buffered data, but don't modify the
1585         BaseStream.Position.
1586
1587 2003-08-04  Martin Baulig  <martin@ximian.com>
1588
1589         * StreamReader.cs (DiscardBufferedData): Implemented.
1590
1591 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
1592
1593         * IntPtrStream.cs (Read): Use correct offset here;  Change the
1594         code to use a byte* instead of an IntPtr to reduce the number of
1595         casts used. 
1596
1597         (Read): Use Marshal.Copy instead of the now
1598         deprecated MemCopy.
1599
1600         (IntPtrStream): New stream implementation, it maps to a region in
1601         memory.
1602
1603 2003-07-23  Duncan Mak  <duncan@ximian.com>
1604
1605         * StreamReader.cs (Initialize): This method is not exposed in the
1606         API, mark as internal.
1607
1608 Fri Jul 18 14:42:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
1609
1610         * MonoIO.cs: 64bit fix from Bernie Solomon <bernard@ugsolutions.com>.
1611
1612 2003-07-16  Dick Porter  <dick@ximian.com>
1613
1614         * FileInfo.cs: Update path info when a file is moved.  Patch by
1615         John Luke <jluke@cfl.rr.com>, fixes bug 44253.
1616
1617 2003-07-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1618
1619         * MemoryStream.cs: fixed bug #46060. Thanks to Carlos Barcenilla.
1620
1621 2003-06-30  Zoltan Varga  <vargaz@freemail.hu>
1622
1623         * FileStream.cs (Dispose): Flush the buffer even if we don't own the
1624         handle.
1625         * FileStream.cs: Add a new constructor parameter to turn off buffering.
1626         This is used by the Console.OpenStandard...() methods. Also fix
1627         argument checking in InitBuffer(), so a zero buffer size is also 
1628         rejected.
1629
1630 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
1631
1632         * Stream.cs: use async.delegate invoke 
1633
1634 2003-06-18  Nick Drochak <ndrochak@gol.com>
1635
1636         * FileSystemInfo.cs: Refresh cache when changeing file times.
1637
1638 2003-06-11  Zoltan Varga  <vargaz@freemail.hu>
1639
1640         * FileStream.cs: Fix errors in previous checkins:
1641         (Write): Only take the shortcut route if the data is longer than the
1642         buffer length.
1643         (Write): Flush the buffer before writing out the new data
1644         (Write): Flush the buffer after writing out a segment since otherwise
1645         we will go into an infinite loop.
1646         (FlushBuffer): Remove my last change since it was clearly wrong.
1647         (Seek): Run FlushBuffer () after the in-buffer seek optimization.
1648         (Seek): Only use the in-buffer optimization if the buffer is not
1649         empty.
1650         (Length): Call FlushBuffer () since buffer data might change the size
1651         of the stream.
1652
1653 2003-06-09  Ville Palo <vi64pa@kolumbus.fi>
1654
1655         * FileStream.cs:
1656         - removed unusefull bugfix (DirectoryNotFoundException)
1657         - Flush before seek.
1658         
1659 2003-06-09  Ville Palo <vi64pa@kolumbus.fi>
1660
1661         * FileStream.cs: Check buffer size before append/read -exceptios
1662         
1663 2003-06-09  Ville Palo <vi64pa@kolumbus.fi>
1664
1665         * FileStream.cs: Check DirectoryNotFound before FileNotFound.
1666         
1667 2003-06-09  Ville Palo <vi64pa@kolumbus.fi>
1668
1669         * FileStream.cs: Does not anymore flush while writing
1670         
1671 2003-06-02  Nick Drochak <ndrochak@gol.com>
1672
1673         * FileInfo.cs (MoveTo): Throw exceptions when dest exists, and check
1674         for null too.
1675
1676 2003-05-27  Lluis Sanchez Gual <lluis@ximian.com>
1677
1678         * BinaryReader.cs: Stream don't need to be seekable to use PeekChar.
1679
1680 2003-05-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1681
1682         * Path.cs: fixed bug #42631.
1683
1684 2003-05-22  Zoltan Varga  <vargaz@freemail.hu>
1685
1686         * File.cs (Move): Allow moving of directories.
1687         Fix 'destination is a directory' test.
1688
1689 2003-05-21  Ben Maurer  <bmaurer@users.sourceforge.net>
1690
1691         * StringWriter.cs: Fixed bug #43431: "StringWriter
1692         .ctor(CultureInfo) does not create a new StringBuilder ()"
1693
1694 2003-05-11  Zoltan Varga  <vargaz@freemail.hu>
1695
1696         * FileStream.cs (FlushBuffer): After a flush, the buffer is
1697         advanced by buf_offset bytes, not buf_length bytes.
1698
1699 2003-05-16  Dick Porter  <dick@ximian.com>
1700
1701         * MonoIO.cs: Implement GetTempPath
1702
1703 2003-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1704
1705         * DirectoryInfo.cs: fixed bug #42991.
1706         * Path.cs:
1707         (CanonicalizePath): store the value of the trimmed input string. Make it
1708         work with paths such as "/home/xxx/.".
1709
1710 2003-05-08  Ben Maurer <bmaurer@users.sourceforge.net>
1711         * Path.cs 
1712         (CanonicalizePath) Fixed bug #42631, which duplicated the
1713         root part of the path under Windows.
1714
1715 2003-05-08  Ville Palo <vi64pa@kolumbus.fi>
1716
1717         * FileSystemInfo.cs: Added 1.1 properties LastAccessTimeUtc, 
1718         LastWriteTimeUtc and CreationTimeUtc
1719         
1720 2003-05-07  Ben Maurer <bmaurer@users.sourceforge.net>
1721         * Path.cs 
1722         (GetPathRoot) Added support for UNC paths.
1723         (CanonicalizePath) Added optimizations per Miguel's requests.
1724
1725 2003-05-06  Ville Palo <vi64pa@kolumbus.fi>
1726
1727         * BufferedStream.cs: 
1728           - Removed unusefull code.
1729           - Added ObjectDisposedException to Position
1730           - Dont flush if stream is allready closed.
1731           - Flush throws also ObjectDisposedException.
1732         * Directory.cs:
1733           - GetFileSystemEtries: ArgumentNullException if pattern is null
1734         * DirectoryInfo.cs: Fixed little MoveTo () bug.
1735         * FileInfo.cs:
1736           - Exists: If file does not exists when instance is created the
1737           value of the Exists property does not change even if file is created
1738           afterwards.
1739           - Delete: If path is a directory UnauthorizedException is thrown.
1740           - CopyTo: Now we can overwrite file if wanted.
1741         * Path.cs: 
1742           - GetFullPath: Now throws exception when path is "   ".
1743         
1744 2003-05-04  Ben Maurer <bmaurer@users.sourceforge.net>
1745         * Directory.cs (GetLogicalDrives) Marked as MonoTODO
1746         because we need to implement the method on Windows.
1747         * Path.cs 
1748         (CanonicalizePath) Added new function to get
1749         rid of . and .. in path names. Need to figure out what
1750         other functions should call this.
1751         (GetFullPath) Added call to the above function.
1752         
1753 2003-05-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1754
1755         * StreamReader.cs:
1756         (.ctor): fixed parameters passed to FileNotFoundException.
1757
1758 2003-04-25  Dietmar Maurer  <dietmar@ximian.com>
1759
1760         * BinaryReader.cs (Read): make sure the buffer is big enough (fix
1761         bug # 40702)
1762
1763 2003-04-24  Pedro Martinez Julia  <yoros@wanadoo.es>
1764
1765         * BufferedStream.cs: Test if it's possible to seek in a Stream
1766         before access to Position. This prevents the exception thrown when
1767         the stream is System.Net.Sockets.NetworkStream.
1768
1769 2003-04-22  Ville Palo <vi64pa@kolumbus.fi>
1770
1771         * Directory.cs: clean up --> performance improvment. Some exceptions
1772         are now checked in File.cs.
1773         * File.cs: Implemented Get/SetXXXTimeUtc () methods. Some bugfixes.
1774         
1775 2003-04-21  Ville Palo <vi64pa@kolumbus.fi>
1776
1777         * Directory.cs: lots of fixes. 
1778           - Added GetXXXtimeUtc () (v1.1) methods.
1779           - Added SetXXXtimeUtc () (v1.1) methods.      
1780         
1781 2003-04-20  Igor Nosyryev <nosyryev@attbi.com>
1782
1783         * StringReader.cs (Read): Increment nextChar by charsToRead
1784         instead of count, that will guarantee that the next time the
1785         method is called, it will return 0 on an empty string rather than
1786         throwing an exception
1787
1788 2003-04-19  Ville Palo <vi64pa@kolumbus.fi>
1789
1790         * BufferedStream.cs: Some fixes, mostly throwing exceptions.
1791         * MemoryStream.cs: Changed the order of exception checking
1792         * StringReader.cs: little clean up
1793         
1794 2003-04-14  Ville Palo <vi64pa@kolumbus.fi>
1795
1796         * BinaryWriter.cs: Fixed decimal writing and lots of 
1797         ObjectDisposedExceptions added.
1798         
1799 2003-04-13  Ville Palo <vi64pa@kolumbus.fi>
1800
1801         * BinaryReader.cs: Fix to ReadDecimal() method.
1802         
1803 2003-04-13  Ville Palo <vi64pa@kolumbus.fi>
1804
1805         * StringReader.cs: Added some ObjectDisposedExceptions.
1806         * StringWriter.cs: Added some ObjectDisposedExceptions.
1807         * BinaryReader.cs: Added some ObjectDisposedExceptions.
1808         
1809 2003-04-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1810
1811         * FileStream.cs: fixed the windows build. This is an mcs bug. I'll
1812         fill a bug report.
1813
1814 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1815
1816         * FileStream.cs: fixed bug #40182 and made more unit test pass.
1817
1818 2003-04-11  Ville Palo <vi64pa@kolumbus.fi>
1819
1820         * FileStream.cs: Added new methods Lock () and Unlock ()
1821         
1822 2003-04-11  Ville Palo <vi64pa@kolumbus.fi>
1823
1824         * StringReader.cs: Throws exceptions if constructor parameter is null.
1825         
1826 2003-04-11  Ville Palo <vi64pa@kolumbus.fi>
1827
1828         * StringWriter.cs: Now throws an exception if StringBuilder parameter
1829         is null
1830         
1831 2003-04-05  Miguel de Icaza  <miguel@ximian.com>
1832
1833         * TextWriter.cs: Implemented Synchronized method.
1834
1835         * TextReader.cs: Implemented Synchronized method.
1836
1837 2003-04-04  Miguel de Icaza  <miguel@ximian.com>
1838
1839         * FileStream.cs (Read, ReadByte, Seek): throw
1840         ObjectDisposedException if the handle has been released.
1841         
1842         (Read): Throw exceptions specified in the spec.
1843
1844         (Read, Write, ReadSegment, WriteSegment): There is no requirement for any
1845         instance methods of FileStream to be thread safe, so remove all
1846         the calls to lock on the object
1847
1848 2003-03-31  Nick Drochak <ndrochak@gol.com>
1849
1850         * Path.cs (GetDirectoryName): Throw proper execption when path is empty.
1851
1852 2003-03-20  Lluis Sanchez Gual <lluis@ideary.com>
1853
1854         * FileNotFoundException.cs: fixed serialization bug.
1855
1856 2003-03-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1857
1858         * StringWriter.cs : don't release internalString on Dispose().
1859
1860 2003-03-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1861
1862         * StreamReader.cs: fixed bug #39280.
1863
1864 2003-03-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1865
1866         * Directory.cs: readded mkdir -p behavior. Thanks to kiwnix for
1867         pointing it out.
1868
1869 2003-03-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1870
1871         * MemoryStream.cs: general fixes and reformatted. Passes all tests in
1872         the new MemoryStreamTest.
1873
1874 2003-03-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1875
1876         * MemoryStream.cs: undo my bogus fix in ToArray. Allow GetBuffer and
1877         ToArray even after closing the stream.
1878
1879 2003-03-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1880
1881         * Directory.cs:
1882         (Move): don't use File.Move.
1883         * DirectoryInfo.cs: fixed Name property.
1884         
1885         Fixes bug #37755.
1886
1887 2003-03-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1888
1889         * DirectoryInfo.cs: changed ToString to match MS behavior.
1890         * Path.cs: further fixes to GetDirectoryName to return null in the
1891         same cases that MS does.
1892
1893         Fixes bug #38387.
1894
1895 2003-03-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1896
1897         * Path.cs: fixed a couple of bugs reported in #35906.
1898
1899 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1900
1901         * Directory.cs: fixed bugs #38939 and #38940. No need for separate
1902         unix/windows/unc shares code paths.
1903
1904 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1905
1906         * File.cs: fix by Elan Feingold <efeingold@mn.rr.com> for
1907         SetCreationTime, SetLastAccessTime and SetLastWriteTime.
1908
1909 2003-02-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1910
1911         * MemoryStream.cs:
1912         (ToArray): return only the portion of the buffer that contains
1913         data, not the whole buffer. (note: this makes XmlDocument.Load work
1914         again with documents that have a <?xml without the 'encoding'
1915         attribute, which makes gtk-sharp generator work again).
1916
1917 2003-02-25  Nick Drochak <ndrochak@gol.com>
1918
1919         * File.cs (GetCreationTime): Throw proper execption when path is not
1920         found.
1921
1922 Tue Feb 25 11:55:35 CET 2003 Paolo Molaro <lupus@ximian.com>
1923
1924         * MemoryStream.cs: make it behave sanely when the stream is
1925         incrementally expanded.
1926
1927 2003-02-21  Dick Porter  <dick@ximian.com>
1928
1929         * FileStream.cs: Use locks around buffer manipulations.  Fixes bug
1930         32344
1931
1932 2003-02-18  Dick Porter  <dick@ximian.com>
1933
1934         * FileStream.cs: Make FileMode.Append work, and check for Seeking
1935         back over old data (undocumented ms behaviour, throws an exception
1936         if you try).  Fixes bug 35975.
1937
1938 2003-02-17  Dick Porter  <dick@ximian.com>
1939
1940         * FileStream.cs: Don't close the handle if the stream doesn't own
1941         it.  Patch from Raymond Penners (raymond@dotsphinx.com), bug
1942         35623.
1943
1944 2003-02-14  Zoltan Varga  <vargaz@freemail.hu>
1945
1946         * FileStream.cs (Write): flush after writing the last segment as well.
1947
1948 2003-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1949
1950         * StringReader.cs:
1951         (ReadLine): fixed the case when the string ends with a '\n'.
1952
1953 2003-02-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1954
1955         * MemoryStream.cs: create the buffer of the specified capacity.
1956
1957 2003-01-31  Patrik Torstensson
1958
1959         * MemoryStream.cs: use BlockCopyInternal instead of Array.Copy, this is
1960         the same way as MS does it (performance improvement)
1961
1962 2003-01-29  Zoltan Varga  <vargaz@freemail.hu>
1963
1964         * Directory.cs (GetFileSystemEntries): moved error handling to the
1965         correct instance of GetFileSystemEntries so all callers can enjoy it.
1966
1967 2003-01-28  Zoltan Varga  <vargaz@freemail.hu>
1968
1969         * File.cs: add error handling to Get...Time methods.
1970
1971 2003-01-26  Zoltan Varga  <vargaz@freemail.hu>
1972
1973         * Directory.cs: fix GetParent so it actually works.
1974
1975 2003-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1976
1977         * Path.cs: fixlet to ChangeExtension for the case when the path is
1978         empty.
1979
1980 2003-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1981
1982         * BufferedStream.cs: don't try to write a 0 sized array on when
1983         flushing the stream.
1984         
1985         Fixes bug #37045.
1986
1987 2003-01-18  Jonathan Pryor <jonpryor@vt.edu>
1988
1989         * FileStream.cs: Add IsAsync property.  (Documented in "C# In A Nutshell".)
1990
1991 2003-01-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1992
1993         * MemoryStream.cs: fixed bug #36319.
1994
1995 2002-12-16  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
1996         
1997         * Directory.cs: Some fixes to SMB shares handling, and not compiling 
1998         with csc, mcs compiles it correctly (mcs bug 35652)
1999
2000 2002-12-14  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
2001
2002         * Directory.cs: Some fixes related to correct some exceptions thrown
2003
2004 2002-12-11  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
2005
2006         * Directory.cs: Some Exceptions added, fixed GetParent(),
2007         CreateDirectory() should work with unix, native windows and
2008         windows samba shares. Converted end-lines from dos-mode to unix-mode
2009
2010 2002-12-08  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
2011
2012         * Directory.cs: CreateDirectory  works now with Absolute paths
2013         too, not only with relative ones.
2014
2015 2002-12-07  Peter Williams  <peterw@ximian.com>
2016
2017         * Directory.cs: Don't use the uninitialized pathsumm here.
2018         Don't try and create "" if we're using an absolute path.
2019
2020 2002-12-07  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
2021
2022         * Directory.cs: Now the creation of a new directory works recursively
2023         it will make parents as needed.
2024
2025 2002-11-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2026
2027         * BufferedStream.cs: applied patch from <carlosga@telefonica.net> that
2028         fixes Flush ().
2029
2030 Tue Nov 19 13:01:22 CET 2002 Paolo Molaro <lupus@ximian.com>
2031
2032         * StreamWriter.cs: output the encoding preamble at the start of a
2033         stream if needed.
2034
2035 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2036
2037         * StreamReader.cs: Changed all Encoding.UTF8 to Encoding.UTF8Unmarked.
2038
2039 2002-11-06  Miguel de Icaza  <miguel@ximian.com>
2040
2041         * StreamWriter.cs: Changed all Encoding.UTF8 to Encoding.UTF8Unmarked.
2042
2043 2002-10-31  Dick Porter  <dick@ximian.com>
2044
2045         * FileStream.cs: Fix buffering properly this time.  Also kludge
2046         around broken pipe errors, treating them as EOF instead of
2047         throwing an IO exception.
2048
2049         * MonoIO.cs: Return the error status in a parameter, as the
2050         GetLastError() value has long since been blown away if we try and
2051         look it up in a subsequent internal call invocation.
2052
2053         * FileSystemInfo.cs: 
2054         * FileInfo.cs: 
2055         * File.cs: 
2056         * Directory.cs: MonoIO methods now have an error parameter
2057
2058 2002-10-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2059
2060         * TextReader.cs: implemented ReadBlock ().
2061
2062 2002-10-30  Miguel de Icaza  <miguel@ximian.com>
2063
2064         * StreamWriter.cs: Ditto for Null stream.
2065
2066         * BinaryReader.cs: Use Unmarked here too.
2067
2068         * BinaryWriter.cs: Use the UTF8Unmarker encoding by default, this
2069         is what .NET does.
2070
2071 2002-10-23  Dick Porter  <dick@ximian.com>
2072
2073         * FileStream.cs: Implemented CanSeek, and used it around all the
2074         calls to MonoIO.Seek.  Fixed buffering in Read() so that it
2075         doesn't block forever on short reads.
2076
2077         * MonoFileType.cs: New enum for GetFileType
2078         
2079         * MonoIO.cs: Added GetFileType
2080
2081 2002-10-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2082
2083         * StreamReader.cs: ReadLine now treats a \r not followed by a \n as a
2084         \n (this is what MS does).
2085
2086 2002-10-18  Dick Porter  <dick@ximian.com>
2087
2088         * FileStream.cs: SeekOrigin.End still calculates the offset from
2089         the end of the file with positive values extending the length.
2090         Fixes bug 32471.
2091
2092 2002-10-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2093
2094         * Path.cs: some cleanup. Thanks to Martin Aliger.
2095
2096 2002-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2097
2098         * FileStream.cs: throw an exception if trying to open a directory.
2099         Thanks to Martin Aliger.
2100
2101 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2102
2103         * Path.cs: fixes bug #28046.
2104
2105 2002-09-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2106
2107         * StreamReader.cs: give more information when wrong parameters passed.
2108
2109 2002-09-21  Miguel de Icaza  <miguel@ximian.com>
2110
2111         * FileStream.cs: Do not call FSync on the file.
2112
2113 2002-09-16  Miguel de Icaza  <miguel@ximian.com>
2114
2115         * TextWriter.cs (Null): The Null field should be an instance of a
2116         TextWriter class that does nothing, so it is an instance of the
2117         NullTextWriter class.
2118
2119 2002-09-16  Nick Drochak  <ndrochak@gol.com>
2120
2121         * MemoryStream.cs (Close): Don't throw an exception if the stream
2122         is already closed.
2123
2124 2002-09-15  Miguel de Icaza  <miguel@ximian.com>
2125
2126         * FileStream.cs (Dispose): Call FlushBuffer(), and not Flush, as
2127         Flush calls fsync().  
2128
2129         The API docs show no explicit mention that Flush() should even do
2130         an fsync, I am thinking that we should drop that from the
2131         runtime. 
2132
2133 2002-09-09  Miguel de Icaza  <miguel@ximian.com>
2134
2135         * StreamWriter.cs: When no encoding is provided, create an
2136         encoding without markers, this is what MS does.
2137
2138 2002-09-06  Miguel de Icaza  <miguel@ximian.com>
2139
2140         * StreamReader.cs: Implement detection of byte marks and skipping
2141         of byte marks at the beginning of the stream.
2142
2143         (ReadToEnd): Use buffered read instead of char-by-char
2144         processing. 
2145
2146         Correct the default arguments for creating the StreamReader.
2147
2148 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2149
2150         * CheckArgument.cs: fixed check for empty string.
2151         * Path.cs: various fixes. It passes all the tests in new PathTest.
2152
2153 2002-08-29  Duncan Mak  <duncan@ximian.com>
2154
2155         * StreamWriter.cs: Set DisposedAlready after calling flush. Fixes
2156         the build for gtk#.
2157
2158 2002-08-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2159
2160         * BinaryReader.cs:
2161         * BinaryWriter.cs:
2162         * MemoryStream.cs:
2163         * StreamReader.cs:
2164         * StreamWriter.cs:
2165         * StringReader.cs:
2166         * StringWriter.cs:
2167         * TextWriter.cs: IDisposable fixes.
2168
2169 2002-08-24  Miguel de Icaza  <miguel@ximian.com>
2170
2171         * StreamReader.cs: Removed TODOs, as the code seems to be
2172         complete. 
2173
2174         * Path.cs (GetTempFileName): Make this routine atomic by not
2175         testing and then creating, but using the create call to ensure
2176         that we own the filename.
2177
2178 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2179
2180         * FileLoadException.cs: implemented ToString.
2181
2182         * StreamWriter.cs: added Null field and implemented Write (char) and
2183         Write (char []).
2184
2185 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2186
2187         * StreamReader.cs: implemented NullStreamReader.
2188
2189 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
2190
2191         * Path.cs (GetDirectoryName): Fix for filenames with size = 1
2192
2193         * File.cs: Removed all references that threw exceptions when the
2194         paths contains a colon, as this is a valid part of an identifier
2195         on Unix.
2196
2197         Everywhere: The String.Empty return from GetDirectoryName means
2198         that there is no directory information about the path.
2199
2200 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2201
2202         * FileNotFoundException.cs: use Message and InnerException from base
2203         class. Changed Message and ToString ().
2204
2205 2002-08-19  Dick Porter  <dick@ximian.com>
2206
2207         * BinaryWriter.cs: The length of a string is counted in bytes, not
2208         chars
2209
2210 2002-08-18  Dick Porter  <dick@ximian.com>
2211
2212         * BinaryReader.cs: Fixed buffering
2213
2214 2002-08-09  Nick Drochak  <ndrochak@gol.com>
2215
2216         * BinaryReader.cs: added virtual to Dispose(bool).
2217
2218 2002-08-03  Jason Diamond  <jason@injektilo.org>
2219
2220         * StringWriter.cs: Return UnicodeEncoding for Encoding property.
2221
2222 2002-08-03  Jason Diamond  <jason@injektilo.org>
2223
2224         * StreamWriter.cs: Use GetByteCount() to get exact length instead
2225         of GetMaxByteCount when converting chars to bytes.
2226
2227 2002-07-31  Duncan Mak  <duncan@ximian.com>
2228
2229         * StreamReader.cs: 
2230         (Dispose): Added and implmented.
2231
2232         * StreamWriter.cs: 
2233         (Dispose): Fixed visibility.
2234         (Initialize): Fixed visibility, made internal.
2235
2236         * BinaryReader.cs:
2237         (Dispose): Fixed visibility.
2238
2239 2002-07-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2240
2241         * File.cs:
2242         (Create): allow file names without path.
2243
2244 Fri Jul 26 15:45:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
2245
2246         * FileStream.cs: patch from erik@bagfors.nu to add
2247         Name property support.
2248
2249 2002-07-20  Dick Porter  <dick@ximian.com>
2250
2251         * MonoIO.cs: Added icall to CreatePipe
2252
2253 2002-07-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2254
2255         * FileInfo.cs: fixes buglet #27940
2256
2257 2002-07-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2258
2259         * Path.cs: removed unneeded line from GetExtension.
2260
2261 2002-07-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2262
2263         * FileStream.cs:
2264         (.ctor): call MonoIO.GetException with the file name.
2265
2266 2002-07-02  Mike Kestner  <mkestner@speakeasy.net>
2267
2268         * StreamReader.cs: Guard against ^\n lines as pointed out by Gonzalo.
2269
2270 2002-07-02  Mike Kestner  <mkestner@speakeasy.net>
2271
2272         * StreamReader.cs: Revert the last Peek change and fix the ReadLine
2273         end of line detection code instead.
2274
2275 2002-07-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2276
2277         * StreamReader.cs:
2278         (Peek): no need to have seek capabilitites. 
2279
2280 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
2281
2282         * Path.cs (ChangeExtension): handle some special cases (fixes bug #25319)
2283
2284         * File.cs (Delete): only call Directory.Exists() if DirName != ""
2285
2286 2002-06-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2287
2288         * Directory.cs: fixed bug #26133 and also test if the directory exist
2289         before performing the search.
2290
2291 2002-06-12  Nick Drochak  <ndrochak@gol.com>
2292
2293         * StringReader.cs (ReadLine): Return null when we get to end of the
2294         string.
2295
2296 2002-05-22  Lawrence Pit  <loz@cable.a2000.nl>
2297
2298         * StreamWriter.cs: added ability to write null value
2299         
2300 2002-05-19  Lawrence Pit  <loz@cable.a2000.nl>
2301
2302         * Stream.cs: NullStream.ReadByte now returns -1 instead of 0 to
2303         prevent endless loops.
2304
2305 2002-05-17  Dan Lewis  <dihlewis@yahoo.co.uk>
2306
2307         * FileStream.cs: Enforce lower bound on buffer size.
2308
2309 2002-05-16  Piers Haken <piersh@friskit.com>
2310
2311         * Stream.cs: Implement synchronous {Begin|End}{Read|Write}() methods.
2312
2313 2002-05-17  Nick Drochak  <ndrochak@gol.com>
2314
2315         * StreamWriter.cs: Implement buffering.  Also implemented dispose
2316         pattern as recommended by the MS docs.  Must call Close() now
2317         to ensure the buffer is flushed.
2318
2319 2002-05-15  Nick Drochak  <ndrochak@gol.com>
2320
2321         * Path.cs (GetDirectoryName): Return String.Empty if there is no
2322         directory
2323
2324         * StreamReader.cs: Add some parameter checking on file names.
2325
2326         * StreamWriter.cs: Add some parameter checking on file names.
2327
2328 2002-05-14 Nick Drochak  <ndrochak@gol.com>
2329
2330         * File.cs: Add parameter checks to most methods. Not completely done,
2331         but all current unit tests pass.
2332
2333         * Path.cs: Implement GetTempFileName().
2334
2335 2002-05-10  Nick Drochak  <ndrochak@gol.com>
2336
2337         * StreamWriter.cs (Flush): Throw proper exception if internal stream
2338         has already been closed when we try to flush.
2339
2340 2002/05/10  Nick Drochak <ndrochak@gol.com>
2341
2342         * FileNotFoundException.cs (ToString): Don't try to use the inner
2343         exception, because it might be null.  Use the message instead.
2344
2345 2002-05-09  Nick Drochak  <ndrochak@gol.com>
2346
2347         * File.cs (Delete): Do not throw an exception if the file does not
2348         exist.
2349
2350 2002-05-08  Mike Gray     <mikeg@mikegray.org>
2351
2352         * File.cs: According to ECMA spec and MS docs Copy(src, dest)
2353         should not overwrite dest by default.
2354
2355 2002-05-08  Nick Drochak  <ndrochak@gol.com>
2356
2357         * StreamWriter.cs: Add paramter check to constructors and throw
2358         exceptions where appropriate.
2359
2360 Tue May 7 11:47:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
2361
2362         * StreamReader.cs: return the number of chars read even if we diddn't
2363         fill the whole buffer (makes Sergey's ilasm work with mono).
2364
2365 2002-05-07  Mike Gray     <mikeg_us@hotmail.com> 
2366
2367         * FileInfo.cs (Create): Implement missing method.
2368
2369 2002-05-07  Mike Gray     <mikeg_us@hotmail.com>
2370
2371         * File.cs: Implemented CreateText method, and fixed dst compares
2372         to compare against "" instead of null twice.
2373
2374 2002-05-05  Nick Drochak  <ndrochak@gol.com>
2375
2376         * StreamReader.cs: Throw exceptions where needed. Changed Null field to
2377         use new internal class since null cannot be passed to constructor 
2378         anymore. Also, fix a coule of small bugs.
2379
2380 2002-05-03  Nick Drochak  <ndrochak@gol.com>
2381
2382         * MemoryStream.cs: Refrain from allocating array until the space is
2383         really needed. This fixes a bug in the Length property when the
2384         constructor without the byte array is used.
2385
2386 2002-05-01  Duncan Mak  <duncan@ximian.com>
2387
2388         * DirectoryNotFoundException.cs (constructor): Added missing
2389         serialization constructor.
2390
2391 2002-04-30  Duncan Mak  <duncan@ximian.com>
2392
2393         * FileLoadException.cs (constructors): Added missing (string,
2394         string) ctor, as well as (string, string, Exception) ctor.
2395
2396         (Message): Added more info to the error message
2397
2398         (ToString): Added. We'll need to add the StackTrace stuff when
2399         that works.
2400
2401         * FileShare.cs: Add a missing field, Inheritable.
2402         
2403         * TextReader.cs: Renamed Synchronised method to Synchronized.
2404
2405         * TextWriter.cs: Renamed Synchronised method to Synchronized.
2406         Renamed protected member coreNewLine to CoreNewLine.
2407
2408 2002-04-30  Sergey Chaban  <serge@wildwestsoftware.com>
2409
2410         * BinaryReader.cs: Allocate buffer before its first use.
2411         Handle end of stream properly. Methods to read native types
2412         (ReadInt* etc.) are little-endian (see Compact Framework docs).
2413
2414         * BinaryWriter.cs: Store data in little-endian format.
2415         Use internal buffer for conversions.
2416
2417 2002-03-31  Dick Porter  <dick@ximian.com>
2418
2419         * Directory.cs: Strip out "." and ".." from returned list
2420
2421         * FileAttributes.cs: Get the right enum values
2422
2423 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
2424
2425         * TextWriter.cs (write): added check for null
2426
2427 2002-03-28  Dan Lewis  <dihlewis@yahoo.co.uk>
2428
2429         * Directory.cs: Throws DirectoryNotFoundException.
2430         * MonoIO.cs: Fixed to work around enum problem.
2431
2432 2002-03-27  Dan Lewis  <dihlewis@yahoo.co.uk>
2433
2434         * StreamReader.cs: Implemented ReadLine() and ReadEnd().
2435
2436 2002-03-27  Dan Lewis  <dihlewis@yahoo.co.uk>
2437
2438         * Directory.cs, File.cs, FileSystemInfo.cs, FileInfo.cs,
2439         DirectoryInfo.cs, Path.cs: Modified to use MonoIO class instead of
2440         wrapper and PAL classes.
2441
2442         * MonoIO.cs, MonoIOStat.cs, MonoIOError.cs: Added.
2443
2444 2002-03-25  Mike Kestner <mkestner@speakeasy.net>
2445
2446         * MemoryStream.cs (Read): Fixed bug in exception throw.
2447
2448 2002-03-24  Mike Kestner <mkestner@speakeasy.net>
2449
2450         * StreamReader.cs (ReadBuffer): Fix buffer merging bugs.
2451
2452 2002-03-23  Martin Baulig  <martin@gnome.org>
2453
2454         * StreamReader.cs: Always do buffered reading, use 4k blocks.
2455         (Read (char[], int, int)): Implemented.
2456         (DiscardBufferedData): Implemented.
2457
2458 2002-03-21  Mike Kestner <mkestner@speakeasy.net>
2459
2460         * StreamReader.cs : Fill out, add buffering, and use encoding.
2461
2462 2002-03-19  Martin Baulig  <martin@gnome.org>
2463
2464         * StreamWriter.cs (StreamWriter (string)): The default is to override
2465         the file, not to append to it.
2466         (StreamWriter (string path, bool append)): When appending, seek to the
2467         end of the file, otherwise truncate the file to zero length.
2468         (Dispose (bool)): Close the internalStream.
2469         (Flush): Flush the interalStream.
2470         (Write (char[], int, int)): Flush the internalStream in auto-flush-mode.
2471
2472 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
2473
2474         * FileStream.cs: Flush buffer before FileSetLength.
2475
2476 2002-02-28  Miguel de Icaza  <miguel@ximian.com>
2477
2478         * Stream.cs (NullStream): Do not track position, this beast does
2479         nothing in practice.
2480
2481 2002-03-15  Dan Lewis <dihlewis@yahoo.co.uk>
2482
2483         * SearchPattern.cs: New class. Glob matching code for Directory.
2484         * Directory.cs: Changed to use SearchPattern instead of mono_glob_*()
2485
2486 2002/03/15 Nick Drochak <ndrochak@gol.com>
2487
2488         * DirectoryInfo.cs: Fixed the overloaded GetDirectories and GetFiles.
2489         This code seemed to be copied from somewhere, and it was close,
2490         but didn't match the docs.  This was the last bit needed to get
2491         NAnt to compile with our class libs.
2492
2493 2002-03-12  Duncan Mak  <duncan@ximian.com>
2494
2495         * EndOfStreamException.cs:
2496         * FileLoadException.cs:
2497         * FileNotFoundException.cs:
2498         * PathTooLongException.cs: Changed the base classes to IOException
2499         instead of SystemException.
2500
2501         * IOException.cs: Added missing constructors.
2502         
2503 2002-03-07  Nick Drochak  <ndrochak@gol.com>
2504
2505         * FileMode.cs: Docs don't say this should be explicitly derived from
2506         int, so just make it a normal Enum.
2507
2508 2002-03-02  Jason Diamond  <jason@injektilo.org>
2509
2510         * StringReader.cs: Fixed off-by-one error in Peek() and Read().
2511
2512 2002-02-12  Nick Drochak  <ndrochak@gol.com>
2513
2514         * PathTooLongException.cs: put it in the correct namespace
2515         * EndOfStreamException.cs: put it in the correct namespace
2516
2517 Thu Jan 31 17:32:32 CET 2002 Paolo Molaro <lupus@ximian.com>
2518
2519         * Directory.cs: handle opendir() return NULL and absolute filenames.
2520
2521 2002-01-31  Duncan Mak  <duncan@ximian.com>
2522
2523         * FileLoadException.cs:
2524         * FileNotFoundException: Added missing bits for serialization.
2525
2526 Thu Jan 24 17:42:54 CET 2002 Paolo Molaro <lupus@ximian.com>
2527
2528         * Directory.cs: allow directories in GetFiles() mask.
2529
2530 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
2531
2532         * FileInfo.c (CopyTo, MoveTo): Implement.
2533
2534         * FileStream.cs: Add argument checking to the constructor.
2535
2536         * File.cs: Rewrote most of the file.  Implement Copy, Open, Create,
2537         OpenText, OpenWrite, Move.  Made pending methods flagged as MonoTODO. 
2538         
2539         * Directory.cs (Delete): reimplement without using DirectoryInfo.
2540         (Delete): Implement the recursive version.
2541         (GetCreationTime, GetLastWriteTime, GetLastAccessTime): Implement.
2542         (Move): Reimplement.
2543         (getNames): dead code removal.
2544
2545         * Path.cs: define an internal DirectorySeparatorStr that we use in
2546         a few spots.
2547
2548         * Wrapper.cs: Updated to new version.
2549         
2550         * DirectoryInfo (Delete): Implement using the Directory API.
2551
2552         * DirectoryInfo.cs (GetFiles, GetDirectories, GetFileSystemInfos,
2553         Delete, Create, Parent, Exists, MoveTo): Implement. 
2554
2555         * Directory.cs (GetListing): implement new utility function.
2556         (GetDirectories): Implement.
2557         (GetFileSystemEntries): Implement.
2558         (GetFiles): Implement.
2559
2560         * CheckArgument.cs (Path): Do not allow null by default.
2561
2562 Tue Jan 22 22:53:23 CET 2002 Paolo Molaro <lupus@ximian.com>
2563
2564         * DirectoryInfo.cs, FileInfo.cs: do not use Debug from the system
2565         assembly in corlib.
2566
2567 2002-01-20 Nick Drochak  <ndrochak@gol.com>
2568
2569         * SeekOrigin.cs: Added Serializable attribute.
2570
2571 2002-01-19  Duncan Mak  <duncan@ximian.com>
2572
2573         * PathTooLongException.cs: 
2574         * EndOfStreamException.cs: Added to CVS.
2575
2576 Thu Jan 10 12:06:46 MST 2002 Matt Kimball <matt@kimball.net>
2577
2578         * BufferedStream.cs: Initial implemenation.  The synchronous
2579         methods for both reading and writing are implemented.  I'll do the
2580         asynchronous methods in a bit.
2581         
2582 Wed Jan  9 16:04:39 MST 2002 Matt Kimball <matt@kimball.net>
2583
2584         * BinaryWriter.cs: Initial implementation.  And it's all there.
2585
2586         * BinaryReader.cs: The constructor now uses the passed in encoding,
2587         not UTF8 always.
2588
2589 Wed Jan  9 13:54:28 MST 2002 Matt Kimball <matt@kimbal.net>
2590
2591         * BinaryReader.cs: Initial implementation.  I think it's complete.
2592
2593 2002-01-04  Ravi Pratap  <ravi@ximian.com>
2594
2595         * CheckArgument.cs, CheckPermission.cs, Directory.cs: MonoTODO
2596         attribute decorations.
2597
2598         * DirectoryInfo.cs, File.cs, FileInfo.cs, FileSystemInfo.cs,
2599         Path.cs, TextReader.cs, TextWriter.cs : Ditto.
2600
2601         * FileLoadException.cs, FileNotFoundException.cs, StreamReader.cs: 
2602         Ditto.
2603
2604 2001-12-11  Dick Porter  <dick@ximian.com>
2605
2606         * FileStream.cs: Use handles rather than casting file descriptors.
2607         Added Handle property.
2608
2609 Wed Nov 14 16:47:47 CET 2001 Paolo Molaro <lupus@ximian.com>
2610
2611         * CheckPermission.cs: disable ModeAccess() code: it's wrong.
2612         * FileStream.cs: only trow an exception if the read failed in ReadByte().
2613         * StreamReader.cs: implement Peek and Read.
2614         * TextWriter.cs: CLSCompliant updates.
2615
2616 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
2617
2618         * FileNotFoundException.cs: Added some constructors
2619
2620         * Path.cs (GetFullPath): Fixed implementation
2621
2622 Fri Nov 2 18:27:58 CET 2001 Paolo Molaro <lupus@ximian.com>
2623
2624         * DirectoryNotFoundException.cs: implemented.
2625
2626 Tue Sep 25 18:54:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
2627
2628         * File.cs: fix signatures of the Open() and OpenRead() functions
2629         (they are static).
2630
2631 Thu Sep 13 18:04:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
2632
2633         * FileLoadException.cs, FileNotFoundException.cs: added.
2634
2635 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
2636
2637         * TextReader.cs: implemented the Read method
2638
2639         * StreamReader.cs: impl. stubs
2640
2641         * StreamWriter.cs: impl.
2642
2643         * TextWriter.cs: implemented Write and WriteLine methods
2644
2645 Sun Aug 26 23:01:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
2646
2647         * FileAccess.cs, FileMode.cs: change values to be compatible with
2648         the ms ones.
2649         
2650 Sun Aug 26 11:47:56 CEST 2001 Paolo Molaro <lupus@ximian.com>
2651
2652         * IOException.cs: Implemented System.IO.Exception.
2653
2654 2001-07-18  Michael Lambert <michaellambert@email.com>
2655
2656         *SeekOrigin.cs.cs, FileShare.cs, FileMode.cs, FileAccess.cs: Add.
2657
2658 2001-07-19  Marcin Szczepanski <marcins@zipworld.com.au>
2659
2660         * System.IO.MemoryStream.cs: Added.  Had quite a few cases of
2661         "LAMESPEC", but the tests work against the MS implementation so
2662         the major functions are right (ie. Read/Write/Seek).  Some more
2663         tests required for the various constructors and exceptions.
2664
2665 2001-07-16  Marcin Szczepanski <marcins@zipworld.com.au>
2666
2667         * StringReader.cs, StringWriter.cs, TextReader.cs, TextWriter.cs:
2668         New class implemenations.
2669
2670         * StringReaderTest.cs, StringWriterTest.cs: Test suite for the above.