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