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