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