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