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