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