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