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