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