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