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