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