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