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