2004-01-10 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / corlib / System.IO / ChangeLog
1 2004-01-10  Atsushi Enomoto <atsushi@ximian.com>
2
3         * Path.cs : GetDirectoryName ("c:\readme.txt") should return "c:\"
4           instead of "c:" . This fixed bug #52735.
5
6 2004-01-04  Nick Drochak <ndrochak@gol.com>
7
8         * Path.cs: Remove defined but unused variable, and also got rid of
9         some unreachable code.  Eliminates some build warnings.
10
11 2003-12-28 Ben Maurer  <bmaurer@users.sourceforge.net>
12
13         * BinaryWriter.cs: use one encoding buffer for writing
14         strings rather than allocting one/string. HUGE perf
15         boost when writing many strings.
16
17 2003-12-25  Atsushi Enomoto <atsushi@ximian.com>
18
19         * Path.cs : Fixed GetFullPath() (and CanonicalizePath()), 
20           HasExtension(), GetPathRoot() and IsPathRooted() to fit with tests.
21
22 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
23
24         * FileStream.cs: (.ctor) do not set handle
25         in object until after it is validated via
26         GetFileType so finalizer doesn't see bad handles and
27         initialize this.handle to InvalidHandle
28
29 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
30
31         * MonoIO.cs: SetFileTime() Failed Open returns InvalidHandle
32         not Zero
33
34 2003-12-17  Atsushi Enomoto <atsushi@ximian.com>
35
36         * Directory.cs : SetCurrentDirectory() should raise errors for
37           some kind of arguments.
38
39 2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
40
41         * Path.cs: GetTempPath () ends with DirectorySeparatorChar. Fixes bug
42         #52056.
43
44 2003-12-06  Ravindra  <rkumar@novell.com>
45         *MonoIO.cs: Added a new exception case. It is thrown 
46         when a directory creation is attempted with a name that
47         is already used by an existing file.
48
49 2003-11-28  Dick Porter  <dick@ximian.com>
50
51         * Path.cs: Use the char form of LastIndexOf, so that the
52         comparison is done with the Invariant culture.
53
54 2003-11-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
55
56         * Directory.cs: provide the path when getting the IOException.
57
58 2003-11-18  John Luke  <jluke@cfl.rr.com>
59
60         * CheckArgument.cs:
61         (PathLength): fix recursion found by JonK
62         
63 2003-11-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
64
65         * Directory.cs:
66         (GetCurrentDirectory):
67         (SetCurrentDirectory): moved here from Environment. Handle error cases.
68
69         * MonoIO.cs: add path to the default error message.
70
71 2003-11-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
72
73         * StringReader.cs: fixed ReadLine for some cases where there are mixed
74         '\r' and '\n'. Closes bug #51020.
75
76 2003-11-14 Ben Maurer  <bmaurer@users.sourceforge.net>
77
78         * MemoryStream.cs (.ctor): We need to check if buffer is null
79         before we get the Length of it.
80
81 2003-11-14  Miguel de Icaza  <miguel@ximian.com>
82
83         * StreamReader.cs, TextReader, StreamReader (Read): Add [Out]
84
85 2003-11-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
86
87         * Directory.cs: allow directory names without wildcards in the pattern.
88         Fixes bug #3 50969.
89
90         * SearchPattern.cs: made InvalidChars and WildcardChars internal.
91
92 2003-11-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
93
94         * FileStream.cs: use the argument name when throwing exception.
95
96         * StreamReader.cs:
97         * StringReader.cs:
98         * TextReader.cs: added [In] attribute for the array in Read.
99
100 2003-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
101
102         * DirectoryInfo.cs: fixed ToString. Closes bug #50842.
103
104 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
105
106         * Directory.cs: Adjust for missing PlatformID.Unix.
107
108 2003-10-28  Miguel de Icaza  <miguel@ximian.com>
109
110         * StreamReader.cs: Add checks for disposed stream from bug report
111         #48696 (Patrik Reali)
112
113         * TextReader.cs (Read): Return the total number of bytes read, 
114         patch from Patrik Realli.
115
116 2003-10-20  Miguel de Icaza  <miguel@ximian.com>
117
118         * FileStream.cs public FileStream (string name, FileMode mode)
119         constructor: If we pass FileMode.Append, we can not pass
120         FileAccess.ReadWrite.  This fixes bug 44959
121
122 2003-09-26  Miguel de Icaza  <miguel@ximian.com>
123
124         * BufferedStream.cs (Write): Use CanWrite in Write.  Patch from
125         Francisco Figueiredo Jr.
126
127 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
128
129         * BinaryReader.cs: return the correct number of bytes read when there
130         are some bytes from peeking.
131
132 2003-09-11  Lluis Sanchez Gual  <lluis@ximian.com>
133
134         * BufferedStream.cs, FileStream.cs, MemoryStream.cs, Stream.cs:
135           Added [In,Out] attributes to Read method.
136
137 2003-08-05  Martin Baulig  <martin@ximian.com>
138
139         * StreamReader.cs (DiscardBufferedData): Do the same like on the
140         ms runtime: just discard the buffered data, but don't modify the
141         BaseStream.Position.
142
143 2003-08-04  Martin Baulig  <martin@ximian.com>
144
145         * StreamReader.cs (DiscardBufferedData): Implemented.
146
147 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
148
149         * IntPtrStream.cs (Read): Use correct offset here;  Change the
150         code to use a byte* instead of an IntPtr to reduce the number of
151         casts used. 
152
153         (Read): Use Marshal.Copy instead of the now
154         deprecated MemCopy.
155
156         (IntPtrStream): New stream implementation, it maps to a region in
157         memory.
158
159 2003-07-23  Duncan Mak  <duncan@ximian.com>
160
161         * StreamReader.cs (Initialize): This method is not exposed in the
162         API, mark as internal.
163
164 Fri Jul 18 14:42:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
165
166         * MonoIO.cs: 64bit fix from Bernie Solomon <bernard@ugsolutions.com>.
167
168 2003-07-16  Dick Porter  <dick@ximian.com>
169
170         * FileInfo.cs: Update path info when a file is moved.  Patch by
171         John Luke <jluke@cfl.rr.com>, fixes bug 44253.
172
173 2003-07-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
174
175         * MemoryStream.cs: fixed bug #46060. Thanks to Carlos Barcenilla.
176
177 2003-06-30  Zoltan Varga  <vargaz@freemail.hu>
178
179         * FileStream.cs (Dispose): Flush the buffer even if we don't own the
180         handle.
181         * FileStream.cs: Add a new constructor parameter to turn off buffering.
182         This is used by the Console.OpenStandard...() methods. Also fix
183         argument checking in InitBuffer(), so a zero buffer size is also 
184         rejected.
185
186 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
187
188         * Stream.cs: use async.delegate invoke 
189
190 2003-06-18  Nick Drochak <ndrochak@gol.com>
191
192         * FileSystemInfo.cs: Refresh cache when changeing file times.
193
194 2003-06-11  Zoltan Varga  <vargaz@freemail.hu>
195
196         * FileStream.cs: Fix errors in previous checkins:
197         (Write): Only take the shortcut route if the data is longer than the
198         buffer length.
199         (Write): Flush the buffer before writing out the new data
200         (Write): Flush the buffer after writing out a segment since otherwise
201         we will go into an infinite loop.
202         (FlushBuffer): Remove my last change since it was clearly wrong.
203         (Seek): Run FlushBuffer () after the in-buffer seek optimization.
204         (Seek): Only use the in-buffer optimization if the buffer is not
205         empty.
206         (Length): Call FlushBuffer () since buffer data might change the size
207         of the stream.
208
209 2003-06-09  Ville Palo <vi64pa@kolumbus.fi>
210
211         * FileStream.cs:
212         - removed unusefull bugfix (DirectoryNotFoundException)
213         - Flush before seek.
214         
215 2003-06-09  Ville Palo <vi64pa@kolumbus.fi>
216
217         * FileStream.cs: Check buffer size before append/read -exceptios
218         
219 2003-06-09  Ville Palo <vi64pa@kolumbus.fi>
220
221         * FileStream.cs: Check DirectoryNotFound before FileNotFound.
222         
223 2003-06-09  Ville Palo <vi64pa@kolumbus.fi>
224
225         * FileStream.cs: Does not anymore flush while writing
226         
227 2003-06-02  Nick Drochak <ndrochak@gol.com>
228
229         * FileInfo.cs (MoveTo): Throw exceptions when dest exists, and check
230         for null too.
231
232 2003-05-27  Lluis Sanchez Gual <lluis@ximian.com>
233
234         * BinaryReader.cs: Stream don't need to be seekable to use PeekChar.
235
236 2003-05-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
237
238         * Path.cs: fixed bug #42631.
239
240 2003-05-22  Zoltan Varga  <vargaz@freemail.hu>
241
242         * File.cs (Move): Allow moving of directories.
243         Fix 'destination is a directory' test.
244
245 2003-05-21  Ben Maurer  <bmaurer@users.sourceforge.net>
246
247         * StringWriter.cs: Fixed bug #43431: "StringWriter
248         .ctor(CultureInfo) does not create a new StringBuilder ()"
249
250 2003-05-11  Zoltan Varga  <vargaz@freemail.hu>
251
252         * FileStream.cs (FlushBuffer): After a flush, the buffer is
253         advanced by buf_offset bytes, not buf_length bytes.
254
255 2003-05-16  Dick Porter  <dick@ximian.com>
256
257         * MonoIO.cs: Implement GetTempPath
258
259 2003-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
260
261         * DirectoryInfo.cs: fixed bug #42991.
262         * Path.cs:
263         (CanonicalizePath): store the value of the trimmed input string. Make it
264         work with paths such as "/home/xxx/.".
265
266 2003-05-08  Ben Maurer <bmaurer@users.sourceforge.net>
267         * Path.cs 
268         (CanonicalizePath) Fixed bug #42631, which duplicated the
269         root part of the path under Windows.
270
271 2003-05-08  Ville Palo <vi64pa@kolumbus.fi>
272
273         * FileSystemInfo.cs: Added 1.1 properties LastAccessTimeUtc, 
274         LastWriteTimeUtc and CreationTimeUtc
275         
276 2003-05-07  Ben Maurer <bmaurer@users.sourceforge.net>
277         * Path.cs 
278         (GetPathRoot) Added support for UNC paths.
279         (CanonicalizePath) Added optimizations per Miguel's requests.
280
281 2003-05-06  Ville Palo <vi64pa@kolumbus.fi>
282
283         * BufferedStream.cs: 
284           - Removed unusefull code.
285           - Added ObjectDisposedException to Position
286           - Dont flush if stream is allready closed.
287           - Flush throws also ObjectDisposedException.
288         * Directory.cs:
289           - GetFileSystemEtries: ArgumentNullException if pattern is null
290         * DirectoryInfo.cs: Fixed little MoveTo () bug.
291         * FileInfo.cs:
292           - Exists: If file does not exists when instance is created the
293           value of the Exists property does not change even if file is created
294           afterwards.
295           - Delete: If path is a directory UnauthorizedException is thrown.
296           - CopyTo: Now we can overwrite file if wanted.
297         * Path.cs: 
298           - GetFullPath: Now throws exception when path is "   ".
299         
300 2003-05-04  Ben Maurer <bmaurer@users.sourceforge.net>
301         * Directory.cs (GetLogicalDrives) Marked as MonoTODO
302         because we need to implement the method on Windows.
303         * Path.cs 
304         (CanonicalizePath) Added new function to get
305         rid of . and .. in path names. Need to figure out what
306         other functions should call this.
307         (GetFullPath) Added call to the above function.
308         
309 2003-05-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
310
311         * StreamReader.cs:
312         (.ctor): fixed parameters passed to FileNotFoundException.
313
314 2003-04-25  Dietmar Maurer  <dietmar@ximian.com>
315
316         * BinaryReader.cs (Read): make sure the buffer is big enough (fix
317         bug # 40702)
318
319 2003-04-24  Pedro Martinez Julia  <yoros@wanadoo.es>
320
321         * BufferedStream.cs: Test if it's possible to seek in a Stream
322         before access to Position. This prevents the exception thrown when
323         the stream is System.Net.Sockets.NetworkStream.
324
325 2003-04-22  Ville Palo <vi64pa@kolumbus.fi>
326
327         * Directory.cs: clean up --> performance improvment. Some exceptions
328         are now checked in File.cs.
329         * File.cs: Implemented Get/SetXXXTimeUtc () methods. Some bugfixes.
330         
331 2003-04-21  Ville Palo <vi64pa@kolumbus.fi>
332
333         * Directory.cs: lots of fixes. 
334           - Added GetXXXtimeUtc () (v1.1) methods.
335           - Added SetXXXtimeUtc () (v1.1) methods.      
336         
337 2003-04-20  Igor Nosyryev <nosyryev@attbi.com>
338
339         * StringReader.cs (Read): Increment nextChar by charsToRead
340         instead of count, that will guarantee that the next time the
341         method is called, it will return 0 on an empty string rather than
342         throwing an exception
343
344 2003-04-19  Ville Palo <vi64pa@kolumbus.fi>
345
346         * BufferedStream.cs: Some fixes, mostly throwing exceptions.
347         * MemoryStream.cs: Changed the order of exception checking
348         * StringReader.cs: little clean up
349         
350 2003-04-14  Ville Palo <vi64pa@kolumbus.fi>
351
352         * BinaryWriter.cs: Fixed decimal writing and lots of 
353         ObjectDisposedExceptions added.
354         
355 2003-04-13  Ville Palo <vi64pa@kolumbus.fi>
356
357         * BinaryReader.cs: Fix to ReadDecimal() method.
358         
359 2003-04-13  Ville Palo <vi64pa@kolumbus.fi>
360
361         * StringReader.cs: Added some ObjectDisposedExceptions.
362         * StringWriter.cs: Added some ObjectDisposedExceptions.
363         * BinaryReader.cs: Added some ObjectDisposedExceptions.
364         
365 2003-04-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
366
367         * FileStream.cs: fixed the windows build. This is an mcs bug. I'll
368         fill a bug report.
369
370 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
371
372         * FileStream.cs: fixed bug #40182 and made more unit test pass.
373
374 2003-04-11  Ville Palo <vi64pa@kolumbus.fi>
375
376         * FileStream.cs: Added new methods Lock () and Unlock ()
377         
378 2003-04-11  Ville Palo <vi64pa@kolumbus.fi>
379
380         * StringReader.cs: Throws exceptions if constructor parameter is null.
381         
382 2003-04-11  Ville Palo <vi64pa@kolumbus.fi>
383
384         * StringWriter.cs: Now throws an exception if StringBuilder parameter
385         is null
386         
387 2003-04-05  Miguel de Icaza  <miguel@ximian.com>
388
389         * TextWriter.cs: Implemented Synchronized method.
390
391         * TextReader.cs: Implemented Synchronized method.
392
393 2003-04-04  Miguel de Icaza  <miguel@ximian.com>
394
395         * FileStream.cs (Read, ReadByte, Seek): throw
396         ObjectDisposedException if the handle has been released.
397         
398         (Read): Throw exceptions specified in the spec.
399
400         (Read, Write, ReadSegment, WriteSegment): There is no requirement for any
401         instance methods of FileStream to be thread safe, so remove all
402         the calls to lock on the object
403
404 2003-03-31  Nick Drochak <ndrochak@gol.com>
405
406         * Path.cs (GetDirectoryName): Throw proper execption when path is empty.
407
408 2003-03-20  Lluis Sanchez Gual <lluis@ideary.com>
409
410         * FileNotFoundException.cs: fixed serialization bug.
411
412 2003-03-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
413
414         * StringWriter.cs : don't release internalString on Dispose().
415
416 2003-03-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
417
418         * StreamReader.cs: fixed bug #39280.
419
420 2003-03-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
421
422         * Directory.cs: readded mkdir -p behavior. Thanks to kiwnix for
423         pointing it out.
424
425 2003-03-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
426
427         * MemoryStream.cs: general fixes and reformatted. Passes all tests in
428         the new MemoryStreamTest.
429
430 2003-03-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
431
432         * MemoryStream.cs: undo my bogus fix in ToArray. Allow GetBuffer and
433         ToArray even after closing the stream.
434
435 2003-03-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
436
437         * Directory.cs:
438         (Move): don't use File.Move.
439         * DirectoryInfo.cs: fixed Name property.
440         
441         Fixes bug #37755.
442
443 2003-03-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
444
445         * DirectoryInfo.cs: changed ToString to match MS behavior.
446         * Path.cs: further fixes to GetDirectoryName to return null in the
447         same cases that MS does.
448
449         Fixes bug #38387.
450
451 2003-03-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
452
453         * Path.cs: fixed a couple of bugs reported in #35906.
454
455 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
456
457         * Directory.cs: fixed bugs #38939 and #38940. No need for separate
458         unix/windows/unc shares code paths.
459
460 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
461
462         * File.cs: fix by Elan Feingold <efeingold@mn.rr.com> for
463         SetCreationTime, SetLastAccessTime and SetLastWriteTime.
464
465 2003-02-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
466
467         * MemoryStream.cs:
468         (ToArray): return only the portion of the buffer that contains
469         data, not the whole buffer. (note: this makes XmlDocument.Load work
470         again with documents that have a <?xml without the 'encoding'
471         attribute, which makes gtk-sharp generator work again).
472
473 2003-02-25  Nick Drochak <ndrochak@gol.com>
474
475         * File.cs (GetCreationTime): Throw proper execption when path is not
476         found.
477
478 Tue Feb 25 11:55:35 CET 2003 Paolo Molaro <lupus@ximian.com>
479
480         * MemoryStream.cs: make it behave sanely when the stream is
481         incrementally expanded.
482
483 2003-02-21  Dick Porter  <dick@ximian.com>
484
485         * FileStream.cs: Use locks around buffer manipulations.  Fixes bug
486         32344
487
488 2003-02-18  Dick Porter  <dick@ximian.com>
489
490         * FileStream.cs: Make FileMode.Append work, and check for Seeking
491         back over old data (undocumented ms behaviour, throws an exception
492         if you try).  Fixes bug 35975.
493
494 2003-02-17  Dick Porter  <dick@ximian.com>
495
496         * FileStream.cs: Don't close the handle if the stream doesn't own
497         it.  Patch from Raymond Penners (raymond@dotsphinx.com), bug
498         35623.
499
500 2003-02-14  Zoltan Varga  <vargaz@freemail.hu>
501
502         * FileStream.cs (Write): flush after writing the last segment as well.
503
504 2003-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
505
506         * StringReader.cs:
507         (ReadLine): fixed the case when the string ends with a '\n'.
508
509 2003-02-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
510
511         * MemoryStream.cs: create the buffer of the specified capacity.
512
513 2003-01-31  Patrik Torstensson
514
515         * MemoryStream.cs: use BlockCopyInternal instead of Array.Copy, this is
516         the same way as MS does it (performance improvement)
517
518 2003-01-29  Zoltan Varga  <vargaz@freemail.hu>
519
520         * Directory.cs (GetFileSystemEntries): moved error handling to the
521         correct instance of GetFileSystemEntries so all callers can enjoy it.
522
523 2003-01-28  Zoltan Varga  <vargaz@freemail.hu>
524
525         * File.cs: add error handling to Get...Time methods.
526
527 2003-01-26  Zoltan Varga  <vargaz@freemail.hu>
528
529         * Directory.cs: fix GetParent so it actually works.
530
531 2003-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
532
533         * Path.cs: fixlet to ChangeExtension for the case when the path is
534         empty.
535
536 2003-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
537
538         * BufferedStream.cs: don't try to write a 0 sized array on when
539         flushing the stream.
540         
541         Fixes bug #37045.
542
543 2003-01-18  Jonathan Pryor <jonpryor@vt.edu>
544
545         * FileStream.cs: Add IsAsync property.  (Documented in "C# In A Nutshell".)
546
547 2003-01-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
548
549         * MemoryStream.cs: fixed bug #36319.
550
551 2002-12-16  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
552         
553         * Directory.cs: Some fixes to SMB shares handling, and not compiling 
554         with csc, mcs compiles it correctly (mcs bug 35652)
555
556 2002-12-14  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
557
558         * Directory.cs: Some fixes related to correct some exceptions thrown
559
560 2002-12-11  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
561
562         * Directory.cs: Some Exceptions added, fixed GetParent(),
563         CreateDirectory() should work with unix, native windows and
564         windows samba shares. Converted end-lines from dos-mode to unix-mode
565
566 2002-12-08  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
567
568         * Directory.cs: CreateDirectory  works now with Absolute paths
569         too, not only with relative ones.
570
571 2002-12-07  Peter Williams  <peterw@ximian.com>
572
573         * Directory.cs: Don't use the uninitialized pathsumm here.
574         Don't try and create "" if we're using an absolute path.
575
576 2002-12-07  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
577
578         * Directory.cs: Now the creation of a new directory works recursively
579         it will make parents as needed.
580
581 2002-11-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
582
583         * BufferedStream.cs: applied patch from <carlosga@telefonica.net> that
584         fixes Flush ().
585
586 Tue Nov 19 13:01:22 CET 2002 Paolo Molaro <lupus@ximian.com>
587
588         * StreamWriter.cs: output the encoding preamble at the start of a
589         stream if needed.
590
591 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
592
593         * StreamReader.cs: Changed all Encoding.UTF8 to Encoding.UTF8Unmarked.
594
595 2002-11-06  Miguel de Icaza  <miguel@ximian.com>
596
597         * StreamWriter.cs: Changed all Encoding.UTF8 to Encoding.UTF8Unmarked.
598
599 2002-10-31  Dick Porter  <dick@ximian.com>
600
601         * FileStream.cs: Fix buffering properly this time.  Also kludge
602         around broken pipe errors, treating them as EOF instead of
603         throwing an IO exception.
604
605         * MonoIO.cs: Return the error status in a parameter, as the
606         GetLastError() value has long since been blown away if we try and
607         look it up in a subsequent internal call invocation.
608
609         * FileSystemInfo.cs: 
610         * FileInfo.cs: 
611         * File.cs: 
612         * Directory.cs: MonoIO methods now have an error parameter
613
614 2002-10-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
615
616         * TextReader.cs: implemented ReadBlock ().
617
618 2002-10-30  Miguel de Icaza  <miguel@ximian.com>
619
620         * StreamWriter.cs: Ditto for Null stream.
621
622         * BinaryReader.cs: Use Unmarked here too.
623
624         * BinaryWriter.cs: Use the UTF8Unmarker encoding by default, this
625         is what .NET does.
626
627 2002-10-23  Dick Porter  <dick@ximian.com>
628
629         * FileStream.cs: Implemented CanSeek, and used it around all the
630         calls to MonoIO.Seek.  Fixed buffering in Read() so that it
631         doesn't block forever on short reads.
632
633         * MonoFileType.cs: New enum for GetFileType
634         
635         * MonoIO.cs: Added GetFileType
636
637 2002-10-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
638
639         * StreamReader.cs: ReadLine now treats a \r not followed by a \n as a
640         \n (this is what MS does).
641
642 2002-10-18  Dick Porter  <dick@ximian.com>
643
644         * FileStream.cs: SeekOrigin.End still calculates the offset from
645         the end of the file with positive values extending the length.
646         Fixes bug 32471.
647
648 2002-10-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
649
650         * Path.cs: some cleanup. Thanks to Martin Aliger.
651
652 2002-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
653
654         * FileStream.cs: throw an exception if trying to open a directory.
655         Thanks to Martin Aliger.
656
657 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
658
659         * Path.cs: fixes bug #28046.
660
661 2002-09-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
662
663         * StreamReader.cs: give more information when wrong parameters passed.
664
665 2002-09-21  Miguel de Icaza  <miguel@ximian.com>
666
667         * FileStream.cs: Do not call FSync on the file.
668
669 2002-09-16  Miguel de Icaza  <miguel@ximian.com>
670
671         * TextWriter.cs (Null): The Null field should be an instance of a
672         TextWriter class that does nothing, so it is an instance of the
673         NullTextWriter class.
674
675 2002-09-16  Nick Drochak  <ndrochak@gol.com>
676
677         * MemoryStream.cs (Close): Don't throw an exception if the stream
678         is already closed.
679
680 2002-09-15  Miguel de Icaza  <miguel@ximian.com>
681
682         * FileStream.cs (Dispose): Call FlushBuffer(), and not Flush, as
683         Flush calls fsync().  
684
685         The API docs show no explicit mention that Flush() should even do
686         an fsync, I am thinking that we should drop that from the
687         runtime. 
688
689 2002-09-09  Miguel de Icaza  <miguel@ximian.com>
690
691         * StreamWriter.cs: When no encoding is provided, create an
692         encoding without markers, this is what MS does.
693
694 2002-09-06  Miguel de Icaza  <miguel@ximian.com>
695
696         * StreamReader.cs: Implement detection of byte marks and skipping
697         of byte marks at the beginning of the stream.
698
699         (ReadToEnd): Use buffered read instead of char-by-char
700         processing. 
701
702         Correct the default arguments for creating the StreamReader.
703
704 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
705
706         * CheckArgument.cs: fixed check for empty string.
707         * Path.cs: various fixes. It passes all the tests in new PathTest.
708
709 2002-08-29  Duncan Mak  <duncan@ximian.com>
710
711         * StreamWriter.cs: Set DisposedAlready after calling flush. Fixes
712         the build for gtk#.
713
714 2002-08-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
715
716         * BinaryReader.cs:
717         * BinaryWriter.cs:
718         * MemoryStream.cs:
719         * StreamReader.cs:
720         * StreamWriter.cs:
721         * StringReader.cs:
722         * StringWriter.cs:
723         * TextWriter.cs: IDisposable fixes.
724
725 2002-08-24  Miguel de Icaza  <miguel@ximian.com>
726
727         * StreamReader.cs: Removed TODOs, as the code seems to be
728         complete. 
729
730         * Path.cs (GetTempFileName): Make this routine atomic by not
731         testing and then creating, but using the create call to ensure
732         that we own the filename.
733
734 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
735
736         * FileLoadException.cs: implemented ToString.
737
738         * StreamWriter.cs: added Null field and implemented Write (char) and
739         Write (char []).
740
741 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
742
743         * StreamReader.cs: implemented NullStreamReader.
744
745 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
746
747         * Path.cs (GetDirectoryName): Fix for filenames with size = 1
748
749         * File.cs: Removed all references that threw exceptions when the
750         paths contains a colon, as this is a valid part of an identifier
751         on Unix.
752
753         Everywhere: The String.Empty return from GetDirectoryName means
754         that there is no directory information about the path.
755
756 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
757
758         * FileNotFoundException.cs: use Message and InnerException from base
759         class. Changed Message and ToString ().
760
761 2002-08-19  Dick Porter  <dick@ximian.com>
762
763         * BinaryWriter.cs: The length of a string is counted in bytes, not
764         chars
765
766 2002-08-18  Dick Porter  <dick@ximian.com>
767
768         * BinaryReader.cs: Fixed buffering
769
770 2002-08-09  Nick Drochak  <ndrochak@gol.com>
771
772         * BinaryReader.cs: added virtual to Dispose(bool).
773
774 2002-08-03  Jason Diamond  <jason@injektilo.org>
775
776         * StringWriter.cs: Return UnicodeEncoding for Encoding property.
777
778 2002-08-03  Jason Diamond  <jason@injektilo.org>
779
780         * StreamWriter.cs: Use GetByteCount() to get exact length instead
781         of GetMaxByteCount when converting chars to bytes.
782
783 2002-07-31  Duncan Mak  <duncan@ximian.com>
784
785         * StreamReader.cs: 
786         (Dispose): Added and implmented.
787
788         * StreamWriter.cs: 
789         (Dispose): Fixed visibility.
790         (Initialize): Fixed visibility, made internal.
791
792         * BinaryReader.cs:
793         (Dispose): Fixed visibility.
794
795 2002-07-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
796
797         * File.cs:
798         (Create): allow file names without path.
799
800 Fri Jul 26 15:45:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
801
802         * FileStream.cs: patch from erik@bagfors.nu to add
803         Name property support.
804
805 2002-07-20  Dick Porter  <dick@ximian.com>
806
807         * MonoIO.cs: Added icall to CreatePipe
808
809 2002-07-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
810
811         * FileInfo.cs: fixes buglet #27940
812
813 2002-07-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
814
815         * Path.cs: removed unneeded line from GetExtension.
816
817 2002-07-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
818
819         * FileStream.cs:
820         (.ctor): call MonoIO.GetException with the file name.
821
822 2002-07-02  Mike Kestner  <mkestner@speakeasy.net>
823
824         * StreamReader.cs: Guard against ^\n lines as pointed out by Gonzalo.
825
826 2002-07-02  Mike Kestner  <mkestner@speakeasy.net>
827
828         * StreamReader.cs: Revert the last Peek change and fix the ReadLine
829         end of line detection code instead.
830
831 2002-07-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
832
833         * StreamReader.cs:
834         (Peek): no need to have seek capabilitites. 
835
836 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
837
838         * Path.cs (ChangeExtension): handle some special cases (fixes bug #25319)
839
840         * File.cs (Delete): only call Directory.Exists() if DirName != ""
841
842 2002-06-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
843
844         * Directory.cs: fixed bug #26133 and also test if the directory exist
845         before performing the search.
846
847 2002-06-12  Nick Drochak  <ndrochak@gol.com>
848
849         * StringReader.cs (ReadLine): Return null when we get to end of the
850         string.
851
852 2002-05-22  Lawrence Pit  <loz@cable.a2000.nl>
853
854         * StreamWriter.cs: added ability to write null value
855         
856 2002-05-19  Lawrence Pit  <loz@cable.a2000.nl>
857
858         * Stream.cs: NullStream.ReadByte now returns -1 instead of 0 to
859         prevent endless loops.
860
861 2002-05-17  Dan Lewis  <dihlewis@yahoo.co.uk>
862
863         * FileStream.cs: Enforce lower bound on buffer size.
864
865 2002-05-16  Piers Haken <piersh@friskit.com>
866
867         * Stream.cs: Implement synchronous {Begin|End}{Read|Write}() methods.
868
869 2002-05-17  Nick Drochak  <ndrochak@gol.com>
870
871         * StreamWriter.cs: Implement buffering.  Also implemented dispose
872         pattern as recommended by the MS docs.  Must call Close() now
873         to ensure the buffer is flushed.
874
875 2002-05-15  Nick Drochak  <ndrochak@gol.com>
876
877         * Path.cs (GetDirectoryName): Return String.Empty if there is no
878         directory
879
880         * StreamReader.cs: Add some parameter checking on file names.
881
882         * StreamWriter.cs: Add some parameter checking on file names.
883
884 2002-05-14 Nick Drochak  <ndrochak@gol.com>
885
886         * File.cs: Add parameter checks to most methods. Not completely done,
887         but all current unit tests pass.
888
889         * Path.cs: Implement GetTempFileName().
890
891 2002-05-10  Nick Drochak  <ndrochak@gol.com>
892
893         * StreamWriter.cs (Flush): Throw proper exception if internal stream
894         has already been closed when we try to flush.
895
896 2002/05/10  Nick Drochak <ndrochak@gol.com>
897
898         * FileNotFoundException.cs (ToString): Don't try to use the inner
899         exception, because it might be null.  Use the message instead.
900
901 2002-05-09  Nick Drochak  <ndrochak@gol.com>
902
903         * File.cs (Delete): Do not throw an exception if the file does not
904         exist.
905
906 2002-05-08  Mike Gray     <mikeg@mikegray.org>
907
908         * File.cs: According to ECMA spec and MS docs Copy(src, dest)
909         should not overwrite dest by default.
910
911 2002-05-08  Nick Drochak  <ndrochak@gol.com>
912
913         * StreamWriter.cs: Add paramter check to constructors and throw
914         exceptions where appropriate.
915
916 Tue May 7 11:47:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
917
918         * StreamReader.cs: return the number of chars read even if we diddn't
919         fill the whole buffer (makes Sergey's ilasm work with mono).
920
921 2002-05-07  Mike Gray     <mikeg_us@hotmail.com> 
922
923         * FileInfo.cs (Create): Implement missing method.
924
925 2002-05-07  Mike Gray     <mikeg_us@hotmail.com>
926
927         * File.cs: Implemented CreateText method, and fixed dst compares
928         to compare against "" instead of null twice.
929
930 2002-05-05  Nick Drochak  <ndrochak@gol.com>
931
932         * StreamReader.cs: Throw exceptions where needed. Changed Null field to
933         use new internal class since null cannot be passed to constructor 
934         anymore. Also, fix a coule of small bugs.
935
936 2002-05-03  Nick Drochak  <ndrochak@gol.com>
937
938         * MemoryStream.cs: Refrain from allocating array until the space is
939         really needed. This fixes a bug in the Length property when the
940         constructor without the byte array is used.
941
942 2002-05-01  Duncan Mak  <duncan@ximian.com>
943
944         * DirectoryNotFoundException.cs (constructor): Added missing
945         serialization constructor.
946
947 2002-04-30  Duncan Mak  <duncan@ximian.com>
948
949         * FileLoadException.cs (constructors): Added missing (string,
950         string) ctor, as well as (string, string, Exception) ctor.
951
952         (Message): Added more info to the error message
953
954         (ToString): Added. We'll need to add the StackTrace stuff when
955         that works.
956
957         * FileShare.cs: Add a missing field, Inheritable.
958         
959         * TextReader.cs: Renamed Synchronised method to Synchronized.
960
961         * TextWriter.cs: Renamed Synchronised method to Synchronized.
962         Renamed protected member coreNewLine to CoreNewLine.
963
964 2002-04-30  Sergey Chaban  <serge@wildwestsoftware.com>
965
966         * BinaryReader.cs: Allocate buffer before its first use.
967         Handle end of stream properly. Methods to read native types
968         (ReadInt* etc.) are little-endian (see Compact Framework docs).
969
970         * BinaryWriter.cs: Store data in little-endian format.
971         Use internal buffer for conversions.
972
973 2002-03-31  Dick Porter  <dick@ximian.com>
974
975         * Directory.cs: Strip out "." and ".." from returned list
976
977         * FileAttributes.cs: Get the right enum values
978
979 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
980
981         * TextWriter.cs (write): added check for null
982
983 2002-03-28  Dan Lewis  <dihlewis@yahoo.co.uk>
984
985         * Directory.cs: Throws DirectoryNotFoundException.
986         * MonoIO.cs: Fixed to work around enum problem.
987
988 2002-03-27  Dan Lewis  <dihlewis@yahoo.co.uk>
989
990         * StreamReader.cs: Implemented ReadLine() and ReadEnd().
991
992 2002-03-27  Dan Lewis  <dihlewis@yahoo.co.uk>
993
994         * Directory.cs, File.cs, FileSystemInfo.cs, FileInfo.cs,
995         DirectoryInfo.cs, Path.cs: Modified to use MonoIO class instead of
996         wrapper and PAL classes.
997
998         * MonoIO.cs, MonoIOStat.cs, MonoIOError.cs: Added.
999
1000 2002-03-25  Mike Kestner <mkestner@speakeasy.net>
1001
1002         * MemoryStream.cs (Read): Fixed bug in exception throw.
1003
1004 2002-03-24  Mike Kestner <mkestner@speakeasy.net>
1005
1006         * StreamReader.cs (ReadBuffer): Fix buffer merging bugs.
1007
1008 2002-03-23  Martin Baulig  <martin@gnome.org>
1009
1010         * StreamReader.cs: Always do buffered reading, use 4k blocks.
1011         (Read (char[], int, int)): Implemented.
1012         (DiscardBufferedData): Implemented.
1013
1014 2002-03-21  Mike Kestner <mkestner@speakeasy.net>
1015
1016         * StreamReader.cs : Fill out, add buffering, and use encoding.
1017
1018 2002-03-19  Martin Baulig  <martin@gnome.org>
1019
1020         * StreamWriter.cs (StreamWriter (string)): The default is to override
1021         the file, not to append to it.
1022         (StreamWriter (string path, bool append)): When appending, seek to the
1023         end of the file, otherwise truncate the file to zero length.
1024         (Dispose (bool)): Close the internalStream.
1025         (Flush): Flush the interalStream.
1026         (Write (char[], int, int)): Flush the internalStream in auto-flush-mode.
1027
1028 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
1029
1030         * FileStream.cs: Flush buffer before FileSetLength.
1031
1032 2002-02-28  Miguel de Icaza  <miguel@ximian.com>
1033
1034         * Stream.cs (NullStream): Do not track position, this beast does
1035         nothing in practice.
1036
1037 2002-03-15  Dan Lewis <dihlewis@yahoo.co.uk>
1038
1039         * SearchPattern.cs: New class. Glob matching code for Directory.
1040         * Directory.cs: Changed to use SearchPattern instead of mono_glob_*()
1041
1042 2002/03/15 Nick Drochak <ndrochak@gol.com>
1043
1044         * DirectoryInfo.cs: Fixed the overloaded GetDirectories and GetFiles.
1045         This code seemed to be copied from somewhere, and it was close,
1046         but didn't match the docs.  This was the last bit needed to get
1047         NAnt to compile with our class libs.
1048
1049 2002-03-12  Duncan Mak  <duncan@ximian.com>
1050
1051         * EndOfStreamException.cs:
1052         * FileLoadException.cs:
1053         * FileNotFoundException.cs:
1054         * PathTooLongException.cs: Changed the base classes to IOException
1055         instead of SystemException.
1056
1057         * IOException.cs: Added missing constructors.
1058         
1059 2002-03-07  Nick Drochak  <ndrochak@gol.com>
1060
1061         * FileMode.cs: Docs don't say this should be explicitly derived from
1062         int, so just make it a normal Enum.
1063
1064 2002-03-02  Jason Diamond  <jason@injektilo.org>
1065
1066         * StringReader.cs: Fixed off-by-one error in Peek() and Read().
1067
1068 2002-02-12  Nick Drochak  <ndrochak@gol.com>
1069
1070         * PathTooLongException.cs: put it in the correct namespace
1071         * EndOfStreamException.cs: put it in the correct namespace
1072
1073 Thu Jan 31 17:32:32 CET 2002 Paolo Molaro <lupus@ximian.com>
1074
1075         * Directory.cs: handle opendir() return NULL and absolute filenames.
1076
1077 2002-01-31  Duncan Mak  <duncan@ximian.com>
1078
1079         * FileLoadException.cs:
1080         * FileNotFoundException: Added missing bits for serialization.
1081
1082 Thu Jan 24 17:42:54 CET 2002 Paolo Molaro <lupus@ximian.com>
1083
1084         * Directory.cs: allow directories in GetFiles() mask.
1085
1086 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
1087
1088         * FileInfo.c (CopyTo, MoveTo): Implement.
1089
1090         * FileStream.cs: Add argument checking to the constructor.
1091
1092         * File.cs: Rewrote most of the file.  Implement Copy, Open, Create,
1093         OpenText, OpenWrite, Move.  Made pending methods flagged as MonoTODO. 
1094         
1095         * Directory.cs (Delete): reimplement without using DirectoryInfo.
1096         (Delete): Implement the recursive version.
1097         (GetCreationTime, GetLastWriteTime, GetLastAccessTime): Implement.
1098         (Move): Reimplement.
1099         (getNames): dead code removal.
1100
1101         * Path.cs: define an internal DirectorySeparatorStr that we use in
1102         a few spots.
1103
1104         * Wrapper.cs: Updated to new version.
1105         
1106         * DirectoryInfo (Delete): Implement using the Directory API.
1107
1108         * DirectoryInfo.cs (GetFiles, GetDirectories, GetFileSystemInfos,
1109         Delete, Create, Parent, Exists, MoveTo): Implement. 
1110
1111         * Directory.cs (GetListing): implement new utility function.
1112         (GetDirectories): Implement.
1113         (GetFileSystemEntries): Implement.
1114         (GetFiles): Implement.
1115
1116         * CheckArgument.cs (Path): Do not allow null by default.
1117
1118 Tue Jan 22 22:53:23 CET 2002 Paolo Molaro <lupus@ximian.com>
1119
1120         * DirectoryInfo.cs, FileInfo.cs: do not use Debug from the system
1121         assembly in corlib.
1122
1123 2002-01-20 Nick Drochak  <ndrochak@gol.com>
1124
1125         * SeekOrigin.cs: Added Serializable attribute.
1126
1127 2002-01-19  Duncan Mak  <duncan@ximian.com>
1128
1129         * PathTooLongException.cs: 
1130         * EndOfStreamException.cs: Added to CVS.
1131
1132 Thu Jan 10 12:06:46 MST 2002 Matt Kimball <matt@kimball.net>
1133
1134         * BufferedStream.cs: Initial implemenation.  The synchronous
1135         methods for both reading and writing are implemented.  I'll do the
1136         asynchronous methods in a bit.
1137         
1138 Wed Jan  9 16:04:39 MST 2002 Matt Kimball <matt@kimball.net>
1139
1140         * BinaryWriter.cs: Initial implementation.  And it's all there.
1141
1142         * BinaryReader.cs: The constructor now uses the passed in encoding,
1143         not UTF8 always.
1144
1145 Wed Jan  9 13:54:28 MST 2002 Matt Kimball <matt@kimbal.net>
1146
1147         * BinaryReader.cs: Initial implementation.  I think it's complete.
1148
1149 2002-01-04  Ravi Pratap  <ravi@ximian.com>
1150
1151         * CheckArgument.cs, CheckPermission.cs, Directory.cs: MonoTODO
1152         attribute decorations.
1153
1154         * DirectoryInfo.cs, File.cs, FileInfo.cs, FileSystemInfo.cs,
1155         Path.cs, TextReader.cs, TextWriter.cs : Ditto.
1156
1157         * FileLoadException.cs, FileNotFoundException.cs, StreamReader.cs: 
1158         Ditto.
1159
1160 2001-12-11  Dick Porter  <dick@ximian.com>
1161
1162         * FileStream.cs: Use handles rather than casting file descriptors.
1163         Added Handle property.
1164
1165 Wed Nov 14 16:47:47 CET 2001 Paolo Molaro <lupus@ximian.com>
1166
1167         * CheckPermission.cs: disable ModeAccess() code: it's wrong.
1168         * FileStream.cs: only trow an exception if the read failed in ReadByte().
1169         * StreamReader.cs: implement Peek and Read.
1170         * TextWriter.cs: CLSCompliant updates.
1171
1172 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
1173
1174         * FileNotFoundException.cs: Added some constructors
1175
1176         * Path.cs (GetFullPath): Fixed implementation
1177
1178 Fri Nov 2 18:27:58 CET 2001 Paolo Molaro <lupus@ximian.com>
1179
1180         * DirectoryNotFoundException.cs: implemented.
1181
1182 Tue Sep 25 18:54:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
1183
1184         * File.cs: fix signatures of the Open() and OpenRead() functions
1185         (they are static).
1186
1187 Thu Sep 13 18:04:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
1188
1189         * FileLoadException.cs, FileNotFoundException.cs: added.
1190
1191 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
1192
1193         * TextReader.cs: implemented the Read method
1194
1195         * StreamReader.cs: impl. stubs
1196
1197         * StreamWriter.cs: impl.
1198
1199         * TextWriter.cs: implemented Write and WriteLine methods
1200
1201 Sun Aug 26 23:01:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
1202
1203         * FileAccess.cs, FileMode.cs: change values to be compatible with
1204         the ms ones.
1205         
1206 Sun Aug 26 11:47:56 CEST 2001 Paolo Molaro <lupus@ximian.com>
1207
1208         * IOException.cs: Implemented System.IO.Exception.
1209
1210 2001-07-18  Michael Lambert <michaellambert@email.com>
1211
1212         *SeekOrigin.cs.cs, FileShare.cs, FileMode.cs, FileAccess.cs: Add.
1213
1214 2001-07-19  Marcin Szczepanski <marcins@zipworld.com.au>
1215
1216         * System.IO.MemoryStream.cs: Added.  Had quite a few cases of
1217         "LAMESPEC", but the tests work against the MS implementation so
1218         the major functions are right (ie. Read/Write/Seek).  Some more
1219         tests required for the various constructors and exceptions.
1220
1221 2001-07-16  Marcin Szczepanski <marcins@zipworld.com.au>
1222
1223         * StringReader.cs, StringWriter.cs, TextReader.cs, TextWriter.cs:
1224         New class implemenations.
1225
1226         * StringReaderTest.cs, StringWriterTest.cs: Test suite for the above.