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