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