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