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