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