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