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