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