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