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