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