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