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