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