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