2005-04-12 Dick Porter <dick@ximian.com>
[mono.git] / mcs / class / corlib / System.IO / ChangeLog
1 2005-04-09  Miguel de Icaza  <miguel@novell.com>
2
3         * StreamWriter.cs (Initialize): Avoid echoing the preamble to a
4         file if the position of the stream is not at the beginning.  Fixes
5         bug #74513
6
7 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8
9         * FileStream.cs:
10         * MonoIO.cs: remove dead code related to async IO.
11
12 2005-03-24  Sebastien Pouliot  <sebastien@ximian.com>
13
14         * Directory.cs: Added a Demand for Read/Write when creating a new 
15         directory.
16         * FileSystemInfo.cs: Added an InheritanceDemand for Unrestricted on 
17         the class.
18         * Path.cs: Added a Demand for PathDiscovery in GetFullPath method.
19         Added an Assert for unrestricted file access to GetTempFilename as
20         the method must create the (zero-length) file and can be called from
21         partially trusted code. Added a Demand for unrestricted environment
22         access to GetTempPath method.
23         * FileStream.cs: Added a Demand for UnmanagedCode for all constructors
24         accepting a file handle. Added LinkDemand and InheritanceDemand for 
25         UnmanagedCode to get Handle and SafeFileHandle (2.0) properties.
26
27 2005-03-16  Lluis Sanchez Gual  <lluis@novell.com>
28
29         * BinaryReader.cs, BinaryWriter.cs: Read/write dobules, floats and
30         decimals in little endian format.
31
32 2005-03-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
33
34         * MonoIO.cs:
35         * MonoIOError.cs: handle ERROR_LOCK_VIOLATION.
36
37 2005-03-15  Sebastien Pouliot  <sebastien@ximian.com>
38
39         * FileStream.cs: Anonymize part of the path when exceptions are throw
40         by a FileStream is used for isolated storage. Throw a DirectoryNotFound
41         Exception for any FileMode not just CreateNew (see new unit tests).
42
43 2005-03-09  Dick Porter  <dick@ximian.com>
44
45         * MonoIOError.cs: 
46         * MonoIO.cs: Add a few more exception messages
47
48 2005-02-11  Zoltan Varga  <vargaz@freemail.hu>
49
50         * CheckPermission.cs: Fix warning.
51
52 2005-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
53
54         * File.cs: Exists does not throw when there are invalid characters in
55         the file name.
56         * MonoIOError.cs: uncommented INVALID_NAME.
57
58         Patch by Gert Driesen.
59
60 2005-01-31  Sebastien Pouliot  <sebastien@ximian.com>
61
62         * FileStream.cs: Added new constructor to allow anonymous files (i.e.
63         when Name property is "[Unknown]") for IsolatedStorage. Added
64         SafeFileHandle property and a reference to Microsoft.Win32.SafeHandles
65         for the NET_2_0 profile.
66
67 2005-01-28  Sebastien Pouliot  <sebastien@ximian.com>
68
69         * FileNotFoundException.cs, FileLoadException.cs: Fixed bad "if ();".
70
71 2005-01-27  Sebastien Pouliot  <sebastien@ximian.com>
72
73         * FileNotFoundException.cs, FileLoadException.cs: Protect the fusion
74         (GAC) log from being disclosed unless code has ControlPolicy and 
75         ControlEvidence. Added missing HResult value. Fixed Message property 
76         to match MS results. Changed ToString to use a StringBuilder.
77
78 2005-01-24  Sebastien Pouliot  <sebastien@ximian.com>
79
80         * Directory.cs: Added CAS security to Get|SetCurrentDirectory to 
81         complete Environment security checks.
82
83 2004-12-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
84
85         * BufferedStream.cs: use Buffer.BlockCopyInternal instead of Array.Copy.
86
87 2004-12-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
88
89         * File.cs: delegate to the runtime the task of checking for destination
90         file existence in Move.
91
92 2004-12-11  Ben Maurer  <bmaurer@ximian.com>
93
94         * BinaryReader.cs (ReadByte): Check for exceptions here.
95
96 2004-12-06  Atsushi Enomoto  <atsushi@ximian.com>
97
98         * TextWriter.cs : create CoreNewLine in another .ctor().
99
100 2004-12-05  Ben Maurer  <bmaurer@ximian.com>
101
102         * TextWriter.cs (WriteLine): Use CoreNewLine so that this does
103         not make a string out of the array every time it is called.
104
105         Thanks to Atsushi for the idea.
106
107 2004-12-04  Ben Maurer  <bmaurer@ximian.com>
108
109         * DirectoryInfo.cs (CreateSubDirectory): Check the input here.
110         
111         * FileSystemInfo.cs (CheckPath): Empty paths are invalid.
112
113 2004-11-19  Dick Porter  <dick@ximian.com>
114
115         * MonoIOError.cs: 
116         * MonoIO.cs: Add a proper message for sharing violation
117
118 2004-11-01  Ben Maurer  <bmaurer@ximian.com>
119
120         * MonoIOError.cs: All of these fields just take up room in corlib,
121         bloating things up. To make it worse, we need to malloc data at
122         runtime about them. Since most are not used, am commenting them
123         out
124
125 2004-09-19  Dick Porter  <dick@ximian.com>
126
127         * UnexceptionalStreamWriter.cs: 
128         * UnexceptionalStreamReader.cs: Wrappers around StreamWriter and
129         StreamReader that catch IOException.  Used by System.Console so
130         that graphical applications dont get IO errors when their
131         stdin/out/err vanishes (ie when they spew debug output.)
132
133 2004-09-12 Ben Maurer  <bmaurer@ximian.com>
134
135         * BinaryReader.cs: Use ReadByte when possible. Gives a tad
136         of perf, and fixes a bug reported on mono-patches-list
137
138 2004-09-08  Miguel de Icaza  <miguel@ximian.com>
139
140         * File.cs: Added Gettextification, provide a better error message
141         for #62112
142
143 2004-09-08  Marek Safar  <marek.safar@seznam.cz>
144
145         * Directory.cs,
146         * File.cs: Class is static for NET_2_0.
147
148 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
149
150         * MemoryStream.cs (SetLength): Use Array.Clear here
151
152 2004-09-05 Ben Maurer  <bmaurer@users.sourceforge.net>
153
154         * Path.cs (Combine): Array.IndexOf is slow (because of the
155         special cases it must handle). So, rather than doing IndexOf
156         just check each type of seperator.
157
158 2004-09-05 Ben Maurer  <bmaurer@users.sourceforge.net>
159
160         * StringReader.cs (StreamReader): remove sourceChars and disposed
161         variables
162         (Read): Copy directly from the string, rather than a char []
163         (Dispose, CheckObjectDisposedException): the flag for being
164         disposed is now source == null.
165
166 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
167
168         * Stream.cs: Close() does not call Flush(). Fixes bug #65340.
169
170 2004-08-26 Ben Maurer  <bmaurer@users.sourceforge.net>
171
172         * StreamWriter.cs: avoid String.ToCharArray for perf.
173
174 2004-08-18  Dick Porter  <dick@ximian.com>
175
176         * StreamWriter.cs: Flush the buffer if AutoFlush is set to true.
177         Fixes bug 63063, patch by Laurent Debacker (debackerl@yahoo.com).
178
179 2004-08-13  Dick Porter  <dick@ximian.com>
180
181         * StreamWriter.cs: Allow FileShare.Read access to the underlying
182         FileStream, to be compatible with MS.  Fixes bug 62152.
183
184 2004-07-06  Dick Porter  <dick@ximian.com>
185
186         * MonoIO.cs: Add ERROR_INVALID_PARAMETER to the exception list.
187         Don't blow away the SetFileTime() error before the caller gets to
188         see it.  Part of the bug fix to 60970.
189
190 2004-07-05  Dick Porter  <dick@ximian.com>
191
192         * CheckPermission.cs:
193         * File.cs:
194         * FileInfo.cs:
195         * MonoIO.cs:
196         * FileStream.cs: Give the filename when throwing
197         FileNotFoundException.  Fixes bug 61120, based on patch from
198         Carlos Alberto Cesario <carloscesario@gmail.com>.
199
200 2004-07-05  Dick Porter  <dick@ximian.com>
201
202         * File.cs: File.Move() should check that the destination doesn't
203         already exist.  Fixes bug 60915, patch based on one from Carlos
204         Alberto Cesario <carloscesario@gmail.com>.
205
206 2004-06-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
207
208         * Directory.cs: implemented GetLogicalDrives.
209
210 2004-06-24  Lluis Sanchez Gual  <lluis@novell.com>
211
212         * StreamReader.cs: In DiscardBufferedData(), reset the mayBlock flag.
213
214 2004-06-21  Atsushi Enomoto  <atsushi@ximian.com>
215
216         * FileStream.cs :
217           .ctor() should block write access when created with FileAccess.Write.
218
219 2004-06-21  Atsushi Enomoto  <atsushi@ximian.com>
220
221         * FileStream.cs : Check buffer size before creating file.
222         * StreamReader.cs : Check encoding!=null before creating file.
223         * File.cs,
224           MonoIO.cs : Convert DateTime to FileTime after checking
225           file IO sharing violation (it just fixes the type of exception).
226
227 2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>
228
229         * MemoryStream.cs: added TODO for serialization
230         * StringWriter.cs: added TODO for serialization
231
232 2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>
233
234         * TextWriter.cs: fixed CoreNewLine to return char[]
235
236 2004-06-14  Dick Porter  <dick@ximian.com>
237
238         * Directory.cs:
239         * File.cs: Catch PATH_NOT_FOUND errors in Exists() too.  Fixes bug
240         59354.
241
242 2004-06-09  Duncan Mak  <duncan@ximian.com>
243
244         * BufferedStream.cs (SetLength): Add checks and throw the
245         appropriate Exceptions here instead.
246
247         * FileStream.cs (SetLength): Revert part of my last patch, we're
248         throwing ObjectDisposedException instead of IOException again.
249
250 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
251
252         * FileStream.cs: re-enabled ignoring broken pipe errors when reading.
253         Fixes bug #59639.
254
255 2004-06-08  Duncan Mak  <duncan@ximian.com>
256
257         * Directory.cs (IsRootDirectory): New helper method for
258         determining if a path is the root directory. Handles both Unix as
259         well as Windows.
260         (GetParent): Use IsRootDirectory for the check.
261
262 2004-06-08  Duncan Mak  <duncan@ximian.com>
263
264         * File.cs: Fix line endings, took out ^Ms.
265
266         * Directory.cs (GetParent): Return null if the specified path is
267         the root directory.
268
269         * StreamReader.cs (StreamReader):
270         (Initialize): Add a check that buffer_size must not be less than
271         or equal to zero.
272
273 2004-06-07  Duncan Mak  <duncan@ximian.com>
274
275         * FileStream.cs (SetLength): The other exceptions have precendence
276         over ObjectDisposedException, which is not one of the exceptions
277         listed in the documentation). Also, instead of throwing an
278         ObjectDisposedException, throw an IOException.
279
280 2004-06-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
281
282         * BufferedStream.cs: fixed typo that prevented Read() from working.
283         This went out with beta 2. Closes bug #59534.
284
285 2004-05-31  Atsushi Enomoto  <atsushi@ximian.com>
286
287         * Directory.cs, File.cs : Fixed Exists() that raised 
288           DirectoryNotFoundException. Quick fix for bug #59354.
289
290 2004-05-30  Sebastien Pouliot  <sebastien@ximian.com>
291
292         * BinaryReader.cs: Added missing disposed check for most methods. 
293         Reordered some exceptions to match MS implementation. 
294         * BufferedStream.cs: Fixed Seek logic (check for CanSeek and dispose).
295         SetLength must also reset Position and check for dispose.
296         * FileStream.cs: Added missing check for invalid SeekOrigin. Added
297         missing validations.
298
299 2004-05-27  Dick Porter  <dick@ximian.com>
300
301         * FileSystemInfo.cs: Take out the error checking in Refresh(), it
302         broke other stuff
303         
304 2004-05-27  Dick Porter  <dick@ximian.com>
305
306         * MonoIO.cs: Define icalls for Lock() and Unlock()
307         
308         * FileStream.cs: Implement Lock() and Unlock().  Also improve IO
309         error reporting.
310
311         * FileSystemInfo.cs:
312         * File.cs:
313         * Directory.cs: Improve IO error reporting
314
315 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
316
317         * FileStream.cs: delay seeking to the end when FileMode.Append is
318         specified until after buffer initialization. Fixes bug #59151.
319
320 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
321
322         * BufferedStream.cs: Added globalization and fixed exceptions and 
323         possible integer overflow.
324         * FileStream.cs: Fixed possible integer overflow.
325         * MemoryStream.cs: Fixed possible integer overflow.
326         * StringReader.cs: Fixed possible integer overflow.
327         * TextWriter.cs: Fixed possible integer overflow.
328
329 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
330
331         * FileInfo.cs,
332           DirectoryInfo.cs : ToString() should return constructor arg as is.
333           This fixes bug #58804.
334
335 2004-05-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
336
337         * Directory.cs: ERROR_FILE_NOT_FOUND in FindFirstFile means there are
338         no files, but the directory was found. Fixes bug #58875.
339
340 2004-05-24  Duncan Mak  <duncan@ximian.com>
341
342         * StreamWriter.cs (Close): Remember to set the 'closed' flag.
343
344         * DirectoryInfo.cs: 
345         * FileInfo.cs: Reformat the whole file to use DOS line endings.
346         (MoveTo): Return if the destination of Move is the
347         same as the file's current location.
348
349 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
350
351         * MemoryStream.cs: Fixed exception reporting to match MS Fx. Fixed the
352         condition to allow zeroization of existing data when we shrink the 
353         stream.
354         * StreamReader.cs: Add checks for null encoding. Fixed possible integer
355         overflow and ArgumentNullException in Read.
356         * StreamWriter.cs: Add dispose check to Write(char) and Write(char[]),
357         AutoFlush. Fixed possible integer overflow in Write(char[],int,int).
358         * StringWriter.cs: Fixed possible integer overflow in Write. Changed
359         spaces for tabs.
360
361 2004-05-22  Duncan Mak  <duncan@ximian.com>
362
363         * Directory.cs: Reformat the whole file to use Unix line endings
364         for consistency.
365         (GetFileSystemEntries): If pattern is String.Empty, always
366         return an empty string array. Throw the ArgumentException if path
367         is an empty string (determined using the new helper method)
368         (IsEmptyString): Returns true on an empty string or a string with
369         only whitespace characters.
370
371         * Path.cs (GetPathRoot): Throw an ArgumentException if the path
372         argument is String.Empty.
373
374 2004-05-20  Jackson Harper  <jackson@ximian.com>
375
376         * DirectoryInfo.cs: Create subdirectories correctly if more then
377         one is supplied.
378         
379 2004-05-16  Atsushi Enomoto  <atsushi@ximian.com>
380
381         * DirectoryInfo.cs: Fixed ToString() as well as FileInfo.
382
383 2004-05-16  Atsushi Enomoto  <atsushi@ximian.com>
384
385         * FileInfo.cs: ToString() returns not full path but just the file name.
386
387 2004-05-14  Marek Safar  <marek.safar@seznam.cz>
388
389         * TextWriter.cs: Removed useless [CLSCompliant (false)]
390
391 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
392
393         * Directory.cs: use the real wildcard for file names as it is supported
394         now in io-layer. SearhPattern is not needed now.
395
396 2004-04-30 Ben Maurer  <bmaurer@users.sourceforge.net>
397
398         * BinaryWriter.cs, Stream.cs: ensure we have beforefieldinit.
399
400 2004-04-29 Ben Maurer  <bmaurer@users.sourceforge.net>
401
402         * Path.cs: readonlyificate.
403
404 2004-04-29 Ben Maurer  <bmaurer@users.sourceforge.net>
405
406         * FileStream.cs: constify.
407
408 2004-04-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
409
410         * SearchPattern.cs: Call invariant String.ToLower
411
412 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
413
414         * FileStreamAsyncResult.cs: invoke the callback if set as completed
415         before the asynchronous stuff jumps in.
416
417 2004-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
418
419         * FileStream.cs: only pass the async flag set to true when opening the
420         file and AIO is supported by the underlying system. Fixes bug #56883.
421
422 2004-04-12  Gert Driesen (drieseng@users.sourceforge.net)
423
424         * FileSystemInfo.cs: Implemented ISerializable, corrected COM 
425         visibility of UTC properties
426
427 2004-04-01  Lluis Sanchez Gual  <lluis@ximian.com>
428
429         * BufferedStream.cs: On Position change, do not reset the buffer if the
430         new position is in the limits of the buffer. This fixes #49403.
431
432 2003-04-03  Atsushi Enomoto <atsushi@ximian.com>
433
434         * Path.cs : ChangeExtension() does not remove dot(.) when extension is
435           an empty string.
436
437 2004-04-01  Lluis Sanchez Gual  <lluis@ximian.com>
438
439         * FileSystemInfo.cs: Added InternalRefresh, a virtual method that derived
440           classes can override to perform class specific refreshing.
441         * FileInfo.cs: Refresh existence flag when Refresh is called.
442         * TextWriter.cs: Applied patch by Benjamin Jemlich for bug #52512.
443           The method Write(char) should do nothing by default.
444
445 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
446
447         * BinaryReader.cs: don't modify the underlying stream in Peek(). Fixes
448         bug #51741. Patch by Nick Vaughan.
449
450 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
451
452         * FileStream.cs: ReadByte(): when buffering is disabled, read the byte
453         with a direct call to ReadData. In InitBuffer(), if buffering is
454         disabled, create a buffer of one byte, to be used in ReadByte.  This
455         fixes bug #52361.
456
457 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
458
459         * Path.cs: In GetDirectoryName, fixed check for volumeSeparator. This
460           fixes bug #53892.
461
462 2004-03-24  Lluis Sanchez Gual  <lluis@ximian.com>
463
464         * File.cs: In Move, throw IOException instead of ArgumentException if 
465           destination is a directory.
466         * MonoIO.cs: In ExistsDirectory, return ERROR_PATH_NOT_FOUND instead of
467         ERROR_FILE_NOT_FOUND, since we are looking for a directory, not a file.
468         
469 2004-03-15  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
470
471         * StreamWriter.cs: Removed unneeded function
472
473 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
474
475         * FileStream.cs: added support for asynchronous I/O without using the
476         OS native libraries if available.
477
478         * FileStreamAsyncResult.cs: IAsyncResult for asynch. I/O.
479
480         * MonoIO.cs: added BeginRead/Write, GetSupportsAsync. Open has now a
481         new parameter to tell ifthe file will be used for asynch operations.
482
483         * Stream.cs: BeginRead/Write do not use delegates. They just are
484         actually synchronous.
485
486         * StreamAsyncResult.cs: IAsyncResult for Stream.
487
488 2004-03-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
489
490         * Directory.cs: check if the error returned in Exists is different
491         from 'path not found' and throw the appropiate exception in that case.
492         See #55160.
493
494 2004-03-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
495
496         * MonoIO.cs: added case for ERROR_FILENAME_EXCED_RANGE.
497
498 2004-02-25  Jackson Harper <jackson@ximian.com>
499
500         * File.cs: Report the filename when deleting a file fails. Patch
501         by Gert Driesen. Fixes bug #54855.
502         
503 2004-02-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
504
505         * FileStream.cs: remove dangling ^Ms.
506
507 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
508
509         * FileStream.cs: (.ctor) Path.DirectoryName can be empty and make
510         Path.GetFullPath crash. Fixed it.
511
512         * MonoIO.cs: fixed typo.
513
514 2004-02-13  Jackson Harper  <jackson@ximian.com>
515
516         * FileStream.cs: Throw some more exceptions for invalid
517         params. Fixes some unit test failures.
518         * BufferedStream.cs: If the stream is closed (can't read from it
519         or write to it) throw an ObjectDisposedException.
520         
521 Tue Jan 20 23:10:22 CET 2004 Paolo Molaro <lupus@ximian.com>
522
523         * StreamWriter.cs, TextWriter.cs: comply with the documented
524         behaviour and use a decode buffer to improve performance.
525
526 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
527
528         * Path.cs: now Path.GetFullPath ("/") returns "/" instead of "".
529
530 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
531
532         * Path.cs: add the trailing directory separator only for volumes.
533         Fixes bug #53035.
534
535 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
536
537         * IntPtrStream.cs: Fix build bustage.
538         
539         * IntPtrStream.cs: Add a 'Closed' event. Also throw exceptions after
540         the stream is closed.
541
542 2004-01-18 Ben Maurer  <bmaurer@users.sourceforge.net>
543
544         * FileStream.cs: Locking from bug #32344 removed. This is not
545         necessary because the correct fix was actually in the console.
546         This fixes bug #53026. Miguel de Icaza reviewed/approved this
547         patch.
548
549 2004-01-14  Zoltan Varga  <vargaz@freemail.hu>
550
551         * FileStream.cs (.ctor): Avoid allocating a large buffer when reading
552         from small files.
553
554 2004-01-10  Atsushi Enomoto <atsushi@ximian.com>
555
556         * Path.cs : GetDirectoryName ("c:\readme.txt") should return "c:\"
557           instead of "c:" . This fixed bug #52735.
558
559 2004-01-04  Nick Drochak <ndrochak@gol.com>
560
561         * Path.cs: Remove defined but unused variable, and also got rid of
562         some unreachable code.  Eliminates some build warnings.
563
564 2003-12-28 Ben Maurer  <bmaurer@users.sourceforge.net>
565
566         * BinaryWriter.cs: use one encoding buffer for writing
567         strings rather than allocting one/string. HUGE perf
568         boost when writing many strings.
569
570 2003-12-25  Atsushi Enomoto <atsushi@ximian.com>
571
572         * Path.cs : Fixed GetFullPath() (and CanonicalizePath()), 
573           HasExtension(), GetPathRoot() and IsPathRooted() to fit with tests.
574
575 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
576
577         * FileStream.cs: (.ctor) do not set handle
578         in object until after it is validated via
579         GetFileType so finalizer doesn't see bad handles and
580         initialize this.handle to InvalidHandle
581
582 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
583
584         * MonoIO.cs: SetFileTime() Failed Open returns InvalidHandle
585         not Zero
586
587 2003-12-17  Atsushi Enomoto <atsushi@ximian.com>
588
589         * Directory.cs : SetCurrentDirectory() should raise errors for
590           some kind of arguments.
591
592 2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
593
594         * Path.cs: GetTempPath () ends with DirectorySeparatorChar. Fixes bug
595         #52056.
596
597 2003-12-06  Ravindra  <rkumar@novell.com>
598         *MonoIO.cs: Added a new exception case. It is thrown 
599         when a directory creation is attempted with a name that
600         is already used by an existing file.
601
602 2003-11-28  Dick Porter  <dick@ximian.com>
603
604         * Path.cs: Use the char form of LastIndexOf, so that the
605         comparison is done with the Invariant culture.
606
607 2003-11-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
608
609         * Directory.cs: provide the path when getting the IOException.
610
611 2003-11-18  John Luke  <jluke@cfl.rr.com>
612
613         * CheckArgument.cs:
614         (PathLength): fix recursion found by JonK
615         
616 2003-11-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
617
618         * Directory.cs:
619         (GetCurrentDirectory):
620         (SetCurrentDirectory): moved here from Environment. Handle error cases.
621
622         * MonoIO.cs: add path to the default error message.
623
624 2003-11-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
625
626         * StringReader.cs: fixed ReadLine for some cases where there are mixed
627         '\r' and '\n'. Closes bug #51020.
628
629 2003-11-14 Ben Maurer  <bmaurer@users.sourceforge.net>
630
631         * MemoryStream.cs (.ctor): We need to check if buffer is null
632         before we get the Length of it.
633
634 2003-11-14  Miguel de Icaza  <miguel@ximian.com>
635
636         * StreamReader.cs, TextReader, StreamReader (Read): Add [Out]
637
638 2003-11-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
639
640         * Directory.cs: allow directory names without wildcards in the pattern.
641         Fixes bug #3 50969.
642
643         * SearchPattern.cs: made InvalidChars and WildcardChars internal.
644
645 2003-11-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
646
647         * FileStream.cs: use the argument name when throwing exception.
648
649         * StreamReader.cs:
650         * StringReader.cs:
651         * TextReader.cs: added [In] attribute for the array in Read.
652
653 2003-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
654
655         * DirectoryInfo.cs: fixed ToString. Closes bug #50842.
656
657 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
658
659         * Directory.cs: Adjust for missing PlatformID.Unix.
660
661 2003-10-28  Miguel de Icaza  <miguel@ximian.com>
662
663         * StreamReader.cs: Add checks for disposed stream from bug report
664         #48696 (Patrik Reali)
665
666         * TextReader.cs (Read): Return the total number of bytes read, 
667         patch from Patrik Realli.
668
669 2003-10-20  Miguel de Icaza  <miguel@ximian.com>
670
671         * FileStream.cs public FileStream (string name, FileMode mode)
672         constructor: If we pass FileMode.Append, we can not pass
673         FileAccess.ReadWrite.  This fixes bug 44959
674
675 2003-09-26  Miguel de Icaza  <miguel@ximian.com>
676
677         * BufferedStream.cs (Write): Use CanWrite in Write.  Patch from
678         Francisco Figueiredo Jr.
679
680 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
681
682         * BinaryReader.cs: return the correct number of bytes read when there
683         are some bytes from peeking.
684
685 2003-09-11  Lluis Sanchez Gual  <lluis@ximian.com>
686
687         * BufferedStream.cs, FileStream.cs, MemoryStream.cs, Stream.cs:
688           Added [In,Out] attributes to Read method.
689
690 2003-08-05  Martin Baulig  <martin@ximian.com>
691
692         * StreamReader.cs (DiscardBufferedData): Do the same like on the
693         ms runtime: just discard the buffered data, but don't modify the
694         BaseStream.Position.
695
696 2003-08-04  Martin Baulig  <martin@ximian.com>
697
698         * StreamReader.cs (DiscardBufferedData): Implemented.
699
700 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
701
702         * IntPtrStream.cs (Read): Use correct offset here;  Change the
703         code to use a byte* instead of an IntPtr to reduce the number of
704         casts used. 
705
706         (Read): Use Marshal.Copy instead of the now
707         deprecated MemCopy.
708
709         (IntPtrStream): New stream implementation, it maps to a region in
710         memory.
711
712 2003-07-23  Duncan Mak  <duncan@ximian.com>
713
714         * StreamReader.cs (Initialize): This method is not exposed in the
715         API, mark as internal.
716
717 Fri Jul 18 14:42:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
718
719         * MonoIO.cs: 64bit fix from Bernie Solomon <bernard@ugsolutions.com>.
720
721 2003-07-16  Dick Porter  <dick@ximian.com>
722
723         * FileInfo.cs: Update path info when a file is moved.  Patch by
724         John Luke <jluke@cfl.rr.com>, fixes bug 44253.
725
726 2003-07-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
727
728         * MemoryStream.cs: fixed bug #46060. Thanks to Carlos Barcenilla.
729
730 2003-06-30  Zoltan Varga  <vargaz@freemail.hu>
731
732         * FileStream.cs (Dispose): Flush the buffer even if we don't own the
733         handle.
734         * FileStream.cs: Add a new constructor parameter to turn off buffering.
735         This is used by the Console.OpenStandard...() methods. Also fix
736         argument checking in InitBuffer(), so a zero buffer size is also 
737         rejected.
738
739 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
740
741         * Stream.cs: use async.delegate invoke 
742
743 2003-06-18  Nick Drochak <ndrochak@gol.com>
744
745         * FileSystemInfo.cs: Refresh cache when changeing file times.
746
747 2003-06-11  Zoltan Varga  <vargaz@freemail.hu>
748
749         * FileStream.cs: Fix errors in previous checkins:
750         (Write): Only take the shortcut route if the data is longer than the
751         buffer length.
752         (Write): Flush the buffer before writing out the new data
753         (Write): Flush the buffer after writing out a segment since otherwise
754         we will go into an infinite loop.
755         (FlushBuffer): Remove my last change since it was clearly wrong.
756         (Seek): Run FlushBuffer () after the in-buffer seek optimization.
757         (Seek): Only use the in-buffer optimization if the buffer is not
758         empty.
759         (Length): Call FlushBuffer () since buffer data might change the size
760         of the stream.
761
762 2003-06-09  Ville Palo <vi64pa@kolumbus.fi>
763
764         * FileStream.cs:
765         - removed unusefull bugfix (DirectoryNotFoundException)
766         - Flush before seek.
767         
768 2003-06-09  Ville Palo <vi64pa@kolumbus.fi>
769
770         * FileStream.cs: Check buffer size before append/read -exceptios
771         
772 2003-06-09  Ville Palo <vi64pa@kolumbus.fi>
773
774         * FileStream.cs: Check DirectoryNotFound before FileNotFound.
775         
776 2003-06-09  Ville Palo <vi64pa@kolumbus.fi>
777
778         * FileStream.cs: Does not anymore flush while writing
779         
780 2003-06-02  Nick Drochak <ndrochak@gol.com>
781
782         * FileInfo.cs (MoveTo): Throw exceptions when dest exists, and check
783         for null too.
784
785 2003-05-27  Lluis Sanchez Gual <lluis@ximian.com>
786
787         * BinaryReader.cs: Stream don't need to be seekable to use PeekChar.
788
789 2003-05-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
790
791         * Path.cs: fixed bug #42631.
792
793 2003-05-22  Zoltan Varga  <vargaz@freemail.hu>
794
795         * File.cs (Move): Allow moving of directories.
796         Fix 'destination is a directory' test.
797
798 2003-05-21  Ben Maurer  <bmaurer@users.sourceforge.net>
799
800         * StringWriter.cs: Fixed bug #43431: "StringWriter
801         .ctor(CultureInfo) does not create a new StringBuilder ()"
802
803 2003-05-11  Zoltan Varga  <vargaz@freemail.hu>
804
805         * FileStream.cs (FlushBuffer): After a flush, the buffer is
806         advanced by buf_offset bytes, not buf_length bytes.
807
808 2003-05-16  Dick Porter  <dick@ximian.com>
809
810         * MonoIO.cs: Implement GetTempPath
811
812 2003-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
813
814         * DirectoryInfo.cs: fixed bug #42991.
815         * Path.cs:
816         (CanonicalizePath): store the value of the trimmed input string. Make it
817         work with paths such as "/home/xxx/.".
818
819 2003-05-08  Ben Maurer <bmaurer@users.sourceforge.net>
820         * Path.cs 
821         (CanonicalizePath) Fixed bug #42631, which duplicated the
822         root part of the path under Windows.
823
824 2003-05-08  Ville Palo <vi64pa@kolumbus.fi>
825
826         * FileSystemInfo.cs: Added 1.1 properties LastAccessTimeUtc, 
827         LastWriteTimeUtc and CreationTimeUtc
828         
829 2003-05-07  Ben Maurer <bmaurer@users.sourceforge.net>
830         * Path.cs 
831         (GetPathRoot) Added support for UNC paths.
832         (CanonicalizePath) Added optimizations per Miguel's requests.
833
834 2003-05-06  Ville Palo <vi64pa@kolumbus.fi>
835
836         * BufferedStream.cs: 
837           - Removed unusefull code.
838           - Added ObjectDisposedException to Position
839           - Dont flush if stream is allready closed.
840           - Flush throws also ObjectDisposedException.
841         * Directory.cs:
842           - GetFileSystemEtries: ArgumentNullException if pattern is null
843         * DirectoryInfo.cs: Fixed little MoveTo () bug.
844         * FileInfo.cs:
845           - Exists: If file does not exists when instance is created the
846           value of the Exists property does not change even if file is created
847           afterwards.
848           - Delete: If path is a directory UnauthorizedException is thrown.
849           - CopyTo: Now we can overwrite file if wanted.
850         * Path.cs: 
851           - GetFullPath: Now throws exception when path is "   ".
852         
853 2003-05-04  Ben Maurer <bmaurer@users.sourceforge.net>
854         * Directory.cs (GetLogicalDrives) Marked as MonoTODO
855         because we need to implement the method on Windows.
856         * Path.cs 
857         (CanonicalizePath) Added new function to get
858         rid of . and .. in path names. Need to figure out what
859         other functions should call this.
860         (GetFullPath) Added call to the above function.
861         
862 2003-05-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
863
864         * StreamReader.cs:
865         (.ctor): fixed parameters passed to FileNotFoundException.
866
867 2003-04-25  Dietmar Maurer  <dietmar@ximian.com>
868
869         * BinaryReader.cs (Read): make sure the buffer is big enough (fix
870         bug # 40702)
871
872 2003-04-24  Pedro Martinez Julia  <yoros@wanadoo.es>
873
874         * BufferedStream.cs: Test if it's possible to seek in a Stream
875         before access to Position. This prevents the exception thrown when
876         the stream is System.Net.Sockets.NetworkStream.
877
878 2003-04-22  Ville Palo <vi64pa@kolumbus.fi>
879
880         * Directory.cs: clean up --> performance improvment. Some exceptions
881         are now checked in File.cs.
882         * File.cs: Implemented Get/SetXXXTimeUtc () methods. Some bugfixes.
883         
884 2003-04-21  Ville Palo <vi64pa@kolumbus.fi>
885
886         * Directory.cs: lots of fixes. 
887           - Added GetXXXtimeUtc () (v1.1) methods.
888           - Added SetXXXtimeUtc () (v1.1) methods.      
889         
890 2003-04-20  Igor Nosyryev <nosyryev@attbi.com>
891
892         * StringReader.cs (Read): Increment nextChar by charsToRead
893         instead of count, that will guarantee that the next time the
894         method is called, it will return 0 on an empty string rather than
895         throwing an exception
896
897 2003-04-19  Ville Palo <vi64pa@kolumbus.fi>
898
899         * BufferedStream.cs: Some fixes, mostly throwing exceptions.
900         * MemoryStream.cs: Changed the order of exception checking
901         * StringReader.cs: little clean up
902         
903 2003-04-14  Ville Palo <vi64pa@kolumbus.fi>
904
905         * BinaryWriter.cs: Fixed decimal writing and lots of 
906         ObjectDisposedExceptions added.
907         
908 2003-04-13  Ville Palo <vi64pa@kolumbus.fi>
909
910         * BinaryReader.cs: Fix to ReadDecimal() method.
911         
912 2003-04-13  Ville Palo <vi64pa@kolumbus.fi>
913
914         * StringReader.cs: Added some ObjectDisposedExceptions.
915         * StringWriter.cs: Added some ObjectDisposedExceptions.
916         * BinaryReader.cs: Added some ObjectDisposedExceptions.
917         
918 2003-04-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
919
920         * FileStream.cs: fixed the windows build. This is an mcs bug. I'll
921         fill a bug report.
922
923 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
924
925         * FileStream.cs: fixed bug #40182 and made more unit test pass.
926
927 2003-04-11  Ville Palo <vi64pa@kolumbus.fi>
928
929         * FileStream.cs: Added new methods Lock () and Unlock ()
930         
931 2003-04-11  Ville Palo <vi64pa@kolumbus.fi>
932
933         * StringReader.cs: Throws exceptions if constructor parameter is null.
934         
935 2003-04-11  Ville Palo <vi64pa@kolumbus.fi>
936
937         * StringWriter.cs: Now throws an exception if StringBuilder parameter
938         is null
939         
940 2003-04-05  Miguel de Icaza  <miguel@ximian.com>
941
942         * TextWriter.cs: Implemented Synchronized method.
943
944         * TextReader.cs: Implemented Synchronized method.
945
946 2003-04-04  Miguel de Icaza  <miguel@ximian.com>
947
948         * FileStream.cs (Read, ReadByte, Seek): throw
949         ObjectDisposedException if the handle has been released.
950         
951         (Read): Throw exceptions specified in the spec.
952
953         (Read, Write, ReadSegment, WriteSegment): There is no requirement for any
954         instance methods of FileStream to be thread safe, so remove all
955         the calls to lock on the object
956
957 2003-03-31  Nick Drochak <ndrochak@gol.com>
958
959         * Path.cs (GetDirectoryName): Throw proper execption when path is empty.
960
961 2003-03-20  Lluis Sanchez Gual <lluis@ideary.com>
962
963         * FileNotFoundException.cs: fixed serialization bug.
964
965 2003-03-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
966
967         * StringWriter.cs : don't release internalString on Dispose().
968
969 2003-03-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
970
971         * StreamReader.cs: fixed bug #39280.
972
973 2003-03-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
974
975         * Directory.cs: readded mkdir -p behavior. Thanks to kiwnix for
976         pointing it out.
977
978 2003-03-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
979
980         * MemoryStream.cs: general fixes and reformatted. Passes all tests in
981         the new MemoryStreamTest.
982
983 2003-03-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
984
985         * MemoryStream.cs: undo my bogus fix in ToArray. Allow GetBuffer and
986         ToArray even after closing the stream.
987
988 2003-03-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
989
990         * Directory.cs:
991         (Move): don't use File.Move.
992         * DirectoryInfo.cs: fixed Name property.
993         
994         Fixes bug #37755.
995
996 2003-03-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
997
998         * DirectoryInfo.cs: changed ToString to match MS behavior.
999         * Path.cs: further fixes to GetDirectoryName to return null in the
1000         same cases that MS does.
1001
1002         Fixes bug #38387.
1003
1004 2003-03-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1005
1006         * Path.cs: fixed a couple of bugs reported in #35906.
1007
1008 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1009
1010         * Directory.cs: fixed bugs #38939 and #38940. No need for separate
1011         unix/windows/unc shares code paths.
1012
1013 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1014
1015         * File.cs: fix by Elan Feingold <efeingold@mn.rr.com> for
1016         SetCreationTime, SetLastAccessTime and SetLastWriteTime.
1017
1018 2003-02-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1019
1020         * MemoryStream.cs:
1021         (ToArray): return only the portion of the buffer that contains
1022         data, not the whole buffer. (note: this makes XmlDocument.Load work
1023         again with documents that have a <?xml without the 'encoding'
1024         attribute, which makes gtk-sharp generator work again).
1025
1026 2003-02-25  Nick Drochak <ndrochak@gol.com>
1027
1028         * File.cs (GetCreationTime): Throw proper execption when path is not
1029         found.
1030
1031 Tue Feb 25 11:55:35 CET 2003 Paolo Molaro <lupus@ximian.com>
1032
1033         * MemoryStream.cs: make it behave sanely when the stream is
1034         incrementally expanded.
1035
1036 2003-02-21  Dick Porter  <dick@ximian.com>
1037
1038         * FileStream.cs: Use locks around buffer manipulations.  Fixes bug
1039         32344
1040
1041 2003-02-18  Dick Porter  <dick@ximian.com>
1042
1043         * FileStream.cs: Make FileMode.Append work, and check for Seeking
1044         back over old data (undocumented ms behaviour, throws an exception
1045         if you try).  Fixes bug 35975.
1046
1047 2003-02-17  Dick Porter  <dick@ximian.com>
1048
1049         * FileStream.cs: Don't close the handle if the stream doesn't own
1050         it.  Patch from Raymond Penners (raymond@dotsphinx.com), bug
1051         35623.
1052
1053 2003-02-14  Zoltan Varga  <vargaz@freemail.hu>
1054
1055         * FileStream.cs (Write): flush after writing the last segment as well.
1056
1057 2003-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1058
1059         * StringReader.cs:
1060         (ReadLine): fixed the case when the string ends with a '\n'.
1061
1062 2003-02-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1063
1064         * MemoryStream.cs: create the buffer of the specified capacity.
1065
1066 2003-01-31  Patrik Torstensson
1067
1068         * MemoryStream.cs: use BlockCopyInternal instead of Array.Copy, this is
1069         the same way as MS does it (performance improvement)
1070
1071 2003-01-29  Zoltan Varga  <vargaz@freemail.hu>
1072
1073         * Directory.cs (GetFileSystemEntries): moved error handling to the
1074         correct instance of GetFileSystemEntries so all callers can enjoy it.
1075
1076 2003-01-28  Zoltan Varga  <vargaz@freemail.hu>
1077
1078         * File.cs: add error handling to Get...Time methods.
1079
1080 2003-01-26  Zoltan Varga  <vargaz@freemail.hu>
1081
1082         * Directory.cs: fix GetParent so it actually works.
1083
1084 2003-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1085
1086         * Path.cs: fixlet to ChangeExtension for the case when the path is
1087         empty.
1088
1089 2003-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1090
1091         * BufferedStream.cs: don't try to write a 0 sized array on when
1092         flushing the stream.
1093         
1094         Fixes bug #37045.
1095
1096 2003-01-18  Jonathan Pryor <jonpryor@vt.edu>
1097
1098         * FileStream.cs: Add IsAsync property.  (Documented in "C# In A Nutshell".)
1099
1100 2003-01-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1101
1102         * MemoryStream.cs: fixed bug #36319.
1103
1104 2002-12-16  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
1105         
1106         * Directory.cs: Some fixes to SMB shares handling, and not compiling 
1107         with csc, mcs compiles it correctly (mcs bug 35652)
1108
1109 2002-12-14  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
1110
1111         * Directory.cs: Some fixes related to correct some exceptions thrown
1112
1113 2002-12-11  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
1114
1115         * Directory.cs: Some Exceptions added, fixed GetParent(),
1116         CreateDirectory() should work with unix, native windows and
1117         windows samba shares. Converted end-lines from dos-mode to unix-mode
1118
1119 2002-12-08  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
1120
1121         * Directory.cs: CreateDirectory  works now with Absolute paths
1122         too, not only with relative ones.
1123
1124 2002-12-07  Peter Williams  <peterw@ximian.com>
1125
1126         * Directory.cs: Don't use the uninitialized pathsumm here.
1127         Don't try and create "" if we're using an absolute path.
1128
1129 2002-12-07  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
1130
1131         * Directory.cs: Now the creation of a new directory works recursively
1132         it will make parents as needed.
1133
1134 2002-11-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1135
1136         * BufferedStream.cs: applied patch from <carlosga@telefonica.net> that
1137         fixes Flush ().
1138
1139 Tue Nov 19 13:01:22 CET 2002 Paolo Molaro <lupus@ximian.com>
1140
1141         * StreamWriter.cs: output the encoding preamble at the start of a
1142         stream if needed.
1143
1144 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1145
1146         * StreamReader.cs: Changed all Encoding.UTF8 to Encoding.UTF8Unmarked.
1147
1148 2002-11-06  Miguel de Icaza  <miguel@ximian.com>
1149
1150         * StreamWriter.cs: Changed all Encoding.UTF8 to Encoding.UTF8Unmarked.
1151
1152 2002-10-31  Dick Porter  <dick@ximian.com>
1153
1154         * FileStream.cs: Fix buffering properly this time.  Also kludge
1155         around broken pipe errors, treating them as EOF instead of
1156         throwing an IO exception.
1157
1158         * MonoIO.cs: Return the error status in a parameter, as the
1159         GetLastError() value has long since been blown away if we try and
1160         look it up in a subsequent internal call invocation.
1161
1162         * FileSystemInfo.cs: 
1163         * FileInfo.cs: 
1164         * File.cs: 
1165         * Directory.cs: MonoIO methods now have an error parameter
1166
1167 2002-10-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1168
1169         * TextReader.cs: implemented ReadBlock ().
1170
1171 2002-10-30  Miguel de Icaza  <miguel@ximian.com>
1172
1173         * StreamWriter.cs: Ditto for Null stream.
1174
1175         * BinaryReader.cs: Use Unmarked here too.
1176
1177         * BinaryWriter.cs: Use the UTF8Unmarker encoding by default, this
1178         is what .NET does.
1179
1180 2002-10-23  Dick Porter  <dick@ximian.com>
1181
1182         * FileStream.cs: Implemented CanSeek, and used it around all the
1183         calls to MonoIO.Seek.  Fixed buffering in Read() so that it
1184         doesn't block forever on short reads.
1185
1186         * MonoFileType.cs: New enum for GetFileType
1187         
1188         * MonoIO.cs: Added GetFileType
1189
1190 2002-10-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1191
1192         * StreamReader.cs: ReadLine now treats a \r not followed by a \n as a
1193         \n (this is what MS does).
1194
1195 2002-10-18  Dick Porter  <dick@ximian.com>
1196
1197         * FileStream.cs: SeekOrigin.End still calculates the offset from
1198         the end of the file with positive values extending the length.
1199         Fixes bug 32471.
1200
1201 2002-10-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1202
1203         * Path.cs: some cleanup. Thanks to Martin Aliger.
1204
1205 2002-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1206
1207         * FileStream.cs: throw an exception if trying to open a directory.
1208         Thanks to Martin Aliger.
1209
1210 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1211
1212         * Path.cs: fixes bug #28046.
1213
1214 2002-09-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1215
1216         * StreamReader.cs: give more information when wrong parameters passed.
1217
1218 2002-09-21  Miguel de Icaza  <miguel@ximian.com>
1219
1220         * FileStream.cs: Do not call FSync on the file.
1221
1222 2002-09-16  Miguel de Icaza  <miguel@ximian.com>
1223
1224         * TextWriter.cs (Null): The Null field should be an instance of a
1225         TextWriter class that does nothing, so it is an instance of the
1226         NullTextWriter class.
1227
1228 2002-09-16  Nick Drochak  <ndrochak@gol.com>
1229
1230         * MemoryStream.cs (Close): Don't throw an exception if the stream
1231         is already closed.
1232
1233 2002-09-15  Miguel de Icaza  <miguel@ximian.com>
1234
1235         * FileStream.cs (Dispose): Call FlushBuffer(), and not Flush, as
1236         Flush calls fsync().  
1237
1238         The API docs show no explicit mention that Flush() should even do
1239         an fsync, I am thinking that we should drop that from the
1240         runtime. 
1241
1242 2002-09-09  Miguel de Icaza  <miguel@ximian.com>
1243
1244         * StreamWriter.cs: When no encoding is provided, create an
1245         encoding without markers, this is what MS does.
1246
1247 2002-09-06  Miguel de Icaza  <miguel@ximian.com>
1248
1249         * StreamReader.cs: Implement detection of byte marks and skipping
1250         of byte marks at the beginning of the stream.
1251
1252         (ReadToEnd): Use buffered read instead of char-by-char
1253         processing. 
1254
1255         Correct the default arguments for creating the StreamReader.
1256
1257 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1258
1259         * CheckArgument.cs: fixed check for empty string.
1260         * Path.cs: various fixes. It passes all the tests in new PathTest.
1261
1262 2002-08-29  Duncan Mak  <duncan@ximian.com>
1263
1264         * StreamWriter.cs: Set DisposedAlready after calling flush. Fixes
1265         the build for gtk#.
1266
1267 2002-08-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1268
1269         * BinaryReader.cs:
1270         * BinaryWriter.cs:
1271         * MemoryStream.cs:
1272         * StreamReader.cs:
1273         * StreamWriter.cs:
1274         * StringReader.cs:
1275         * StringWriter.cs:
1276         * TextWriter.cs: IDisposable fixes.
1277
1278 2002-08-24  Miguel de Icaza  <miguel@ximian.com>
1279
1280         * StreamReader.cs: Removed TODOs, as the code seems to be
1281         complete. 
1282
1283         * Path.cs (GetTempFileName): Make this routine atomic by not
1284         testing and then creating, but using the create call to ensure
1285         that we own the filename.
1286
1287 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1288
1289         * FileLoadException.cs: implemented ToString.
1290
1291         * StreamWriter.cs: added Null field and implemented Write (char) and
1292         Write (char []).
1293
1294 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1295
1296         * StreamReader.cs: implemented NullStreamReader.
1297
1298 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
1299
1300         * Path.cs (GetDirectoryName): Fix for filenames with size = 1
1301
1302         * File.cs: Removed all references that threw exceptions when the
1303         paths contains a colon, as this is a valid part of an identifier
1304         on Unix.
1305
1306         Everywhere: The String.Empty return from GetDirectoryName means
1307         that there is no directory information about the path.
1308
1309 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1310
1311         * FileNotFoundException.cs: use Message and InnerException from base
1312         class. Changed Message and ToString ().
1313
1314 2002-08-19  Dick Porter  <dick@ximian.com>
1315
1316         * BinaryWriter.cs: The length of a string is counted in bytes, not
1317         chars
1318
1319 2002-08-18  Dick Porter  <dick@ximian.com>
1320
1321         * BinaryReader.cs: Fixed buffering
1322
1323 2002-08-09  Nick Drochak  <ndrochak@gol.com>
1324
1325         * BinaryReader.cs: added virtual to Dispose(bool).
1326
1327 2002-08-03  Jason Diamond  <jason@injektilo.org>
1328
1329         * StringWriter.cs: Return UnicodeEncoding for Encoding property.
1330
1331 2002-08-03  Jason Diamond  <jason@injektilo.org>
1332
1333         * StreamWriter.cs: Use GetByteCount() to get exact length instead
1334         of GetMaxByteCount when converting chars to bytes.
1335
1336 2002-07-31  Duncan Mak  <duncan@ximian.com>
1337
1338         * StreamReader.cs: 
1339         (Dispose): Added and implmented.
1340
1341         * StreamWriter.cs: 
1342         (Dispose): Fixed visibility.
1343         (Initialize): Fixed visibility, made internal.
1344
1345         * BinaryReader.cs:
1346         (Dispose): Fixed visibility.
1347
1348 2002-07-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1349
1350         * File.cs:
1351         (Create): allow file names without path.
1352
1353 Fri Jul 26 15:45:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
1354
1355         * FileStream.cs: patch from erik@bagfors.nu to add
1356         Name property support.
1357
1358 2002-07-20  Dick Porter  <dick@ximian.com>
1359
1360         * MonoIO.cs: Added icall to CreatePipe
1361
1362 2002-07-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1363
1364         * FileInfo.cs: fixes buglet #27940
1365
1366 2002-07-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1367
1368         * Path.cs: removed unneeded line from GetExtension.
1369
1370 2002-07-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1371
1372         * FileStream.cs:
1373         (.ctor): call MonoIO.GetException with the file name.
1374
1375 2002-07-02  Mike Kestner  <mkestner@speakeasy.net>
1376
1377         * StreamReader.cs: Guard against ^\n lines as pointed out by Gonzalo.
1378
1379 2002-07-02  Mike Kestner  <mkestner@speakeasy.net>
1380
1381         * StreamReader.cs: Revert the last Peek change and fix the ReadLine
1382         end of line detection code instead.
1383
1384 2002-07-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1385
1386         * StreamReader.cs:
1387         (Peek): no need to have seek capabilitites. 
1388
1389 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
1390
1391         * Path.cs (ChangeExtension): handle some special cases (fixes bug #25319)
1392
1393         * File.cs (Delete): only call Directory.Exists() if DirName != ""
1394
1395 2002-06-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1396
1397         * Directory.cs: fixed bug #26133 and also test if the directory exist
1398         before performing the search.
1399
1400 2002-06-12  Nick Drochak  <ndrochak@gol.com>
1401
1402         * StringReader.cs (ReadLine): Return null when we get to end of the
1403         string.
1404
1405 2002-05-22  Lawrence Pit  <loz@cable.a2000.nl>
1406
1407         * StreamWriter.cs: added ability to write null value
1408         
1409 2002-05-19  Lawrence Pit  <loz@cable.a2000.nl>
1410
1411         * Stream.cs: NullStream.ReadByte now returns -1 instead of 0 to
1412         prevent endless loops.
1413
1414 2002-05-17  Dan Lewis  <dihlewis@yahoo.co.uk>
1415
1416         * FileStream.cs: Enforce lower bound on buffer size.
1417
1418 2002-05-16  Piers Haken <piersh@friskit.com>
1419
1420         * Stream.cs: Implement synchronous {Begin|End}{Read|Write}() methods.
1421
1422 2002-05-17  Nick Drochak  <ndrochak@gol.com>
1423
1424         * StreamWriter.cs: Implement buffering.  Also implemented dispose
1425         pattern as recommended by the MS docs.  Must call Close() now
1426         to ensure the buffer is flushed.
1427
1428 2002-05-15  Nick Drochak  <ndrochak@gol.com>
1429
1430         * Path.cs (GetDirectoryName): Return String.Empty if there is no
1431         directory
1432
1433         * StreamReader.cs: Add some parameter checking on file names.
1434
1435         * StreamWriter.cs: Add some parameter checking on file names.
1436
1437 2002-05-14 Nick Drochak  <ndrochak@gol.com>
1438
1439         * File.cs: Add parameter checks to most methods. Not completely done,
1440         but all current unit tests pass.
1441
1442         * Path.cs: Implement GetTempFileName().
1443
1444 2002-05-10  Nick Drochak  <ndrochak@gol.com>
1445
1446         * StreamWriter.cs (Flush): Throw proper exception if internal stream
1447         has already been closed when we try to flush.
1448
1449 2002/05/10  Nick Drochak <ndrochak@gol.com>
1450
1451         * FileNotFoundException.cs (ToString): Don't try to use the inner
1452         exception, because it might be null.  Use the message instead.
1453
1454 2002-05-09  Nick Drochak  <ndrochak@gol.com>
1455
1456         * File.cs (Delete): Do not throw an exception if the file does not
1457         exist.
1458
1459 2002-05-08  Mike Gray     <mikeg@mikegray.org>
1460
1461         * File.cs: According to ECMA spec and MS docs Copy(src, dest)
1462         should not overwrite dest by default.
1463
1464 2002-05-08  Nick Drochak  <ndrochak@gol.com>
1465
1466         * StreamWriter.cs: Add paramter check to constructors and throw
1467         exceptions where appropriate.
1468
1469 Tue May 7 11:47:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
1470
1471         * StreamReader.cs: return the number of chars read even if we diddn't
1472         fill the whole buffer (makes Sergey's ilasm work with mono).
1473
1474 2002-05-07  Mike Gray     <mikeg_us@hotmail.com> 
1475
1476         * FileInfo.cs (Create): Implement missing method.
1477
1478 2002-05-07  Mike Gray     <mikeg_us@hotmail.com>
1479
1480         * File.cs: Implemented CreateText method, and fixed dst compares
1481         to compare against "" instead of null twice.
1482
1483 2002-05-05  Nick Drochak  <ndrochak@gol.com>
1484
1485         * StreamReader.cs: Throw exceptions where needed. Changed Null field to
1486         use new internal class since null cannot be passed to constructor 
1487         anymore. Also, fix a coule of small bugs.
1488
1489 2002-05-03  Nick Drochak  <ndrochak@gol.com>
1490
1491         * MemoryStream.cs: Refrain from allocating array until the space is
1492         really needed. This fixes a bug in the Length property when the
1493         constructor without the byte array is used.
1494
1495 2002-05-01  Duncan Mak  <duncan@ximian.com>
1496
1497         * DirectoryNotFoundException.cs (constructor): Added missing
1498         serialization constructor.
1499
1500 2002-04-30  Duncan Mak  <duncan@ximian.com>
1501
1502         * FileLoadException.cs (constructors): Added missing (string,
1503         string) ctor, as well as (string, string, Exception) ctor.
1504
1505         (Message): Added more info to the error message
1506
1507         (ToString): Added. We'll need to add the StackTrace stuff when
1508         that works.
1509
1510         * FileShare.cs: Add a missing field, Inheritable.
1511         
1512         * TextReader.cs: Renamed Synchronised method to Synchronized.
1513
1514         * TextWriter.cs: Renamed Synchronised method to Synchronized.
1515         Renamed protected member coreNewLine to CoreNewLine.
1516
1517 2002-04-30  Sergey Chaban  <serge@wildwestsoftware.com>
1518
1519         * BinaryReader.cs: Allocate buffer before its first use.
1520         Handle end of stream properly. Methods to read native types
1521         (ReadInt* etc.) are little-endian (see Compact Framework docs).
1522
1523         * BinaryWriter.cs: Store data in little-endian format.
1524         Use internal buffer for conversions.
1525
1526 2002-03-31  Dick Porter  <dick@ximian.com>
1527
1528         * Directory.cs: Strip out "." and ".." from returned list
1529
1530         * FileAttributes.cs: Get the right enum values
1531
1532 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
1533
1534         * TextWriter.cs (write): added check for null
1535
1536 2002-03-28  Dan Lewis  <dihlewis@yahoo.co.uk>
1537
1538         * Directory.cs: Throws DirectoryNotFoundException.
1539         * MonoIO.cs: Fixed to work around enum problem.
1540
1541 2002-03-27  Dan Lewis  <dihlewis@yahoo.co.uk>
1542
1543         * StreamReader.cs: Implemented ReadLine() and ReadEnd().
1544
1545 2002-03-27  Dan Lewis  <dihlewis@yahoo.co.uk>
1546
1547         * Directory.cs, File.cs, FileSystemInfo.cs, FileInfo.cs,
1548         DirectoryInfo.cs, Path.cs: Modified to use MonoIO class instead of
1549         wrapper and PAL classes.
1550
1551         * MonoIO.cs, MonoIOStat.cs, MonoIOError.cs: Added.
1552
1553 2002-03-25  Mike Kestner <mkestner@speakeasy.net>
1554
1555         * MemoryStream.cs (Read): Fixed bug in exception throw.
1556
1557 2002-03-24  Mike Kestner <mkestner@speakeasy.net>
1558
1559         * StreamReader.cs (ReadBuffer): Fix buffer merging bugs.
1560
1561 2002-03-23  Martin Baulig  <martin@gnome.org>
1562
1563         * StreamReader.cs: Always do buffered reading, use 4k blocks.
1564         (Read (char[], int, int)): Implemented.
1565         (DiscardBufferedData): Implemented.
1566
1567 2002-03-21  Mike Kestner <mkestner@speakeasy.net>
1568
1569         * StreamReader.cs : Fill out, add buffering, and use encoding.
1570
1571 2002-03-19  Martin Baulig  <martin@gnome.org>
1572
1573         * StreamWriter.cs (StreamWriter (string)): The default is to override
1574         the file, not to append to it.
1575         (StreamWriter (string path, bool append)): When appending, seek to the
1576         end of the file, otherwise truncate the file to zero length.
1577         (Dispose (bool)): Close the internalStream.
1578         (Flush): Flush the interalStream.
1579         (Write (char[], int, int)): Flush the internalStream in auto-flush-mode.
1580
1581 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
1582
1583         * FileStream.cs: Flush buffer before FileSetLength.
1584
1585 2002-02-28  Miguel de Icaza  <miguel@ximian.com>
1586
1587         * Stream.cs (NullStream): Do not track position, this beast does
1588         nothing in practice.
1589
1590 2002-03-15  Dan Lewis <dihlewis@yahoo.co.uk>
1591
1592         * SearchPattern.cs: New class. Glob matching code for Directory.
1593         * Directory.cs: Changed to use SearchPattern instead of mono_glob_*()
1594
1595 2002/03/15 Nick Drochak <ndrochak@gol.com>
1596
1597         * DirectoryInfo.cs: Fixed the overloaded GetDirectories and GetFiles.
1598         This code seemed to be copied from somewhere, and it was close,
1599         but didn't match the docs.  This was the last bit needed to get
1600         NAnt to compile with our class libs.
1601
1602 2002-03-12  Duncan Mak  <duncan@ximian.com>
1603
1604         * EndOfStreamException.cs:
1605         * FileLoadException.cs:
1606         * FileNotFoundException.cs:
1607         * PathTooLongException.cs: Changed the base classes to IOException
1608         instead of SystemException.
1609
1610         * IOException.cs: Added missing constructors.
1611         
1612 2002-03-07  Nick Drochak  <ndrochak@gol.com>
1613
1614         * FileMode.cs: Docs don't say this should be explicitly derived from
1615         int, so just make it a normal Enum.
1616
1617 2002-03-02  Jason Diamond  <jason@injektilo.org>
1618
1619         * StringReader.cs: Fixed off-by-one error in Peek() and Read().
1620
1621 2002-02-12  Nick Drochak  <ndrochak@gol.com>
1622
1623         * PathTooLongException.cs: put it in the correct namespace
1624         * EndOfStreamException.cs: put it in the correct namespace
1625
1626 Thu Jan 31 17:32:32 CET 2002 Paolo Molaro <lupus@ximian.com>
1627
1628         * Directory.cs: handle opendir() return NULL and absolute filenames.
1629
1630 2002-01-31  Duncan Mak  <duncan@ximian.com>
1631
1632         * FileLoadException.cs:
1633         * FileNotFoundException: Added missing bits for serialization.
1634
1635 Thu Jan 24 17:42:54 CET 2002 Paolo Molaro <lupus@ximian.com>
1636
1637         * Directory.cs: allow directories in GetFiles() mask.
1638
1639 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
1640
1641         * FileInfo.c (CopyTo, MoveTo): Implement.
1642
1643         * FileStream.cs: Add argument checking to the constructor.
1644
1645         * File.cs: Rewrote most of the file.  Implement Copy, Open, Create,
1646         OpenText, OpenWrite, Move.  Made pending methods flagged as MonoTODO. 
1647         
1648         * Directory.cs (Delete): reimplement without using DirectoryInfo.
1649         (Delete): Implement the recursive version.
1650         (GetCreationTime, GetLastWriteTime, GetLastAccessTime): Implement.
1651         (Move): Reimplement.
1652         (getNames): dead code removal.
1653
1654         * Path.cs: define an internal DirectorySeparatorStr that we use in
1655         a few spots.
1656
1657         * Wrapper.cs: Updated to new version.
1658         
1659         * DirectoryInfo (Delete): Implement using the Directory API.
1660
1661         * DirectoryInfo.cs (GetFiles, GetDirectories, GetFileSystemInfos,
1662         Delete, Create, Parent, Exists, MoveTo): Implement. 
1663
1664         * Directory.cs (GetListing): implement new utility function.
1665         (GetDirectories): Implement.
1666         (GetFileSystemEntries): Implement.
1667         (GetFiles): Implement.
1668
1669         * CheckArgument.cs (Path): Do not allow null by default.
1670
1671 Tue Jan 22 22:53:23 CET 2002 Paolo Molaro <lupus@ximian.com>
1672
1673         * DirectoryInfo.cs, FileInfo.cs: do not use Debug from the system
1674         assembly in corlib.
1675
1676 2002-01-20 Nick Drochak  <ndrochak@gol.com>
1677
1678         * SeekOrigin.cs: Added Serializable attribute.
1679
1680 2002-01-19  Duncan Mak  <duncan@ximian.com>
1681
1682         * PathTooLongException.cs: 
1683         * EndOfStreamException.cs: Added to CVS.
1684
1685 Thu Jan 10 12:06:46 MST 2002 Matt Kimball <matt@kimball.net>
1686
1687         * BufferedStream.cs: Initial implemenation.  The synchronous
1688         methods for both reading and writing are implemented.  I'll do the
1689         asynchronous methods in a bit.
1690         
1691 Wed Jan  9 16:04:39 MST 2002 Matt Kimball <matt@kimball.net>
1692
1693         * BinaryWriter.cs: Initial implementation.  And it's all there.
1694
1695         * BinaryReader.cs: The constructor now uses the passed in encoding,
1696         not UTF8 always.
1697
1698 Wed Jan  9 13:54:28 MST 2002 Matt Kimball <matt@kimbal.net>
1699
1700         * BinaryReader.cs: Initial implementation.  I think it's complete.
1701
1702 2002-01-04  Ravi Pratap  <ravi@ximian.com>
1703
1704         * CheckArgument.cs, CheckPermission.cs, Directory.cs: MonoTODO
1705         attribute decorations.
1706
1707         * DirectoryInfo.cs, File.cs, FileInfo.cs, FileSystemInfo.cs,
1708         Path.cs, TextReader.cs, TextWriter.cs : Ditto.
1709
1710         * FileLoadException.cs, FileNotFoundException.cs, StreamReader.cs: 
1711         Ditto.
1712
1713 2001-12-11  Dick Porter  <dick@ximian.com>
1714
1715         * FileStream.cs: Use handles rather than casting file descriptors.
1716         Added Handle property.
1717
1718 Wed Nov 14 16:47:47 CET 2001 Paolo Molaro <lupus@ximian.com>
1719
1720         * CheckPermission.cs: disable ModeAccess() code: it's wrong.
1721         * FileStream.cs: only trow an exception if the read failed in ReadByte().
1722         * StreamReader.cs: implement Peek and Read.
1723         * TextWriter.cs: CLSCompliant updates.
1724
1725 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
1726
1727         * FileNotFoundException.cs: Added some constructors
1728
1729         * Path.cs (GetFullPath): Fixed implementation
1730
1731 Fri Nov 2 18:27:58 CET 2001 Paolo Molaro <lupus@ximian.com>
1732
1733         * DirectoryNotFoundException.cs: implemented.
1734
1735 Tue Sep 25 18:54:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
1736
1737         * File.cs: fix signatures of the Open() and OpenRead() functions
1738         (they are static).
1739
1740 Thu Sep 13 18:04:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
1741
1742         * FileLoadException.cs, FileNotFoundException.cs: added.
1743
1744 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
1745
1746         * TextReader.cs: implemented the Read method
1747
1748         * StreamReader.cs: impl. stubs
1749
1750         * StreamWriter.cs: impl.
1751
1752         * TextWriter.cs: implemented Write and WriteLine methods
1753
1754 Sun Aug 26 23:01:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
1755
1756         * FileAccess.cs, FileMode.cs: change values to be compatible with
1757         the ms ones.
1758         
1759 Sun Aug 26 11:47:56 CEST 2001 Paolo Molaro <lupus@ximian.com>
1760
1761         * IOException.cs: Implemented System.IO.Exception.
1762
1763 2001-07-18  Michael Lambert <michaellambert@email.com>
1764
1765         *SeekOrigin.cs.cs, FileShare.cs, FileMode.cs, FileAccess.cs: Add.
1766
1767 2001-07-19  Marcin Szczepanski <marcins@zipworld.com.au>
1768
1769         * System.IO.MemoryStream.cs: Added.  Had quite a few cases of
1770         "LAMESPEC", but the tests work against the MS implementation so
1771         the major functions are right (ie. Read/Write/Seek).  Some more
1772         tests required for the various constructors and exceptions.
1773
1774 2001-07-16  Marcin Szczepanski <marcins@zipworld.com.au>
1775
1776         * StringReader.cs, StringWriter.cs, TextReader.cs, TextWriter.cs:
1777         New class implemenations.
1778
1779         * StringReaderTest.cs, StringWriterTest.cs: Test suite for the above.