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