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