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