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