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