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