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