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