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