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