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