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