2011-11-21  Jonathan Pryor  <jonpryor@vt.edu>

	[MonoDroid] Only alias stdout/stderr on Android devices.

	Mono for Android uses Mono 2.10 + smcs to build code, which thus
	uses an smcs built against the Mono for Android profile
	assemblies, which would thus be built with MONODROID defined. Thus
	(understandably) dies at runtime with a DllNotFoundException, as
	liblog.so can't be found.

	Fix smcs.

2011-11-21  Jonathan Pryor  <jonpryor@vt.edu>

	[corlib] On Android, alias stdout/stderr to logcat.

	In Mono for Android, stdout and stderr (file descriptors 1 and 2)
	are only visible when debugging within MonoDevelop and/or Visual
	Studio, which is rather annoying.

	This was changed in Mono for Android 1.9.2, by using
	Console.SetOut() and Console.SetError() to send stdout/stderr
	message to both stdout/stderr and to the Android Debug Log (`adb
	logcat`), allowing e.g. Console.WriteLine() output to be viewed
	outside of a debugger.

	Problem: in order to capture user-generated messages at their
	earliest point, Console.SetOut()/etc. must be called at the
	earliest point in Mono for Android initialization, even if
	Console.WriteLine() is never used. Worse, this adds ~180ms of
	startup overhead on a Nexus One.

	The fix here is to move the std*/logcat duplication logic into
	mscorlib.dll, so that we can configure things within the
	System.Console static constructor. This moves the initialization
	penalty onto users of System.Console (instead of all users).

2011-08-02  Alan McGovern  <alan.mcgovern@gmail.com>

	[System.IO.Path] Fix potential infinite loop in
	Path.GetTempFileName

	Refactor this method so that it only attempts alternative
	filenames if the filename just attempted already exists. This way
	we will never end up looping forever being unable to create the
	required file. Previously if we opened the maximum allowed files
	and then called GetTempFileName we'd loop forever throwing an
	IOException in the FileStream constructor every time.

2011-09-18  Sebastien Pouliot  <sebastien@xamarin.com>

	Expose Dispose under the NET_2_1 based profiles. Fix bug #154

2011-09-09  Sebastien Pouliot  <sebastien@xamarin.com>

	Throwing IsolatedStorageException is a Moonlight-behavior and
	should not have been exposed to other 2.1 profiles

2011-08-31  Atsushi Eno  <atsushi@ximian.com>

	Fix invalid path check for Windows regarding ':'.

2011-08-07  Bassam Tabbara  <bassam@symform.com>

	Remove Console.WriteLine from DriveInfo.GetDrives()

2011-04-25  Gonzalo Paniagua Javier  <gonzalo.mono@gmail.com>

	In *AllLines use WriteLine instead of Write.

	This fixes bug #689670.

2011-04-13  Marek Habersack  <grendel@twistedcode.net>

	[runtime,IO] Filesystem entries can only be sought for in
	directories, not files.

2011-03-30  Gonzalo Paniagua Javier  <gonzalo.mono@gmail.com>

	Revert "Fix a typo in Directory.GetFiles ()"

	This reverts commit 5bbd6c23f8c5931788ff11722283384639ffbcf0.

2011-03-28  Gonzalo Paniagua Javier  <gonzalo.mono@gmail.com>

	Fix a typo in Directory.GetFiles ()

	The mask never matched the attributes and all files were
	discarded. This fixes bug #683203.

2011-03-23  Miguel de Icaza  <miguel@gnome.org>

	OSX, Win32: Implements support for DriveInfo

	This implements support for DriveInfo for OSX and Windows.

	On OSX we use statfs system call that provides the filesystem type
	information that we need. On Linux, we continue to fallback to
	mtab parsing

2011-03-08  Gonzalo Paniagua Javier  <gonzalo.mono@gmail.com>

	Avoid null refs when capacity set to 0

	This fixes bug #676060.

2011-03-07  Geoff Norton  <grompf@sublimeintervention.com>

	Add 2 missing 4.0 APIs to the MOBILE profile

2011-02-24  Steve Bjorg  <steve.bjorg@gmail.com>

	TextReader.Null should return "" on ReadToEnd()

2011-02-24  Miguel de Icaza  <miguel@gnome.org>

	Add default implementations to ReadLine() and ReadToEnd() to
	TextReader, fixes 655934

2011-01-25  Geoff Norton  <grompf@sublimeintervention.com>

	Further .NET 4.0 ification of the mobile profile

2011-01-06  Gonzalo Paniagua Javier  <gonzalo.mono@gmail.com>

	[windows] Improve drive search

	Windows allows "A", "A:", @"a:\"... as synonyms for the same
	drive. Patch by Vincent Povirk that fixes bug #660911.

2011-01-06  Gonzalo Paniagua Javier  <gonzalo.mono@gmail.com>

	[Windows] Implement GetDrives.

	Drive names are ok, but the type is always 'Fixed'. Fixes bug
	#660907.

2011-01-06  Zoltan Varga  <vargaz@gmail.com>

	Change some usages of ArrayList to List<T> to avoid calls to the
	slow ArrayList.ToArray(Type) method.

2011-01-03  Miguel de Icaza  <miguel@gnome.org>

	[mscorlib] New Path.Combine methods are exposed internally on pre
	4.0 profiles

	This allows our mscorlib code to be cleaner

2010-11-21  Gonzalo Paniagua Javier  <gonzalo.mono@gmail.com>

	[File.ReadLines] Dispose the StreamReader in the right place.

	The StreamReader was being disposed immediately after the call to
	ReadLines() causing the enumerator to fails.

	Fixes bug #649464.

2010-11-04  Sebastien Pouliot  <sebastien@ximian.com>

	* FileStream.cs: Move anonymous assignation earlier so the value
	is available when validation are made (and calls other methods)

2010-10-29  Alex Fort  <imphasing@gmail.com>

	Don't use a buffer size of 1 for zero-length buffers

	Using a size of 1 for zero length buffers causes (on linux) the
	last character to be eaten by the buffer until the next flush.

2010-10-27  Alex Fort  <imphasing@gmail.com>

	[Fix] Don't enforce a minimum size for zero-length buffers, fixing
	#645193

	InitBuffer was forcing the length of any buffer smaller than 8 to
	be 8, but for zero-size buffers, this isn't correct.

2010-10-24  Gonzalo Paniagua Javier  <gonzalo.mono@gmail.com>

	BinaryWriter.BaseStream calls Flush()

	Before returning the base stream, BinaryWriter.BaseStream calls
	Flush on it. Added test for this.

	Fixes bug #647948.

2010-10-15  Marek Safar  <marek.safar@gmail.com>

	Warnings cleanup

2010-10-07  Gonzalo Paniagua Javier  <gonzalo.mono@gmail.com>

	Fix CryptoStream.Dispose

	-Dispose will call TransformFinalBlock() for Read streams. Fixes
	bug #644648. -Dispose () will call Dispose (bool). Fixes bug
	#644654. -Stream.Close calls GC.SuppressFinalize(). Fixes bug
	#644660.

2010-09-10  Jb Evain  <jbevain@gmail.com>

	Add FileStream.Flush(bool) to the moonlight profile

2010-09-03  Gonzalo Paniagua Javier  <gonzalo.mono@gmail.com>

	Use UTF8 instead of ASCII when reading mount info

	This allows for mount points with UTF8 characters in them.

2010-09-03  Gonzalo Paniagua Javier  <gonzalo.mono@gmail.com>

	Linux /proc/mounts might have escaped characters

	Translate escaped characters in mount paths.

	Fixes bug #637078.

2010-05-27  William Holmes  <billholmes54@gmail.com>

	* Directory.cs (ValidateDirectoryListing): Removing an unnecessary
	Path.Combine call. Part of the fix for bug #580090.

	Code is contributed under MIT/X11 license.

2010-06-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* FileStream.cs: Include a required ctor in NET_2_1 so that it compiles.

2010-05-20  Marek Habersack  <mhabersack@novell.com>

	* FileStream.cs: when running on Windows and a path with Unix
	directory separator chars is passed (including an UNC share), get
	the canonical form of the path before attempting to retrieve its
	directory name. Fixes bug #607502

	* Path.cs: typo fix

2010-05-08  Marek Habersack  <mhabersack@novell.com>

	* Path.cs: vararg overload of Combine now correctly concatenates
	segments.
	The 3 and 4 argument overloads of Combine check whether the passed
	segments are null or not.

2010-05-05 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* Path.cs: prevent infinite loop when TMPDIR (or equivalent)
	points to a non-existent directory.

2010-04-21  Sebastien Pouliot  <sebastien@ximian.com> 

	* FileInfo.cs: Ensure elevated trust when calling Delete on 
	Moonlight.
	* FileSystemInfo.cs: Ensure elevated trust when calling [Creation
	|LastAccess|LastWrite]Time setters

2010-04-16  Sebastien Pouliot  <sebastien@ximian.com> 

	* Directory.cs: Ensure elevated trust when calling on 
	Moonlight.
	* DirectoryInfo.cs: Ensure elevated trust when calling a .ctor 
	on Moonlight.
	* File.cs: Ensure elevated trust when calling a .ctor on 
	Moonlight.
	* FileInfo.cs: Ensure elevated trust when calling a .ctor on 
	Moonlight.
	* FileStream.cs: Ensure elevated trust when calling a .ctor on 
	Moonlight. Name property returns "[Unknown]" unless a Moonlight
	application is executed with elevated trust.
	* Path.cs: Ensure elevated trust when calling a GetTempPath,
	GetTempFileName or GetFullPath on Moonlight. Add a shared 
	internal method to validate paths to reduce code duplication.

2010-04-15  Jb Evain  <jbevain@novell.com>

	* Directory.cs: don't fully qualify name when not it's necessary.

2010-03-29  Sebastien Pouliot  <sebastien@ximian.com>

	* DirectoryInfo.cs, FileInfo.cs: Moonlight needs the default ctor
	to decorate them with [SecuritySafeCritical] for corclr 
	inheritance rules

2010-03-25 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* Directory.cs: a directory named ":" is legal in unix.
	This gets rid of the annoying ":" folder when running
	corlib tests.

2010-03-22  Sebastien Pouliot  <sebastien@ximian.com>

	* Directory.cs, DirectoryInfo.cs: Disble new NET_4_0 API used in
	SL4 until we have elevated trust working correctly (since they 
	are *not* decorated as [SecurityCritical])

2010-03-17 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* StreamReader.cs: if the detected encoding is different from the
	provided to the constructor, adjust the decoded buffer size if
	needed. Fixes bug #589236.

2010-03-17  Sebastien Pouliot  <sebastien@ximian.com>

	* Stream.cs: CopyTo methods are part of SL4 too

2010-03-16  Jb Evain  <jbevain@novell.com>

	* FileStream.cs, File.cs, DirectoryInfo.cs, Directory.cs: use
	MOONLIGHT symbol to disambiguate MonoTouch and Moonlight code.

2010-03-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* Path.cs:
	* Directory.cs:
	* DirectoryInfo.cs: Add some of the 4.0 methods to Moonlight.

2010-03-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* SearchOption.cs: Make public for Moonlight, this type is in SL4.

2010-03-12  Sebastien Pouliot  <sebastien@ximian.com>

	* File.cs: Enable some NET_4_0 features in NET_2_1 since they are
	part of SL4. Throw a SecurityException in Moonlight in non-debug
	builds until we're ready for elevated trust.

2010-03-11  Zoltan Varga  <vargaz@gmail.com>

	* Path.cs (GetTempFileName): Fix infinite loop if the process doesn't have
	write access to /tmp. Fixes #585017.

2010-02-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>

	* MemoryStream.cs: When setting Capacity, don't create a new buffer if
	the new expected value is the same as the current one.

2010-02-15 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* StreamWriter.cs:
	* FileStream.cs: if flushing fails when disposing the stream, make
	sure it is closed before throwing the exception. Fixes bug #579146.

2010-01-31  Zoltan Varga  <vargaz@gmail.com>

	* Directory.cs (Exists): Never throw an exception. Fixes #565152.

2010-01-28 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* UnmanagedMemoryStream.cs: fix a regression from my previous patch.

2010-01-26  Marek Habersack  <mhabersack@novell.com>

	* SearchOption.cs: included in 2.1 build as internal to fix
	the build.

2010-01-25 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* DirectoryInfo.cs: new overload for GetFileSystemInfos().

2010-01-25 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* UnmanagedMemoryStream.cs: add the SafeBuffer overloads.

2010-01-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>

	* StreamReader.cs: When detecting the encoding we usually check the
	four first bytes looking for either UTF32 or UTF8 BOM, since they share
	the first two bytes, but if we happen to have less than 4 bytes at
	detection time, just check for Unicode and use it as the current
	encoding - this is exactly what .Net does, and it is specially visible
	with NetworkStream.
	Fixes #534137.

2010-01-19  Alan McGovern  <amcgovern@novell.com>
	* BufferedStream.cs: Patch by Tom Philpot to optimise ReadByte and
	WriteByte significantly by making them fulfill their request by
	directly reading from the buffer.

2010-01-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* UnmanagedMemoryStream.cs: Read: don't read bytes one-by-one, read all
	at once.

2010-01-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>

	* MemoryStream.cs: Don't clear the bytes beyond Length when shrinking
	it. Instead just save the related information for it and do it when
	Length grows and touchs that dirty region. Refactor the code where
	needed to avoid duplication as well.
	Fixes #327053.

2009-12-21  Sebastien Pouliot  <sebastien@ximian.com>

	* File.cs (ReadAllBytes): We cannot assume that a single call to
	Read will return all the data we require.

2009-11-24  Marek Safar <marek.safar@gmail.com>

	* StreamReader.cs, FileStream.cs: Use recycle buffer to avoid
	repeated underlying buffer initialization (saves hefty 10MB
	during corlib compilation).
	
	* Path.cs (InsecureGetFullPath): Avoid CanonicalizePath in common
	path.

2009-11-23  Miguel de Icaza  <miguel@novell.com>

	* DirectoryInfo.cs: Added the new overloads.

	* Directory.cs: Add EnumerateFiles and EnumerateFileSystemEntries
	overloads.    Share code.
	
	Add new GetFileSystemEntries overload

2009-11-22  Miguel de Icaza  <miguel@novell.com>

	* Directory.cs: Added new IEnumerable methods to Directory.

	* MonoIO.cs: Surface a high level FindFirst/FindNext API to
	implement the various enumerable APIs.

2009-11-13  Marek Safar <marek.safar@gmail.com>

	* UnmanagedMemoryAccessor.cs: Finished.

2009-11-13  Marek Safar <marek.safar@gmail.com>

	* UnmanagedMemoryAccessor.cs: Finished.

2009-11-08  Miguel de Icaza  <miguel@novell.com>

	* FileInfo.cs: Partially implement.

	* Stream.cs: Implement synchornized.

2009-11-07  Miguel de Icaza  <miguel@novell.com>

	* UnmanagedMemoryStream.cs: Move the CLS attribute to the methods
	that are unsafe.

	* Path.cs (Combine):e Fix implementation to follow docs (we need
	to reset the path if any of the combined paths is rooted), and add a
	couple of overloads;

	* FileStream.cs (Flush/flushToDisk): Implement.

	* Stream.cs (CopyTo): Implement.

2009-11-03  Miguel de Icaza  <miguel@novell.com>

	* FileStream.cs: Check the return value of MonoIO.Write and handle
	short-writes as those can happen when a FileStream is used on top
	of a pipe on Unix.

	Fixes bug: #531613, this should be backported to 2-4 and 2-6 after
	some testing.

2009-10-29  Sebastien Pouliot  <sebastien@ximian.com>

	* FileStream.cs: Reduce code duplication by merging FillBuffer 
	with FillBufferToStream

2009-10-28  Sebastien Pouliot  <sebastien@ximian.com>

	* FileStream.cs: Move code to deal with 'anonymous' filenames
	into two methods (returning the path, fullpath or only the 
	filename). Default Moonlight to anonymous (not only for isolated
	storage) unless the coreclr is disable (e.g. smcs)

2009-10-21  Miguel de Icaza  <miguel@novell.com>

	* BinaryWriter.cs, BinaryReader.cs: 4.0 signature update.

	* File.cs (ReadLines, AppendAllLines, WriteAllLines): Add
	IEnumerable methods.

	* Path.cs (Combine): add the params overload. 

2009-10-15  Sebastien Pouliot  <sebastien@ximian.com>

	* UnmanagedMemoryStream.cs: Fix some and add missing validations

2009-09-23  Sebastien Pouliot  <sebastien@ximian.com> 

	* StreamReader.cs: Add back UTF32 under NET_2_1 (for smcs)

2009-09-23  Sebastien Pouliot  <sebastien@ximian.com>

	* Directory.cs: Don't expose SearchOption in NET_2_1
	* DirectoryInfo.cs: Don't expose SearchOption in NET_2_1
	* MonoIO.cs: Don't throw a DriveNotFoundException under NET_2_1 -
	an IOExpection will be thrown (like the 1.x profile)

2009-09-22  Sebastien Pouliot  <sebastien@ximian.com>

	* StreamReader.cs: Don't use UTF32 under NET_2_1

2009-09-18  Sebastien Pouliot  <sebastien@ximian.com>

	* Directory.cs: Avoid imperative CAS checks and remove 
	AccessControl types for NET_2_1
	* DirectoryInfo.cs: Remove AccessControl types for NET_2_1
	* File.cs: Remove AccessControl types for NET_2_1
	* FileInfo.cs: Remove AccessControl types for NET_2_1
	* FileStream.cs: Remove AccessControl types for NET_2_1
	* Path.cs: Avoid imperative CAS checks for NET_2_1

2009-09-17 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* DirectoryInfo.cs: throw if FullPath is not a directory.
	Fixes bug #539791.

2009-09-04  Zoltan Varga  <vargaz@gmail.com>

	* UnmanagedMemoryAccessor.cs: New net 4.0 class.

2009-07-14 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* Path.cs: only trim the end of the file.
	Fixes bug #521924.

2009-05-05  Miguel de Icaza  <miguel@novell.com>

	* Contribution from David Uvalle <david.uvalle@gmail.com> that
	implements FileInfo.Replace.

2009-04-25  Miguel de Icaza  <miguel@novell.com>

	* StreamReader.cs (DataAvailable): New internal function to work
	around the fact that StreamReaders are now blocking on Peek(), and
	that our own Console.TermInfoDriver used Peek() as a way of
	probing if there was data on a stream before to avoid blocking. o

2009-04-24 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* StreamReader.cs: if Peek() needs to block, do it.
	Fixes bug #496905.

2009-03-22  Marek Habersack  <mhabersack@novell.com>

	* FileStream.cs: implemented the SafeFileHandle property.

2009-02-24 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* StringReader.cs: LF followed by CR is 2 lines.

2009-02-12 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* MonoIO.cs:
	* MonoIOError.cs: enable ERROR_NOT_SAME_DEVICE.

2009-02-06 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* StreamReader.cs: when a LF ends a decoded buffer and is not followed
	by a CR in the next decoded buffer, we didn't flush the string.
	Fixes bug #445326.

2009-01-08  Christian Prochnow  <cproch@seculogix.de>

	* DriveInfo.cs: Added GetDiskFreeSpaceInternal
	to query drive size and free space.
	Added GetDriveTypeInternal to query type of drive.

2008-12-20  Miguel de Icaza  <miguel@novell.com>

	* FileStream.cs: Found while debugging webcompare, we should add
	Obsoletes to the FileStream constructors that take IntPtrs.

2008-11-27  Sebastien Pouliot  <sebastien@ximian.com>

	* FileInfo.cs: Change ToString (in 2.1) not to return the full path
	of the filename (since it's not SecurityCritical).

2008-11-09  William Holmes  <billholmes54@gmail.com>

	* TextReader.cs : Adding the NullTextReader as a private class to
	  the TestReader class for the Null field of the TestReader.

	Code is contributed under MIT/X11 license.

2008-11-06  Jonathan Chambers  <joncham@gmail.com>

	* MonoIO.cs : Add DuplicateHandle.

2008-10-29 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* Path.cs: clean the path when we're not in windows. 
	Bug #321706 fixed.

2008-10-12  Zoltan Varga  <vargaz@gmail.com>

	* BinaryReader.cs (Read7BitEncodedInt): Check for an invalid encoding.
	Fixes #434581.

2008-08-22  Sebastien Pouliot  <sebastien@ximian.com>

	* FileStream.cs, MonoIO.cs: For Silverlight 2.0 (NET_2_1) we always
	throw IsolatedStorageException instead of FileNotFoundException and
	DirectoryNotFoundException.

2008-08-21  Sebastien Pouliot  <sebastien@ximian.com>

	* FileStream.cs: Adjust exception being thrown for Silverlight 2.0.
	* FileSystemInfo.cs: In Silverlight 2 this type does not inherit from 
	MarshalByRefObject nor does it implement ISerializable.
	* Stream.cs: In Silverlight 2 this type does not inherit from 
	MarshalByRefObject.
	* TextReader.cs: In Silverlight 2 this type does not inherit from 
	MarshalByRefObject.
	* TextWriter.cs: In Silverlight 2 this type does not inherit from 
	MarshalByRefObject.
	* UnmanagedMemoryStream.cs: For Silverlight 2 add CLSCompliant(false)
	to the PositionPointer property.

2008-08-15  Gert Driesen  <drieseng@users.sourceforge.net>

	* StreamWriter.cs: Change argument check for buffersize to require
	positive number. Removed duplicate disposed check for AutoFlush.
	Removed unnecessary initialization of bools.

2008-08-15  Gert Driesen  <drieseng@users.sourceforge.net>

	* StreamWriter.cs: Removed duplicate argument checks from .ctor taking
	path, as these checks are already done in FileStream .ctor. Removed
	parameter name from ArgumentException to match MS.

2008-07-28  Marek Safar <marek.safar@gmail.com>

	* File.cs: Delay DateTime .cctor invocation.

2008-07-04  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* File.cs: Fix parameter name

2008-07-03  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* TextWriter.cs:
	* StreamWriter.cs:
	* StreamReader.cs:
	* Stream.cs:
	* MemoryStream.cs:
	* File.cs:
	* DriveNotFoundException.cs:
	* Directory.cs: Fix parameter names

2008-06-30  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* BinaryReader.cs: Fix parameter names
	* BinaryWriter.cs: Fix parameter names, fix exceptions
	* BufferedStream.cs: Fix parameter names
	* Directory.cs: Fix parameter names, fix exceptions, optimize == "" cases
	* DirectoryInfo.cs:
	* DirectoryNotFoundException.cs:
	* FileNotFoundException.cs:
	* FileStream.cs: Fix parameter names, fix exceptions
	* IOException.cs: Fix parameter names

2008-06-21  Gert Driesen  <drieseng@users.sourceforge.net>

	* Path.cs: Fixed exception arguments to match MS. Removed obsolete
	LAMESPEC comment. In GetPathRoot, throw ArgumentException if path
	is whitespace-only. Throw ArgumentException in HasExtension, if path
	contains invalid path characters.

2008-05-29  Robert Jordan  <robertj@gmx.net>

	* Path.cs (InsecureGetFullPath): Call CanonicalizePath for
	UNC paths as well.
	* Path.cs (GetServerAndShare): New helper method.
	* Path.cs (SameRoot, CanonicalizePath): Add UNC support.
	Fixes #394681 and a bunch of TestGetFullPath unit test cases.
	All changes are Win32 related.

2008-05-14  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* DriveInfo.cs: Fix compiler warning

2008-05-07  Sebastien Pouliot  <sebastien@ximian.com>

	* CheckArgument.cs: Removed. Lots of unused code. The two methods
	used are now inlined into Path.cs
	* CheckPermission.cs: Removed. Lots of unused code.
	* Path.cs: Inlined two checks.
	[Found using Gendarme]

2008-04-18  Sebastien Pouliot  <sebastien@ximian.com>

	* Path.cs: Change PathSeparatorChars from private to internal since
	it's needed for IsolatedStorage.

2008-04-17  Gert Driesen  <drieseng@users.sourceforge.net>

	* DirectoryInfo.cs: Added new internal ctor, which takes a bool that
	indicates whether the original path should only container the last
	part of the directory. Moved logic for determining the Name and
	Parent to Initialize method, to allow it to be re-used on
	deserialization. Renamed argument names to fix corcompare issues.
	Added missing argument checks.
	* Directory.cs (CreateDirectoriesInternal): Use internal ctor for
	DirectoryInfo to ensure OriginalPath only contains last part of
	the directory. 
	* File.cs: Removed redundant checks from Create. On 2.0 profile, pass
	FileOptions to FileStream. Removed redundant directory check from
	Delete and modified exceptions to more closely match MS.
	* FileInfo.cs: Added argument check to ctor to match MS. Added missing
	deserialization ctor. Modified argument checks in MoveTo, and removed
	redundant checks. Added missing argument checks in CopyTo. Code
	formatting.
	* FileSystemInfo.cs: Modified argument checks in CheckPath to more
	closely match MS.
	* MonoIO.cs: Added msg that does not disclose filename for 
	ERROR_FILE_EXISTS. 
	* Path.cs: Use String.Length instead of comparing with String.Empty.
	Removed exceptions argument names to match MS.

2008-04-16  Gert Driesen  <drieseng@users.sourceforge.net>

	* File.cs: Changed argument names and thrown exception to better match
	.NET. Use String.Length instead of comparison with empty string.
	* DirectoryInfo.cs: Added missing deserialization ctor.

2008-04-04  Dick Porter  <dick@ximian.com>

	* File.cs: Pretty up the file share exception with the path name.

2008-03-28  Sebastien Pouliot  <sebastien@ximian.com>

	* Directory.cs: Exception differs when deleting a directory if it 
	does not exists or if a file of the same name exists. Also don't 
	include path in exception if Delete fails.

2008-03-20  Marek Safar  <marek.safar@gmail.com>

	* Path.cs (Combine): Call ToString to optimize concatenation.

2008-03-02  Gert Driesen  <drieseng@users.sourceforge.net>

	* DriveInfo.cs: Removed debug code.

2008-02-15  Miguel de Icaza  <miguel@novell.com>

	* UnmanagedMemoryStream.cs: Implement few missing pieces.

2008-02-10  Zoltan Varga  <vargaz@gmail.com>

	* UnexceptionalStreamReader.cs (Read): Optimize this to avoid making a number of
	calls + creation of a string for each character read.

2008-02-03  Sebastien Pouliot  <sebastien@ximian.com>

	* MemoryStream.cs: Remove unused code found by Gendarme.

2008-01-16  Zoltan Varga  <vargaz@gmail.com>

	* BinaryReader.cs: Fix ReadCharBytes method to avoid non-linear behavior. 
	Fixes #352184.

2007-12-28  Zoltan Varga  <vargaz@gmail.com>

	* MemoryStream.cs: Fix crash if internalBuffer is null. Avoid calling
	unsafe icalls. Fixes #350860.

2007-11-21  Atsushi Enomoto  <atsushi@ximian.com>

	* FileStream.cs : Close() does not exist in 2.0 (Stream does).
	  Move GC.SuppressFinalize() to Dispose(true).

2007-11-12  Juraj Skripsky  <js@hotfeet.ch>

	* Path.cs (GetRandomFileName): Return filenames containing only
	characters from the range [a..z0..9] as MS.NET does. 

2007-11-02  Atsushi Enomoto  <atsushi@ximian.com>

	* StreamReader.cs : Encoding.GetMaxCharCount() does not always return
	  the maximum max char count for Decoder.GetChars() since it might
	  contain pending buffer by flush. Fixed bug #338370.

2007-11-01  Miguel de Icaza  <miguel@novell.com>

	* Path.cs (GetDirectoryName): The paths returned from this routine
	should be canonical, not just a substring.   In addition to fixing
	this, it also fixes #324742.

2007-10-26  Atsushi Enomoto  <atsushi@ximian.com>

	* BinaryReader.cs, BinaryWriter.cs : use unsafe encoding that has ""
	  for replacement fallback. Binary serialization regression is fixed.

2007-09-06  Atsushi Enomoto  <atsushi@ximian.com>

	* Stream.cs, BufferedStream.cs, MemoryStream.cs: in 2.0 override
	  Dispose(bool) rather than Close().
	  Stream.Dispose() is virtual in 2.0.

2007-08-24  Gert Driesen  <drieseng@users.sourceforge.net>

	* BinaryReader.cs: Fixed line endings.
	* FileStream.cs: Rename name argument to path. Spaces to tabs.

2007-08-20  William Holmes  <billholmes54@gmail.com>

	*File.cs:  Add implementation for IO.File.Replace methods.
	*MonoIO.cs: Declared an internal call for ReplaceFile

	Code is contributed under MIT/X11 license.

2007-07-31  Dick Porter  <dick@ximian.com>

	* MonoIO.cs: Fix formatting of 'access denied' exception when the
	path info isn't known.  Fixes bug 82141.

2007-07-08  Gert Driesen  <drieseng@users.sourceforge.net>

	* Directory.cs: Renamed Move arguments to match MS. Allow Move to be
	used to move files, patch by Robert Jordan. Fixes bug #81912. Spaces
	to tabs.

2007-06-21  Dick Porter  <dick@ximian.com>

	* FileStream.cs: Fix FileShare test, fixing better bug 79250.

2007-05-28  Atsushi Enomoto  <atsushi@ximian.com>

	* UnmanagedMemoryStream.cs : added Closed event for sys.Resources use.
	* IntPtrStream.cs : added internal get_BaseAddress(), for the same.

2007-05-25  Gert Driesen  <drieseng@users.sourceforge.net>

	* UnmanagedMemoryStream.cs: In Read and ReadByte, use Marshal.ReadByte
	to read bytes as this allows us to start reading from the current
	position. In Read, return 0 when reading beyond the end of the stream
	and only read bytes until the end of the stream (not capacity).
	In ReadByte, return -1 when reading beyond the end of the stream.
	In SetLength: changed argument validation (and reported exceptions) to
	match MS, removed duplicate access check and changed the current
	position if length is less than position. In Write: throw
	NotSupportedException when attempting to write beyond capacity, use
	Marshal.WriteByte since that allows us to start writing from the
	current position. Adjust length when position moves beyond length
	in both Write and WriteByte. Allow position to be moved beyond
	capacity of stream. Fixed position using Seek (=+ typo). Changed
	CanRead to ignore current position. Allow Position to be used to move
	beyond capacity of stream.

2007-05-24  Gert Driesen  <drieseng@users.sourceforge.net>

	* UnmanagedMemoryStream.cs: Changed argument names and exceptions 
	(msg, params) to match MS. Verify access argument in ctor. 

2007-05-23  Atsushi Enomoto  <atsushi@ximian.com>

	* UnmanagedMemoryStream.cs : couple of bugfixes. in Read(), don't
	  return buffer beyond the requested length. Fixed .ctor() for wrong
	  capacity initialization.

2007-05-12  Jonathan Chambers  <joncham@gmail.com>

	* FileStream.cs: Implement SafeHandle constructors.

2007-05-01  Dick Porter  <dick@ximian.com>

	* File.cs:
	* Stream.cs: Missed a few 2.0 methods

2007-04-30  Dick Porter  <dick@ximian.com>

	* Directory.cs: 
	* FileShare.cs: 
	* DirectoryNotFoundException.cs: 
	* SeekOrigin.cs: 
	* FileAttributes.cs: 
	* IOException.cs: 
	* MemoryStream.cs: 
	* FileMode.cs: 
	* BinaryWriter.cs: 
	* TextWriter.cs: 
	* File.cs: 
	* BinaryReader.cs: 
	* TextReader.cs: 
	* UnmanagedMemoryStream.cs: 
	* StringWriter.cs: 
	* FileAccess.cs: 
	* FileLoadException.cs: 
	* BufferedStream.cs: 
	* Stream.cs: 
	* FileInfo.cs: 
	* FileStream.cs:
	* StringReader.cs: 
	* StreamWriter.cs: 
	* EndOfStreamException.cs: 
	* DriveInfo.cs: 
	* StreamReader.cs: 
	* PathTooLongException.cs: 
	* DriveType.cs: 
	* FileNotFoundException.cs: 2.0 profile updates

2007-04-21  Alp Toker  <alp@atoker.com>

	* FileStream.cs: Respect request for buffering in all cases.

	Gonzalo added code in r42667 that disables buffering even when it is
	requested, in the case that ftype != MonoFileType.Disk. This was
	killing performance for users who do Console.OpenStandardOutput(1024)
	but were ending up with a non-buffered FileStream.

	The new behaviour appears correct but we should watch for any
	regressions.

2007-04-05  Dick Porter  <dick@ximian.com>

	* Directory.cs: Pass combined path and pattern to
	MonoIO.GetFileSystemEntries()

2007-04-03  Alp Toker  <alp@atoker.com>

	* UnmanagedMemoryStream.cs: Should not have a public Dispose().
	This behaviour is already provided by the base class.

2007-04-03  Alp Toker  <alp@atoker.com>

	* Stream.cs: CreateWaitHandle() obsolete in 2.0.

2007-03-18  Alp Toker  <alp@atoker.com>

	* UnmanagedMemoryStream.cs:
	* Directory.cs: Exception message typo fixes.

2007-03-11  Zoltan Varga  <vargaz@gmail.com>

	* UnmanagedMemoryStream.cs: Fix a warning.

2007-03-05  Miguel de Icaza  <miguel@novell.com>

	* Path.cs: Manually call FileStream and pass the new internal
	FileOptions.1 flag that means "This is a temporary file, use 600
	permissions". 

	* FileOptions.cs: Document the new private enum value.

2007-02-22  Dick Porter  <dick@ximian.com>

	* MonoIOError.cs: 
	* MonoIO.cs: Handle ERROR_CANNOT_MAKE.

2007-02-19	Eyal Alaluf <eyala@mainsoft.com>

	* DirectoryInfo.cs, Directory.cs: Use MonoNotSupported & MonoLimitation
	  attribute to tag that DirectorySecurity is not supported.

2007-02-19	Boris Kirzner <borisk@mainsoft.com>

	* Path.cs: fix order of InvalidPathChars on windows.

2007-01-31  Gert Driesen  <drieseng@users.sourceforge.net>

	* StreamReader.cs: Removed checks for non-existing directory or file,
	since these checks are also performed in FileStream.

2007-01-31  Gert Driesen  <drieseng@users.sourceforge.net>

	* FileStream.cs: Always resolve to absolute paths for exceptions, when not
	in anonymous mode.

2007-01-24 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>

	* StreamReader.cs: fix for bug #75526. We return earlier from Read () if
	the underlying stream might block or end on the next read.

2007-01-22  Miguel de Icaza  <miguel@novell.com>

	* DirectoryInfo.cs: Throw a better exception (accorind go the
	docs, UnauthorizedAccessException is thrown if the underlying
	platform does not support it and *also* if there are no
	permissions to access it, which is more convenient than the
	PlatformNotSupportedException that only states that it needs Win2k
	or newer).

2006-12-23  Alp Toker  <alp@atoker.com>

	* Directory.cs: "platfor" typofix

2006-12-22  Sebastien Pouliot  <sebastien@ximian.com>

	* File.cs: Add stubs for Encrypt and Decrypt that throws 
	NotSupportedException just like non-NTFS file systems would with MS.
	Remove nested #if NET_2_0.
	* FileInfo.cs: Add stubs for Encrypt and Decrypt that throws 
	NotSupportedException just like non-NTFS file systems would with MS.

2006-12-22  Atsushi Enomoto  <atsushi@ximian.com>

	* Directory.cs : non NET_2_0 build fix.

2006-12-15  Miguel de Icaza  <miguel@novell.com>

	* FileInfo.cs: Empty implementations for Encrypt and Decrypt

Mon Dec 11 11:40:06 CET 2006 Paolo Molaro <lupus@ximian.com>

	* FileStream.cs: correct exception message patch from
	Markus Mauhart <mmauhart@chello.at>.

2006-11-28  Duncan Mak  <duncan@novell.com>

	* TextReader.cs (Dispose): Expose as public in NET_2_0.

2006-11-26  Miguel de Icaza  <miguel@novell.com>

	* DriveInfo.cs, DriveType.cs: Add a couple of classes for
	CreativeDocs.Net.  

	Thanks MoMA!  http://www.mono-project.com/Moma

2006-11-16  Miguel de Icaza  <miguel@novell.com>

	* DirectoryInfo.cs (GetFiles): Implement option with SearchOptions
	== AllDirectories

2006-11-13  Dick Porter  <dick@ximian.com>

	* Directory.cs: Don't follow symlinks when deleting directories.
	Keeps bug 79733 fixed while fixing bug 79887.

	* MonoIO.cs: ExistsSymlink() added, which checks for
	FileAttributes.ReparsePoint.

2006-11-07  Dick Porter  <dick@ximian.com>

	* Directory.cs: CreateDirectory() should only throw IOException in
	the 2.0 profile if a file already exists with the same name, not a
	directory.

2006-11-03 Jensen Somers <jensen.somers@gmail.com>

	* Directory.cs: CreateDirectory() should throw IOException if a
	file or directory with the same name already exists, in the 2.0
	profile.  Fixes bug 79806.

2006-10-30 Joel Reed  <joel.reed@ddiworld.com>

	* DirectoryInfo.cs: Implement SearchOption.AllDirectories option.

2006-10-11  Dick Porter  <dick@ximian.com>

	* FileStream.cs: Cope with 2.0 FileShare.Delete values.  Patch by
	Peter Dettman <peter.dettman@iinet.net.au> fixing bug 79250.

2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileInfo.cs: added 2.0 IsReadOnly. Patch by Joel Reed.

2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileInfo.cs: eol-style.

2006-09-19  Gert Driesen  <drieseng@users.sourceforge.net>

	* FileNotFoundException.cs: Changed message for default ctor to match
	MS. Use internal message field of Exception to check whether Message
	is null. On 2.0 profile, use file/assembly load failure message when
	no message is set and a filename was specified. On 1.0 profile,
	always use file/assembly load failure message when no message is set
	(regardless of whether a filename was specified or not). Made some
	cosmetic changes to ToString to have it match MS.

2006-09-02  Zoltan Varga  <vargaz@gmail.com>

	* BinaryReader.cs (Read): Avoid allocating memory when reading a char.

2006-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* StreamReader.cs: avoid ArgumentOutRangeException when the underlying
	stream returns -1 on Read.

2006-08-30  Lluis Sanchez Gual  <lluis@novell.com>

	* FileInfo.cs: OpenRead should open the file using the Read share mode.

2006-08-21  Sebastien Pouliot  <sebastien@ximian.com>

	* Path.cs: Added internal method IsPathSubsetOf required to implement
	correctly FileIOPermission (better located here).

2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* File.cs: (Delete) avoid creating the exception object for the 'file
	not found' case.

2006-07-24  Miguel de Icaza  <miguel@novell.com>

	* FileShare.cs: Add Delete in 2.0

2006-07-06  Dick Porter  <dick@ximian.com>

	* Directory.cs: When creating a directory treat ERROR_FILE_EXISTS
	(ie a file already exists with that name) the same as
	ERROR_ALREADY_EXISTS (ie a directory already exists with that
	name.)  Keeps bug 50753 fixed when I fix the io-layer
	CreateDirectory() behaviour.

2006-06-21  Atsushi Enomoto <atsushi@ximian.com>

	* Directory.cs : implemented GetFiles() and GetDirectories() which
	  takes SearchOption (as they are used in one of ruby.net stuff).

2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* File.cs: never throw in Exists.

2006-05-18  Miguel de Icaza  <miguel@novell.com>

	* Directory.cs (Exists): Ignore INVALID_HANDlE, return false.

2006-06-03 John Luke <john.luke@gmail.com>

	* Path.cs: fix typo in [Obsolete] message
	
2006-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* BinaryReader.cs: use BlockCopyInternal.

2006-05-01  Daniel Drake  <dsd@gentoo.org>

	* Directory.cs: Return false (as documented) on ERROR_ACCESS_DENIED in
	Exists() rather than throwing an exception. Bug #78239.

2006-04-29  Atsushi Enomoto <atsushi@ximian.com>

	* UnexceptionalStreamReader.cs (Read): Fix for #78218, where we
	consumed characters from the input even when the count was not set
	to zero, causing some characters to be missing in some
	circumstances. 

2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs: make sure the parent directory is not an empty string
	when a file name with no path is provided. Fixes bug #78209. Patch by
	Emery Conrad.

2006-04-28  Atsushi Enomoto  <atsushi@ximian.com>

	* StreamReader.cs : implemented EndOfStream property.
	* File.cs : implemented AppendAllText(), WriteAllLines(),
	  WriteAllBytes() and ReadAllLines(). Bug #77813 fixed.

2006-04-28  Robert Jordan  <robertj@gmx.net>

	* Path.cs (GetPathRoot): Return just the \\server\share
	part of a UNC. Fixes #78147.


2006-04-26  Miguel de Icaza  <miguel@novell.com>

	* FileStream.cs: Implement the FileOptions usage by passing all
	the information to the C layer.  Remove the "isAsync" argument for
	MonoIO.Open, and instead pass it on the FileOptions.

	* FileOptions.cs: Make it build when including WriteThrough

	* MonoIO.cs: Update MonoIO.Open signature to drop the async
	argument and take FileOptions instead. 

2006-04-21  Zoltan Varga  <vargaz@gmail.com>

	* FileStream.cs: Add new net 2.0 ctor.

	* FileOptions.cs: New file.

2006-03-21  Miguel de Icaza  <miguel@novell.com>

	* Stream.cs: In 2.0 make Close call Dispose(true).

2006-03-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs: Seek() should flush the buffer, if any. Fixes bug
	#77863.

2006-03-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>

	* Stream.cs: Add 2.0 members to Stream.cs (CanTimeout,
	ReadTimeout and WriteTimeout).
	
2006-02-27  Gert Driesen  <drieseng@users.sourceforge.net>

	* File.cs: In 2.0 profile, File.Get****Time(Utc) should not throw
	IOException if specified path does not exist. Fixes bug #77641.

2006-02-26  Gert Driesen  <drieseng@users.sourceforge.net>

	* FileStream.cs: To match MSFT, ignore FileShare.Inheritable on 2.0
	profile. This fixes bug #77644. Improved usefulness of some existing
	exception messages.

2006-02-22  Joerg Rosenkranz <joergr@voelcker.com>

	* MonoIO.cs, MonoIOError.cs: Verbose exception for error 39 
	  (disk full).
	  
2006-02-03  Zoltan Varga  <vargaz@gmail.com>

	* Stream.cs FileStream.cs: Add new 2.0 Dispose () method and protected
	Dispose (bool) method.

2006-01-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* TextWriter.cs: Dispose () is public in 2.0.

2006-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* UnexceptionalStreamReader.cs: Read (char,int,int) should not
	return -1. Thanks to Jakob Berkman.

2006-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* StreamReader.cs: (ReadToEnd) if Read returns -1 or 0, we're done.

2006-01-18  Atsushi Enomoto  <atsushi@ximian.com>

	* Path.cs : (GetRandomFileName) use random buffer ;-) It somehow
	  caused infinite loop on Windows.

2006-01-18  Atsushi Enomoto  <atsushi@ximian.com>

	* DirectoryInfo.cs : on Windows top directory is something like c:\.

2006-01-17  Joshua Tauberer  <tauberer@for.net>

	* StreamReader.cs: Avoid two totally unnecessary string creations.
	  (kind of pedantic)

2006-01-13  Ben Maurer  <bmaurer@andrew.cmu.edu>

	* TextWriter.cs: Call char[],int,int from the Write(char[]) method
	both for msft compat and for performance. Thanks to "Mike Glenn" 
	<mglenn@zoominternet.net> for pointing.

2006-01-12  Ben Maurer  <bmaurer@andrew.cmu.edu>

	* File.cs: Support for Read/WriteAllText

2006-01-11  Sebastien Pouliot  <sebastien@ximian.com>

	* Path.cs: Previous fix caused regression of bug #76191. Fixed (again)

2006-01-09  Sebastien Pouliot  <sebastien@ximian.com>

	* Path.cs: Fix c14n on Windows when the first separator after the root
	isn't '\'. Fix problems for XSP with 1.1.13.

2006-01-07  Miguel de Icaza  <miguel@novell.com>

	* Path.cs (GetTempFilename): Append ".tmp" to the path, some
	external application expect this extension.

2006-01-05  Kornél Pál  <kornelpal@hotmail.com>

	* DriveNotFoundException.cs: Added.
	* MonoIO.cs: Added ERROR_INVALID_DRIVE handling. Pass HResult to
	  IOException constructors.
	* MonoIOError.cs: Expose ERROR_INVALID_DRIVE.

2006-01-02  Sebastien Pouliot  <sebastien@ximian.com>

	* UnexceptionalStreamReader.cs: Re-implemented the Read method to fix 
	the new line handling when reading from the Console (bug #77108).

2005-12-24  Kornél Pál  <kornelpal@hotmail.com>

	* FileStream.cs: Set buf_start to actual initial position when creating
	  FileStreams from handles.

2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>

	* DirectoryInfo.cs: Fixed #77090 to fix /home parent to be / (and not
	null).

2005-12-21  Sebastien Pouliot  <sebastien@ximian.com>

	* Path.cs: Fixed #77058 where a Windows drive wasn't considered during
	path canonalization.

2005-12-20  Sebastien Pouliot  <sebastien@ximian.com>

	* Path.cs: Fixed #77007 where a Windows drive is specified with a 
	partial path.

2005-12-15  Sebastien Pouliot  <sebastien@ximian.com>

	* DirectoryInfo.cs: Fixed #76903 where the Name property wasn't 
	correct in some cases. Added special case for Windows drives. Reduced
	temporary allocations in Get* methods (removed ArrayList). Added some
	new 2.0 methods (partial).
	* MonoIO.cs: Removed InvalidPathChars icall as the return value is 
	different from 1.x and 2.0. The values are now defined in Path.cs.
	* Path.cs: Fixed #76191 so that GetFullPath on a Windows drive returns
	the current directory (if it's on the specified drive). Fixed 2.0 API
	changes (e.g. static class).
	* SearchOption.cs: Added missing [Serializable] (2.0).

2005-12-07  Zoltan Varga  <vargaz@gmail.com>

	* Directory.cs: Fix a warning.

2005-11-10  Dick Porter  <dick@ximian.com>

	* DirectoryInfo.cs: Fix endless recursion problem with root
	directory on windows too.  Fixes bug 76191.

2005-11-06  Zoltan Varga  <vargaz@freemail.hu>

	* Directory.cs: Add stub for net 2.0 GetFiles method.

	* SearchOption.cs: New file.

2005-10-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* StreamReader.cs: made ReadLine() less memory-hungry. Fixes bug #76399.

2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* MonoIO.cs: replace FindFirst/FindNext/FindClose with
	GetFileSystemEntries.
	* Directory.cs: simplify GetFileSystemEntries by using the new icall.

2005-10-01  Ben Maurer  <bmaurer@ximian.com>

	* BinaryReader.cs: The patch below had a nasty little bug with
	long strings that had non-ascii chars in it, because it was
	looking at the char count, not the byte count.

2005-09-11  Ben Maurer  <bmaurer@ximian.com>

	* BinaryReader.cs: An optimization for ReadString that had been
	approved/well tested for a while but never gotten in. Bug #52754.

2005-09-05  Miguel de Icaza  <miguel@novell.com>

	* MonoIOError.cs: expose the ERROR_DIR_NOT_EMPTY as we are
	throwing it. 

	* MonoIO.cs: Return a properly named error.

2005-08-23  Raja R Harinath  <rharinath@novell.com>

	Fix #75679.
	* StreamReader.cs (DiscardBufferedData): Reset the decoder too.

2005-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* BinaryReader.cs: use Buffer.BlockCopy instead of Array.Copy when
	expanding the buffer.

2005-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs: don't leak 'find' handles.

2005-07-05  Dick Porter  <dick@ximian.com>

	* MonoIO.cs:
	* MonoIOError.cs: Add error message for ERROR_WRITE_FAULT.

2005-07-04  Sebastien Pouliot  <sebastien@ximian.com>

	* DirectoryInfo.cs: Fixed recursion problem with root directory 
	introduced when fixing bug #75443.

2005-07-02  Sebastien Pouliot  <sebastien@ximian.com>

	* FileSystemInfo.cs: Fixed exception arguments. Added ComVisible for
	NET_2_0.
	* DirectoryInfo.cs: Fixed bug #75443 when the directory ends with a
	separator. Added ComVisible for NET_2_0. Normalized line endings.

2005-05-26  Miguel de Icaza  <miguel@novell.com>

	* File.cs (ReadAllBytes): add.

Tue May 17 10:54:18 CEST 2005 Paolo Molaro <lupus@ximian.com>

	* FileStream.cs: complete fix for #74971.

2005-05-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs: make WriteByte work in all cases when no buffer is
	being used. Fixes bug #74971.

2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs: if the pattern is just a file name and it exists, return
	it right away. Fixes bug #72143.

2005-05-06  Ben Maurer  <bmaurer@ximian.com>

	* File.cs (Open): If a stream is opened with Append access, you
	only want Write access. Fixes bug #71088.

2005-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* UnexceptionalStreamWriter.cs: don't throw anything on Flush. Closes
	bug #74190.

2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Path.cs: don't trim the path in CanonicalizePath on non-windows
	systems. Fixes bug #53173.

2005-04-09  Miguel de Icaza  <miguel@novell.com>

	* StreamWriter.cs (Initialize): Avoid echoing the preamble to a
	file if the position of the stream is not at the beginning.  Fixes
	bug #74513

2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs:
	* MonoIO.cs: remove dead code related to async IO.

2005-03-24  Sebastien Pouliot  <sebastien@ximian.com>

	* Directory.cs: Added a Demand for Read/Write when creating a new 
	directory.
	* FileSystemInfo.cs: Added an InheritanceDemand for Unrestricted on 
	the class.
	* Path.cs: Added a Demand for PathDiscovery in GetFullPath method.
	Added an Assert for unrestricted file access to GetTempFilename as
	the method must create the (zero-length) file and can be called from
	partially trusted code. Added a Demand for unrestricted environment
	access to GetTempPath method.
	* FileStream.cs: Added a Demand for UnmanagedCode for all constructors
	accepting a file handle. Added LinkDemand and InheritanceDemand for 
	UnmanagedCode to get Handle and SafeFileHandle (2.0) properties.

2005-03-16  Lluis Sanchez Gual  <lluis@novell.com>

	* BinaryReader.cs, BinaryWriter.cs: Read/write dobules, floats and
	decimals in little endian format.

2005-03-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* MonoIO.cs:
	* MonoIOError.cs: handle ERROR_LOCK_VIOLATION.

2005-03-15  Sebastien Pouliot  <sebastien@ximian.com>

	* FileStream.cs: Anonymize part of the path when exceptions are throw
	by a FileStream is used for isolated storage. Throw a DirectoryNotFound
	Exception for any FileMode not just CreateNew (see new unit tests).

2005-03-09  Dick Porter  <dick@ximian.com>

	* MonoIOError.cs: 
	* MonoIO.cs: Add a few more exception messages

2005-02-11  Zoltan Varga  <vargaz@freemail.hu>

	* CheckPermission.cs: Fix warning.

2005-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* File.cs: Exists does not throw when there are invalid characters in
	the file name.
	* MonoIOError.cs: uncommented INVALID_NAME.

	Patch by Gert Driesen.

2005-01-31  Sebastien Pouliot  <sebastien@ximian.com>

	* FileStream.cs: Added new constructor to allow anonymous files (i.e.
	when Name property is "[Unknown]") for IsolatedStorage. Added
	SafeFileHandle property and a reference to Microsoft.Win32.SafeHandles
	for the NET_2_0 profile.

2005-01-28  Sebastien Pouliot  <sebastien@ximian.com>

	* FileNotFoundException.cs, FileLoadException.cs: Fixed bad "if ();".

2005-01-27  Sebastien Pouliot  <sebastien@ximian.com>

	* FileNotFoundException.cs, FileLoadException.cs: Protect the fusion
	(GAC) log from being disclosed unless code has ControlPolicy and 
	ControlEvidence. Added missing HResult value. Fixed Message property 
	to match MS results. Changed ToString to use a StringBuilder.

2005-01-24  Sebastien Pouliot  <sebastien@ximian.com>

	* Directory.cs: Added CAS security to Get|SetCurrentDirectory to 
	complete Environment security checks.

2004-12-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* BufferedStream.cs: use Buffer.BlockCopyInternal instead of Array.Copy.

2004-12-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* File.cs: delegate to the runtime the task of checking for destination
	file existence in Move.

2004-12-11  Ben Maurer  <bmaurer@ximian.com>

	* BinaryReader.cs (ReadByte): Check for exceptions here.

2004-12-06  Atsushi Enomoto  <atsushi@ximian.com>

	* TextWriter.cs : create CoreNewLine in another .ctor().

2004-12-05  Ben Maurer  <bmaurer@ximian.com>

	* TextWriter.cs (WriteLine): Use CoreNewLine so that this does
	not make a string out of the array every time it is called.

	Thanks to Atsushi for the idea.

2004-12-04  Ben Maurer  <bmaurer@ximian.com>

	* DirectoryInfo.cs (CreateSubDirectory): Check the input here.
	
	* FileSystemInfo.cs (CheckPath): Empty paths are invalid.

2004-11-19  Dick Porter  <dick@ximian.com>

	* MonoIOError.cs: 
	* MonoIO.cs: Add a proper message for sharing violation

2004-11-01  Ben Maurer  <bmaurer@ximian.com>

	* MonoIOError.cs: All of these fields just take up room in corlib,
	bloating things up. To make it worse, we need to malloc data at
	runtime about them. Since most are not used, am commenting them
	out

2004-09-19  Dick Porter  <dick@ximian.com>

	* UnexceptionalStreamWriter.cs: 
	* UnexceptionalStreamReader.cs: Wrappers around StreamWriter and
	StreamReader that catch IOException.  Used by System.Console so
	that graphical applications dont get IO errors when their
	stdin/out/err vanishes (ie when they spew debug output.)

2004-09-12 Ben Maurer  <bmaurer@ximian.com>

	* BinaryReader.cs: Use ReadByte when possible. Gives a tad
	of perf, and fixes a bug reported on mono-patches-list

2004-09-08  Miguel de Icaza  <miguel@ximian.com>

	* File.cs: Added Gettextification, provide a better error message
	for #62112

2004-09-08  Marek Safar  <marek.safar@seznam.cz>

	* Directory.cs,
	* File.cs: Class is static for NET_2_0.

2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>

	* MemoryStream.cs (SetLength): Use Array.Clear here

2004-09-05 Ben Maurer  <bmaurer@users.sourceforge.net>

	* Path.cs (Combine): Array.IndexOf is slow (because of the
	special cases it must handle). So, rather than doing IndexOf
	just check each type of seperator.

2004-09-05 Ben Maurer  <bmaurer@users.sourceforge.net>

	* StringReader.cs (StreamReader): remove sourceChars and disposed
	variables
	(Read): Copy directly from the string, rather than a char []
	(Dispose, CheckObjectDisposedException): the flag for being
	disposed is now source == null.

2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Stream.cs: Close() does not call Flush(). Fixes bug #65340.

2004-08-26 Ben Maurer  <bmaurer@users.sourceforge.net>

	* StreamWriter.cs: avoid String.ToCharArray for perf.

2004-08-18  Dick Porter  <dick@ximian.com>

	* StreamWriter.cs: Flush the buffer if AutoFlush is set to true.
	Fixes bug 63063, patch by Laurent Debacker (debackerl@yahoo.com).

2004-08-13  Dick Porter  <dick@ximian.com>

	* StreamWriter.cs: Allow FileShare.Read access to the underlying
	FileStream, to be compatible with MS.  Fixes bug 62152.

2004-07-06  Dick Porter  <dick@ximian.com>

	* MonoIO.cs: Add ERROR_INVALID_PARAMETER to the exception list.
	Don't blow away the SetFileTime() error before the caller gets to
	see it.  Part of the bug fix to 60970.

2004-07-05  Dick Porter  <dick@ximian.com>

	* CheckPermission.cs:
	* File.cs:
	* FileInfo.cs:
	* MonoIO.cs:
	* FileStream.cs: Give the filename when throwing
	FileNotFoundException.  Fixes bug 61120, based on patch from
	Carlos Alberto Cesario <carloscesario@gmail.com>.

2004-07-05  Dick Porter  <dick@ximian.com>

	* File.cs: File.Move() should check that the destination doesn't
	already exist.  Fixes bug 60915, patch based on one from Carlos
	Alberto Cesario <carloscesario@gmail.com>.

2004-06-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs: implemented GetLogicalDrives.

2004-06-24  Lluis Sanchez Gual  <lluis@novell.com>

	* StreamReader.cs: In DiscardBufferedData(), reset the mayBlock flag.

2004-06-21  Atsushi Enomoto  <atsushi@ximian.com>

	* FileStream.cs :
	  .ctor() should block write access when created with FileAccess.Write.

2004-06-21  Atsushi Enomoto  <atsushi@ximian.com>

	* FileStream.cs : Check buffer size before creating file.
	* StreamReader.cs : Check encoding!=null before creating file.
	* File.cs,
	  MonoIO.cs : Convert DateTime to FileTime after checking
	  file IO sharing violation (it just fixes the type of exception).

2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>

	* MemoryStream.cs: added TODO for serialization
	* StringWriter.cs: added TODO for serialization

2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>

	* TextWriter.cs: fixed CoreNewLine to return char[]

2004-06-14  Dick Porter  <dick@ximian.com>

	* Directory.cs:
	* File.cs: Catch PATH_NOT_FOUND errors in Exists() too.  Fixes bug
	59354.

2004-06-09  Duncan Mak  <duncan@ximian.com>

	* BufferedStream.cs (SetLength): Add checks and throw the
	appropriate Exceptions here instead.

	* FileStream.cs (SetLength): Revert part of my last patch, we're
	throwing ObjectDisposedException instead of IOException again.

2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs: re-enabled ignoring broken pipe errors when reading.
	Fixes bug #59639.

2004-06-08  Duncan Mak  <duncan@ximian.com>

	* Directory.cs (IsRootDirectory): New helper method for
	determining if a path is the root directory. Handles both Unix as
	well as Windows.
	(GetParent): Use IsRootDirectory for the check.

2004-06-08  Duncan Mak  <duncan@ximian.com>

	* File.cs: Fix line endings, took out ^Ms.

	* Directory.cs (GetParent): Return null if the specified path is
	the root directory.

	* StreamReader.cs (StreamReader):
	(Initialize): Add a check that buffer_size must not be less than
	or equal to zero.

2004-06-07  Duncan Mak  <duncan@ximian.com>

	* FileStream.cs (SetLength): The other exceptions have precendence
	over ObjectDisposedException, which is not one of the exceptions
	listed in the documentation). Also, instead of throwing an
	ObjectDisposedException, throw an IOException.

2004-06-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* BufferedStream.cs: fixed typo that prevented Read() from working.
	This went out with beta 2. Closes bug #59534.

2004-05-31  Atsushi Enomoto  <atsushi@ximian.com>

	* Directory.cs, File.cs : Fixed Exists() that raised 
	  DirectoryNotFoundException. Quick fix for bug #59354.

2004-05-30  Sebastien Pouliot  <sebastien@ximian.com>

	* BinaryReader.cs: Added missing disposed check for most methods. 
	Reordered some exceptions to match MS implementation. 
	* BufferedStream.cs: Fixed Seek logic (check for CanSeek and dispose).
	SetLength must also reset Position and check for dispose.
	* FileStream.cs: Added missing check for invalid SeekOrigin. Added
	missing validations.

2004-05-27  Dick Porter  <dick@ximian.com>

	* FileSystemInfo.cs: Take out the error checking in Refresh(), it
	broke other stuff
	
2004-05-27  Dick Porter  <dick@ximian.com>

	* MonoIO.cs: Define icalls for Lock() and Unlock()
	
	* FileStream.cs: Implement Lock() and Unlock().  Also improve IO
	error reporting.

	* FileSystemInfo.cs:
	* File.cs:
	* Directory.cs: Improve IO error reporting

2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs: delay seeking to the end when FileMode.Append is
	specified until after buffer initialization. Fixes bug #59151.

2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>

	* BufferedStream.cs: Added globalization and fixed exceptions and 
	possible integer overflow.
	* FileStream.cs: Fixed possible integer overflow.
	* MemoryStream.cs: Fixed possible integer overflow.
	* StringReader.cs: Fixed possible integer overflow.
	* TextWriter.cs: Fixed possible integer	overflow.

2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>

	* FileInfo.cs,
	  DirectoryInfo.cs : ToString() should return constructor arg as is.
	  This fixes bug #58804.

2004-05-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs: ERROR_FILE_NOT_FOUND in FindFirstFile means there are
	no files, but the directory was found. Fixes bug #58875.

2004-05-24  Duncan Mak  <duncan@ximian.com>

	* StreamWriter.cs (Close): Remember to set the 'closed' flag.

	* DirectoryInfo.cs: 
	* FileInfo.cs: Reformat the whole file to use DOS line endings.
	(MoveTo): Return if the destination of Move is the
	same as the file's current location.

2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>

	* MemoryStream.cs: Fixed exception reporting to match MS Fx. Fixed the
	condition to allow zeroization of existing data when we shrink the 
	stream.
	* StreamReader.cs: Add checks for null encoding. Fixed possible integer
	overflow and ArgumentNullException in Read.
	* StreamWriter.cs: Add dispose check to Write(char) and Write(char[]),
	AutoFlush. Fixed possible integer overflow in Write(char[],int,int).
	* StringWriter.cs: Fixed possible integer overflow in Write. Changed
	spaces for tabs.

2004-05-22  Duncan Mak  <duncan@ximian.com>

	* Directory.cs: Reformat the whole file to use Unix line endings
	for consistency.
	(GetFileSystemEntries): If pattern is String.Empty, always
	return an empty string array. Throw the ArgumentException if path
	is an empty string (determined using the new helper method)
	(IsEmptyString): Returns true on an empty string or a string with
	only whitespace characters.

	* Path.cs (GetPathRoot): Throw an ArgumentException if the path
	argument is String.Empty.

2004-05-20  Jackson Harper  <jackson@ximian.com>

	* DirectoryInfo.cs: Create subdirectories correctly if more then
	one is supplied.
	
2004-05-16  Atsushi Enomoto  <atsushi@ximian.com>

	* DirectoryInfo.cs: Fixed ToString() as well as FileInfo.

2004-05-16  Atsushi Enomoto  <atsushi@ximian.com>

	* FileInfo.cs: ToString() returns not full path but just the file name.

2004-05-14  Marek Safar  <marek.safar@seznam.cz>

	* TextWriter.cs: Removed useless [CLSCompliant (false)]

2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs: use the real wildcard for file names as it is supported
	now in io-layer. SearhPattern is not needed now.

2004-04-30 Ben Maurer  <bmaurer@users.sourceforge.net>

	* BinaryWriter.cs, Stream.cs: ensure we have beforefieldinit.

2004-04-29 Ben Maurer  <bmaurer@users.sourceforge.net>

	* Path.cs: readonlyificate.

2004-04-29 Ben Maurer  <bmaurer@users.sourceforge.net>

	* FileStream.cs: constify.

2004-04-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* SearchPattern.cs: Call invariant String.ToLower

2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStreamAsyncResult.cs: invoke the callback if set as completed
	before the asynchronous stuff jumps in.

2004-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs: only pass the async flag set to true when opening the
	file and AIO is supported by the underlying system. Fixes bug #56883.

2004-04-12  Gert Driesen (drieseng@users.sourceforge.net)

	* FileSystemInfo.cs: Implemented ISerializable, corrected COM 
	visibility of UTC properties

2004-04-01  Lluis Sanchez Gual  <lluis@ximian.com>

	* BufferedStream.cs: On Position change, do not reset the buffer if the
	new position is in the limits of the buffer. This fixes #49403.

2003-04-03  Atsushi Enomoto <atsushi@ximian.com>

	* Path.cs : ChangeExtension() does not remove dot(.) when extension is
	  an empty string.

2004-04-01  Lluis Sanchez Gual  <lluis@ximian.com>

	* FileSystemInfo.cs: Added InternalRefresh, a virtual method that derived
	  classes can override to perform class specific refreshing.
	* FileInfo.cs: Refresh existence flag when Refresh is called.
	* TextWriter.cs: Applied patch by Benjamin Jemlich for bug #52512.
	  The method Write(char) should do nothing by default.

2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* BinaryReader.cs: don't modify the underlying stream in Peek(). Fixes
	bug #51741. Patch by Nick Vaughan.

2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>

	* FileStream.cs: ReadByte(): when buffering is disabled, read the byte
	with a direct call to ReadData. In InitBuffer(), if buffering is
	disabled, create a buffer of one byte, to be used in ReadByte.  This
	fixes bug #52361.

2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>

	* Path.cs: In GetDirectoryName, fixed check for volumeSeparator. This
	  fixes bug #53892.

2004-03-24  Lluis Sanchez Gual  <lluis@ximian.com>

	* File.cs: In Move, throw IOException instead of ArgumentException if 
	  destination is a directory.
	* MonoIO.cs: In ExistsDirectory, return ERROR_PATH_NOT_FOUND instead of
	ERROR_FILE_NOT_FOUND, since we are looking for a directory, not a file.
	
2004-03-15  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* StreamWriter.cs: Removed unneeded function

2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs: added support for asynchronous I/O without using the
	OS native libraries if available.

	* FileStreamAsyncResult.cs: IAsyncResult for asynch. I/O.

	* MonoIO.cs: added BeginRead/Write, GetSupportsAsync. Open has now a
	new parameter to tell ifthe file will be used for asynch operations.

	* Stream.cs: BeginRead/Write do not use delegates. They just are
	actually synchronous.

	* StreamAsyncResult.cs: IAsyncResult for Stream.

2004-03-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs: check if the error returned in Exists is different
	from 'path not found' and throw the appropiate exception in that case.
	See #55160.

2004-03-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* MonoIO.cs: added case for ERROR_FILENAME_EXCED_RANGE.

2004-02-25  Jackson Harper <jackson@ximian.com>

	* File.cs: Report the filename when deleting a file fails. Patch
	by Gert Driesen. Fixes bug #54855.
	
2004-02-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs: remove dangling ^Ms.

2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs: (.ctor) Path.DirectoryName can be empty and make
	Path.GetFullPath crash. Fixed it.

	* MonoIO.cs: fixed typo.

2004-02-13  Jackson Harper  <jackson@ximian.com>

	* FileStream.cs: Throw some more exceptions for invalid
	params. Fixes some unit test failures.
	* BufferedStream.cs: If the stream is closed (can't read from it
	or write to it) throw an ObjectDisposedException.
	
Tue Jan 20 23:10:22 CET 2004 Paolo Molaro <lupus@ximian.com>

	* StreamWriter.cs, TextWriter.cs: comply with the documented
	behaviour and use a decode buffer to improve performance.

2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Path.cs: now Path.GetFullPath ("/") returns "/" instead of "".

2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Path.cs: add the trailing directory separator only for volumes.
	Fixes bug #53035.

2004-01-19  Zoltan Varga  <vargaz@freemail.hu>

	* IntPtrStream.cs: Fix build bustage.
	
	* IntPtrStream.cs: Add a 'Closed' event. Also throw exceptions after
	the stream is closed.

2004-01-18 Ben Maurer  <bmaurer@users.sourceforge.net>

	* FileStream.cs: Locking from bug #32344 removed. This is not
	necessary because the correct fix was actually in the console.
	This fixes bug #53026. Miguel de Icaza reviewed/approved this
	patch.

2004-01-14  Zoltan Varga  <vargaz@freemail.hu>

	* FileStream.cs (.ctor): Avoid allocating a large buffer when reading
	from small files.

2004-01-10  Atsushi Enomoto <atsushi@ximian.com>

	* Path.cs : GetDirectoryName ("c:\readme.txt") should return "c:\"
	  instead of "c:" . This fixed bug #52735.

2004-01-04  Nick Drochak <ndrochak@gol.com>

	* Path.cs: Remove defined but unused variable, and also got rid of
	some unreachable code.  Eliminates some build warnings.

2003-12-28 Ben Maurer  <bmaurer@users.sourceforge.net>

	* BinaryWriter.cs: use one encoding buffer for writing
	strings rather than allocting one/string. HUGE perf
	boost when writing many strings.

2003-12-25  Atsushi Enomoto <atsushi@ximian.com>

	* Path.cs : Fixed GetFullPath() (and CanonicalizePath()), 
	  HasExtension(), GetPathRoot() and IsPathRooted() to fit with tests.

2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>

	* FileStream.cs: (.ctor) do not set handle
	in object until after it is validated via
	GetFileType so finalizer doesn't see bad handles and
	initialize this.handle to InvalidHandle

2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>

	* MonoIO.cs: SetFileTime() Failed Open returns InvalidHandle
	not Zero

2003-12-17  Atsushi Enomoto <atsushi@ximian.com>

	* Directory.cs : SetCurrentDirectory() should raise errors for
	  some kind of arguments.

2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Path.cs: GetTempPath () ends with DirectorySeparatorChar. Fixes bug
	#52056.

2003-12-06  Ravindra  <rkumar@novell.com>
	*MonoIO.cs: Added a new exception case. It is thrown 
	when a directory creation is attempted with a name that
	is already used by an existing file.

2003-11-28  Dick Porter  <dick@ximian.com>

	* Path.cs: Use the char form of LastIndexOf, so that the
	comparison is done with the Invariant culture.

2003-11-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs: provide the path when getting the IOException.

2003-11-18  John Luke  <jluke@cfl.rr.com>

	* CheckArgument.cs:
	(PathLength): fix recursion found by JonK
	
2003-11-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs:
	(GetCurrentDirectory):
	(SetCurrentDirectory): moved here from Environment. Handle error cases.

	* MonoIO.cs: add path to the default error message.

2003-11-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* StringReader.cs: fixed ReadLine for some cases where there are mixed
	'\r' and '\n'. Closes bug #51020.

2003-11-14 Ben Maurer  <bmaurer@users.sourceforge.net>

	* MemoryStream.cs (.ctor): We need to check if buffer is null
	before we get the Length of it.

2003-11-14  Miguel de Icaza  <miguel@ximian.com>

	* StreamReader.cs, TextReader, StreamReader (Read): Add [Out]

2003-11-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs: allow directory names without wildcards in the pattern.
	Fixes bug #3 50969.

	* SearchPattern.cs: made InvalidChars and WildcardChars internal.

2003-11-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs: use the argument name when throwing exception.

	* StreamReader.cs:
	* StringReader.cs:
	* TextReader.cs: added [In] attribute for the array in Read.

2003-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* DirectoryInfo.cs: fixed ToString. Closes bug #50842.

2003-11-12  Miguel de Icaza  <miguel@ximian.com>

	* Directory.cs: Adjust for missing PlatformID.Unix.

2003-10-28  Miguel de Icaza  <miguel@ximian.com>

	* StreamReader.cs: Add checks for disposed stream from bug report
	#48696 (Patrik Reali)

	* TextReader.cs (Read): Return the total number of bytes read, 
	patch from Patrik Realli.

2003-10-20  Miguel de Icaza  <miguel@ximian.com>

	* FileStream.cs public FileStream (string name, FileMode mode)
	constructor: If we pass FileMode.Append, we can not pass
	FileAccess.ReadWrite.  This fixes bug 44959

2003-09-26  Miguel de Icaza  <miguel@ximian.com>

	* BufferedStream.cs (Write): Use CanWrite in Write.  Patch from
	Francisco Figueiredo Jr.

2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* BinaryReader.cs: return the correct number of bytes read when there
	are some bytes from peeking.

2003-09-11  Lluis Sanchez Gual  <lluis@ximian.com>

	* BufferedStream.cs, FileStream.cs, MemoryStream.cs, Stream.cs:
	  Added [In,Out] attributes to Read method.

2003-08-05  Martin Baulig  <martin@ximian.com>

	* StreamReader.cs (DiscardBufferedData): Do the same like on the
	ms runtime: just discard the buffered data, but don't modify the
	BaseStream.Position.

2003-08-04  Martin Baulig  <martin@ximian.com>

	* StreamReader.cs (DiscardBufferedData): Implemented.

2003-07-29  Miguel de Icaza  <miguel@ximian.com>

	* IntPtrStream.cs (Read): Use correct offset here;  Change the
	code to use a byte* instead of an IntPtr to reduce the number of
	casts used. 

	(Read): Use Marshal.Copy instead of the now
	deprecated MemCopy.

	(IntPtrStream): New stream implementation, it maps to a region in
	memory.

2003-07-23  Duncan Mak  <duncan@ximian.com>

	* StreamReader.cs (Initialize): This method is not exposed in the
	API, mark as internal.

Fri Jul 18 14:42:42 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* MonoIO.cs: 64bit fix from Bernie Solomon <bernard@ugsolutions.com>.

2003-07-16  Dick Porter  <dick@ximian.com>

	* FileInfo.cs: Update path info when a file is moved.  Patch by
	John Luke <jluke@cfl.rr.com>, fixes bug 44253.

2003-07-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* MemoryStream.cs: fixed bug #46060. Thanks to Carlos Barcenilla.

2003-06-30  Zoltan Varga  <vargaz@freemail.hu>

	* FileStream.cs (Dispose): Flush the buffer even if we don't own the
	handle.
	* FileStream.cs: Add a new constructor parameter to turn off buffering.
	This is used by the Console.OpenStandard...() methods. Also fix
	argument checking in InitBuffer(), so a zero buffer size is also 
	rejected.

2003-06-27  Dietmar Maurer  <dietmar@ximian.com>

	* Stream.cs: use async.delegate invoke 

2003-06-18  Nick Drochak <ndrochak@gol.com>

	* FileSystemInfo.cs: Refresh cache when changeing file times.

2003-06-11  Zoltan Varga  <vargaz@freemail.hu>

	* FileStream.cs: Fix errors in previous checkins:
	(Write): Only take the shortcut route if the data is longer than the
	buffer length.
	(Write): Flush the buffer before writing out the new data
	(Write): Flush the buffer after writing out a segment since otherwise
	we will go into an infinite loop.
	(FlushBuffer): Remove my last change since it was clearly wrong.
	(Seek): Run FlushBuffer () after the in-buffer seek optimization.
	(Seek): Only use the in-buffer optimization if the buffer is not
	empty.
	(Length): Call FlushBuffer () since buffer data might change the size
	of the stream.

2003-06-09  Ville Palo <vi64pa@kolumbus.fi>

	* FileStream.cs:
	- removed unusefull bugfix (DirectoryNotFoundException)
	- Flush before seek.
	
2003-06-09  Ville Palo <vi64pa@kolumbus.fi>

	* FileStream.cs: Check buffer size before append/read -exceptios
	
2003-06-09  Ville Palo <vi64pa@kolumbus.fi>

	* FileStream.cs: Check DirectoryNotFound before FileNotFound.
	
2003-06-09  Ville Palo <vi64pa@kolumbus.fi>

	* FileStream.cs: Does not anymore flush while writing
	
2003-06-02  Nick Drochak <ndrochak@gol.com>

	* FileInfo.cs (MoveTo): Throw exceptions when dest exists, and check
	for null too.

2003-05-27  Lluis Sanchez Gual <lluis@ximian.com>

	* BinaryReader.cs: Stream don't need to be seekable to use PeekChar.

2003-05-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Path.cs: fixed bug #42631.

2003-05-22  Zoltan Varga  <vargaz@freemail.hu>

	* File.cs (Move): Allow moving of directories.
	Fix 'destination is a directory' test.

2003-05-21  Ben Maurer  <bmaurer@users.sourceforge.net>

	* StringWriter.cs: Fixed bug #43431: "StringWriter
	.ctor(CultureInfo) does not create a new StringBuilder ()"

2003-05-11  Zoltan Varga  <vargaz@freemail.hu>

	* FileStream.cs (FlushBuffer): After a flush, the buffer is
	advanced by buf_offset bytes, not buf_length bytes.

2003-05-16  Dick Porter  <dick@ximian.com>

	* MonoIO.cs: Implement GetTempPath

2003-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* DirectoryInfo.cs: fixed bug #42991.
	* Path.cs:
	(CanonicalizePath): store the value of the trimmed input string. Make it
	work with paths such as "/home/xxx/.".

2003-05-08  Ben Maurer <bmaurer@users.sourceforge.net>
	* Path.cs 
	(CanonicalizePath) Fixed bug #42631, which duplicated the
	root part of the path under Windows.

2003-05-08  Ville Palo <vi64pa@kolumbus.fi>

	* FileSystemInfo.cs: Added 1.1 properties LastAccessTimeUtc, 
	LastWriteTimeUtc and CreationTimeUtc
	
2003-05-07  Ben Maurer <bmaurer@users.sourceforge.net>
	* Path.cs 
	(GetPathRoot) Added support for UNC paths.
	(CanonicalizePath) Added optimizations per Miguel's requests.

2003-05-06  Ville Palo <vi64pa@kolumbus.fi>

	* BufferedStream.cs: 
	  - Removed unusefull code.
	  - Added ObjectDisposedException to Position
	  - Dont flush if stream is allready closed.
	  - Flush throws also ObjectDisposedException.
	* Directory.cs:
	  - GetFileSystemEtries: ArgumentNullException if pattern is null
	* DirectoryInfo.cs: Fixed little MoveTo () bug.
	* FileInfo.cs:
	  - Exists: If file does not exists when instance is created the
	  value of the Exists property does not change even if file is created
	  afterwards.
	  - Delete: If path is a directory UnauthorizedException is thrown.
	  - CopyTo: Now we can overwrite file if wanted.
	* Path.cs: 
	  - GetFullPath: Now throws exception when path is "   ".
	
2003-05-04  Ben Maurer <bmaurer@users.sourceforge.net>
	* Directory.cs (GetLogicalDrives) Marked as MonoTODO
	because we need to implement the method on Windows.
	* Path.cs 
	(CanonicalizePath) Added new function to get
	rid of . and .. in path names. Need to figure out what
	other functions should call this.
	(GetFullPath) Added call to the above function.
	
2003-05-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* StreamReader.cs:
	(.ctor): fixed parameters passed to FileNotFoundException.

2003-04-25  Dietmar Maurer  <dietmar@ximian.com>

	* BinaryReader.cs (Read): make sure the buffer is big enough (fix
	bug # 40702)

2003-04-24  Pedro Martinez Julia  <yoros@wanadoo.es>

	* BufferedStream.cs: Test if it's possible to seek in a Stream
	before access to Position. This prevents the exception thrown when
	the stream is System.Net.Sockets.NetworkStream.

2003-04-22  Ville Palo <vi64pa@kolumbus.fi>

	* Directory.cs: clean up --> performance improvment. Some exceptions
	are now checked in File.cs.
	* File.cs: Implemented Get/SetXXXTimeUtc () methods. Some bugfixes.
	
2003-04-21  Ville Palo <vi64pa@kolumbus.fi>

	* Directory.cs: lots of fixes. 
	  - Added GetXXXtimeUtc () (v1.1) methods.
	  - Added SetXXXtimeUtc () (v1.1) methods.	
	
2003-04-20  Igor Nosyryev <nosyryev@attbi.com>

	* StringReader.cs (Read): Increment nextChar by charsToRead
	instead of count, that will guarantee that the next time the
	method is called, it will return 0 on an empty string rather than
	throwing an exception

2003-04-19  Ville Palo <vi64pa@kolumbus.fi>

	* BufferedStream.cs: Some fixes, mostly throwing exceptions.
	* MemoryStream.cs: Changed the order of exception checking
	* StringReader.cs: little clean up
	
2003-04-14  Ville Palo <vi64pa@kolumbus.fi>

	* BinaryWriter.cs: Fixed decimal writing and lots of 
	ObjectDisposedExceptions added.
	
2003-04-13  Ville Palo <vi64pa@kolumbus.fi>

	* BinaryReader.cs: Fix to ReadDecimal() method.
	
2003-04-13  Ville Palo <vi64pa@kolumbus.fi>

	* StringReader.cs: Added some ObjectDisposedExceptions.
	* StringWriter.cs: Added some ObjectDisposedExceptions.
	* BinaryReader.cs: Added some ObjectDisposedExceptions.
	
2003-04-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs: fixed the windows build. This is an mcs bug. I'll
	fill a bug report.

2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs: fixed bug #40182 and made more unit test pass.

2003-04-11  Ville Palo <vi64pa@kolumbus.fi>

	* FileStream.cs: Added new methods Lock () and Unlock ()
	
2003-04-11  Ville Palo <vi64pa@kolumbus.fi>

	* StringReader.cs: Throws exceptions if constructor parameter is null.
	
2003-04-11  Ville Palo <vi64pa@kolumbus.fi>

	* StringWriter.cs: Now throws an exception if StringBuilder parameter
	is null
	
2003-04-05  Miguel de Icaza  <miguel@ximian.com>

	* TextWriter.cs: Implemented Synchronized method.

	* TextReader.cs: Implemented Synchronized method.

2003-04-04  Miguel de Icaza  <miguel@ximian.com>

	* FileStream.cs (Read, ReadByte, Seek): throw
	ObjectDisposedException if the handle has been released.
	
	(Read): Throw exceptions specified in the spec.

	(Read, Write, ReadSegment, WriteSegment): There is no requirement for any
	instance methods of FileStream to be thread safe, so remove all
	the calls to lock on the object

2003-03-31  Nick Drochak <ndrochak@gol.com>

	* Path.cs (GetDirectoryName): Throw proper execption when path is empty.

2003-03-20  Lluis Sanchez Gual <lluis@ideary.com>

	* FileNotFoundException.cs: fixed serialization bug.

2003-03-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>

	* StringWriter.cs : don't release internalString on Dispose().

2003-03-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* StreamReader.cs: fixed bug #39280.

2003-03-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs: readded mkdir -p behavior. Thanks to kiwnix for
	pointing it out.

2003-03-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* MemoryStream.cs: general fixes and reformatted. Passes all tests in
	the new MemoryStreamTest.

2003-03-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* MemoryStream.cs: undo my bogus fix in ToArray. Allow GetBuffer and
	ToArray even after closing the stream.

2003-03-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs:
	(Move): don't use File.Move.
	* DirectoryInfo.cs: fixed Name property.
	
	Fixes bug #37755.

2003-03-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* DirectoryInfo.cs: changed ToString to match MS behavior.
	* Path.cs: further fixes to GetDirectoryName to return null in the
	same cases that MS does.

	Fixes bug #38387.

2003-03-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Path.cs: fixed a couple of bugs reported in #35906.

2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs: fixed bugs #38939 and #38940. No need for separate
	unix/windows/unc shares code paths.

2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* File.cs: fix by Elan Feingold <efeingold@mn.rr.com> for
	SetCreationTime, SetLastAccessTime and SetLastWriteTime.

2003-02-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* MemoryStream.cs:
	(ToArray): return only the portion of the buffer that contains
	data, not the whole buffer. (note: this makes XmlDocument.Load work
	again with documents that have a <?xml without the 'encoding'
	attribute, which makes gtk-sharp generator work again).

2003-02-25  Nick Drochak <ndrochak@gol.com>

	* File.cs (GetCreationTime): Throw proper execption when path is not
	found.

Tue Feb 25 11:55:35 CET 2003 Paolo Molaro <lupus@ximian.com>

	* MemoryStream.cs: make it behave sanely when the stream is
	incrementally expanded.

2003-02-21  Dick Porter  <dick@ximian.com>

	* FileStream.cs: Use locks around buffer manipulations.  Fixes bug
	32344

2003-02-18  Dick Porter  <dick@ximian.com>

	* FileStream.cs: Make FileMode.Append work, and check for Seeking
	back over old data (undocumented ms behaviour, throws an exception
	if you try).  Fixes bug 35975.

2003-02-17  Dick Porter  <dick@ximian.com>

	* FileStream.cs: Don't close the handle if the stream doesn't own
	it.  Patch from Raymond Penners (raymond@dotsphinx.com), bug
	35623.

2003-02-14  Zoltan Varga  <vargaz@freemail.hu>

	* FileStream.cs (Write): flush after writing the last segment as well.

2003-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* StringReader.cs:
	(ReadLine): fixed the case when the string ends with a '\n'.

2003-02-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* MemoryStream.cs: create the buffer of the specified capacity.

2003-01-31  Patrik Torstensson

	* MemoryStream.cs: use BlockCopyInternal instead of Array.Copy, this is
	the same way as MS does it (performance improvement)

2003-01-29  Zoltan Varga  <vargaz@freemail.hu>

	* Directory.cs (GetFileSystemEntries): moved error handling to the
	correct instance of GetFileSystemEntries so all callers can enjoy it.

2003-01-28  Zoltan Varga  <vargaz@freemail.hu>

	* File.cs: add error handling to Get...Time methods.

2003-01-26  Zoltan Varga  <vargaz@freemail.hu>

	* Directory.cs: fix GetParent so it actually works.

2003-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Path.cs: fixlet to ChangeExtension for the case when the path is
	empty.

2003-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* BufferedStream.cs: don't try to write a 0 sized array on when
	flushing the stream.
	
	Fixes bug #37045.

2003-01-18  Jonathan Pryor <jonpryor@vt.edu>

	* FileStream.cs: Add IsAsync property.  (Documented in "C# In A Nutshell".)

2003-01-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* MemoryStream.cs: fixed bug #36319.

2002-12-16  Eduardo Garcia Cebollero <kiwnix@yahoo.es>
	
	* Directory.cs: Some fixes to SMB shares handling, and not compiling 
	with csc, mcs compiles it correctly (mcs bug 35652)

2002-12-14  Eduardo Garcia Cebollero <kiwnix@yahoo.es>

	* Directory.cs: Some fixes related to correct some exceptions thrown

2002-12-11  Eduardo Garcia Cebollero <kiwnix@yahoo.es>

	* Directory.cs: Some Exceptions added, fixed GetParent(),
	CreateDirectory() should work with unix, native windows and
	windows samba shares. Converted end-lines from dos-mode to unix-mode

2002-12-08  Eduardo Garcia Cebollero <kiwnix@yahoo.es>

	* Directory.cs: CreateDirectory  works now with Absolute paths
	too, not only with relative ones.

2002-12-07  Peter Williams  <peterw@ximian.com>

	* Directory.cs: Don't use the uninitialized pathsumm here.
	Don't try and create "" if we're using an absolute path.

2002-12-07  Eduardo Garcia Cebollero <kiwnix@yahoo.es>

	* Directory.cs: Now the creation of a new directory works recursively
	it will make parents as needed.

2002-11-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* BufferedStream.cs: applied patch from <carlosga@telefonica.net> that
	fixes Flush ().

Tue Nov 19 13:01:22 CET 2002 Paolo Molaro <lupus@ximian.com>

	* StreamWriter.cs: output the encoding preamble at the start of a
	stream if needed.

2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* StreamReader.cs: Changed all Encoding.UTF8 to Encoding.UTF8Unmarked.

2002-11-06  Miguel de Icaza  <miguel@ximian.com>

	* StreamWriter.cs: Changed all Encoding.UTF8 to Encoding.UTF8Unmarked.

2002-10-31  Dick Porter  <dick@ximian.com>

	* FileStream.cs: Fix buffering properly this time.  Also kludge
	around broken pipe errors, treating them as EOF instead of
	throwing an IO exception.

	* MonoIO.cs: Return the error status in a parameter, as the
	GetLastError() value has long since been blown away if we try and
	look it up in a subsequent internal call invocation.

	* FileSystemInfo.cs: 
	* FileInfo.cs: 
	* File.cs: 
	* Directory.cs: MonoIO methods now have an error parameter

2002-10-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* TextReader.cs: implemented ReadBlock ().

2002-10-30  Miguel de Icaza  <miguel@ximian.com>

	* StreamWriter.cs: Ditto for Null stream.

	* BinaryReader.cs: Use Unmarked here too.

	* BinaryWriter.cs: Use the UTF8Unmarker encoding by default, this
	is what .NET does.

2002-10-23  Dick Porter  <dick@ximian.com>

	* FileStream.cs: Implemented CanSeek, and used it around all the
	calls to MonoIO.Seek.  Fixed buffering in Read() so that it
	doesn't block forever on short reads.

	* MonoFileType.cs: New enum for GetFileType
	
	* MonoIO.cs: Added GetFileType

2002-10-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* StreamReader.cs: ReadLine now treats a \r not followed by a \n as a
	\n (this is what MS does).

2002-10-18  Dick Porter  <dick@ximian.com>

	* FileStream.cs: SeekOrigin.End still calculates the offset from
	the end of the file with positive values extending the length.
	Fixes bug 32471.

2002-10-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Path.cs: some cleanup. Thanks to Martin Aliger.

2002-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs: throw an exception if trying to open a directory.
	Thanks to Martin Aliger.

2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Path.cs: fixes bug #28046.

2002-09-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* StreamReader.cs: give more information when wrong parameters passed.

2002-09-21  Miguel de Icaza  <miguel@ximian.com>

	* FileStream.cs: Do not call FSync on the file.

2002-09-16  Miguel de Icaza  <miguel@ximian.com>

	* TextWriter.cs (Null): The Null field should be an instance of a
	TextWriter class that does nothing, so it is an instance of the
	NullTextWriter class.

2002-09-16  Nick Drochak  <ndrochak@gol.com>

	* MemoryStream.cs (Close): Don't throw an exception if the stream
	is already closed.

2002-09-15  Miguel de Icaza  <miguel@ximian.com>

	* FileStream.cs (Dispose): Call FlushBuffer(), and not Flush, as
	Flush calls fsync().  

	The API docs show no explicit mention that Flush() should even do
	an fsync, I am thinking that we should drop that from the
	runtime. 

2002-09-09  Miguel de Icaza  <miguel@ximian.com>

	* StreamWriter.cs: When no encoding is provided, create an
	encoding without markers, this is what MS does.

2002-09-06  Miguel de Icaza  <miguel@ximian.com>

	* StreamReader.cs: Implement detection of byte marks and skipping
	of byte marks at the beginning of the stream.

	(ReadToEnd): Use buffered read instead of char-by-char
	processing. 

	Correct the default arguments for creating the StreamReader.

2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* CheckArgument.cs: fixed check for empty string.
	* Path.cs: various fixes. It passes all the tests in new PathTest.

2002-08-29  Duncan Mak  <duncan@ximian.com>

	* StreamWriter.cs: Set DisposedAlready after calling flush. Fixes
	the build for gtk#.

2002-08-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* BinaryReader.cs:
	* BinaryWriter.cs:
	* MemoryStream.cs:
	* StreamReader.cs:
	* StreamWriter.cs:
	* StringReader.cs:
	* StringWriter.cs:
	* TextWriter.cs: IDisposable fixes.

2002-08-24  Miguel de Icaza  <miguel@ximian.com>

	* StreamReader.cs: Removed TODOs, as the code seems to be
	complete. 

	* Path.cs (GetTempFileName): Make this routine atomic by not
	testing and then creating, but using the create call to ensure
	that we own the filename.

2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileLoadException.cs: implemented ToString.

	* StreamWriter.cs: added Null field and implemented Write (char) and
	Write (char []).

2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* StreamReader.cs: implemented NullStreamReader.

2002-08-21  Miguel de Icaza  <miguel@ximian.com>

	* Path.cs (GetDirectoryName): Fix for filenames with size = 1

	* File.cs: Removed all references that threw exceptions when the
	paths contains a colon, as this is a valid part of an identifier
	on Unix.

	Everywhere: The String.Empty return from GetDirectoryName means
	that there is no directory information about the path.

2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileNotFoundException.cs: use Message and InnerException from base
	class. Changed Message and ToString ().

2002-08-19  Dick Porter  <dick@ximian.com>

	* BinaryWriter.cs: The length of a string is counted in bytes, not
	chars

2002-08-18  Dick Porter  <dick@ximian.com>

	* BinaryReader.cs: Fixed buffering

2002-08-09  Nick Drochak  <ndrochak@gol.com>

	* BinaryReader.cs: added virtual to Dispose(bool).

2002-08-03  Jason Diamond  <jason@injektilo.org>

	* StringWriter.cs: Return UnicodeEncoding for Encoding property.

2002-08-03  Jason Diamond  <jason@injektilo.org>

	* StreamWriter.cs: Use GetByteCount() to get exact length instead
	of GetMaxByteCount when converting chars to bytes.

2002-07-31  Duncan Mak  <duncan@ximian.com>

	* StreamReader.cs: 
	(Dispose): Added and implmented.

	* StreamWriter.cs: 
	(Dispose): Fixed visibility.
	(Initialize): Fixed visibility, made internal.

	* BinaryReader.cs:
	(Dispose): Fixed visibility.

2002-07-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* File.cs:
	(Create): allow file names without path.

Fri Jul 26 15:45:04 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* FileStream.cs: patch from erik@bagfors.nu to add
	Name property support.

2002-07-20  Dick Porter  <dick@ximian.com>

	* MonoIO.cs: Added icall to CreatePipe

2002-07-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileInfo.cs: fixes buglet #27940

2002-07-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Path.cs: removed unneeded line from GetExtension.

2002-07-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* FileStream.cs:
	(.ctor): call MonoIO.GetException with the file name.

2002-07-02  Mike Kestner  <mkestner@speakeasy.net>

	* StreamReader.cs: Guard against ^\n lines as pointed out by Gonzalo.

2002-07-02  Mike Kestner  <mkestner@speakeasy.net>

	* StreamReader.cs: Revert the last Peek change and fix the ReadLine
	end of line detection code instead.

2002-07-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* StreamReader.cs:
	(Peek): no need to have seek capabilitites. 

2002-06-17  Dietmar Maurer  <dietmar@ximian.com>

	* Path.cs (ChangeExtension): handle some special cases (fixes bug #25319)

	* File.cs (Delete): only call Directory.Exists() if DirName != ""

2002-06-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Directory.cs: fixed bug #26133 and also test if the directory exist
	before performing the search.

2002-06-12  Nick Drochak  <ndrochak@gol.com>

	* StringReader.cs (ReadLine): Return null when we get to end of the
	string.

2002-05-22  Lawrence Pit  <loz@cable.a2000.nl>

	* StreamWriter.cs: added ability to write null value
	
2002-05-19  Lawrence Pit  <loz@cable.a2000.nl>

	* Stream.cs: NullStream.ReadByte now returns -1 instead of 0 to
	prevent endless loops.

2002-05-17  Dan Lewis  <dihlewis@yahoo.co.uk>

	* FileStream.cs: Enforce lower bound on buffer size.

2002-05-16  Piers Haken <piersh@friskit.com>

	* Stream.cs: Implement synchronous {Begin|End}{Read|Write}() methods.

2002-05-17  Nick Drochak  <ndrochak@gol.com>

	* StreamWriter.cs: Implement buffering.  Also implemented dispose
	pattern as recommended by the MS docs.  Must call Close() now
	to ensure the buffer is flushed.

2002-05-15  Nick Drochak  <ndrochak@gol.com>

	* Path.cs (GetDirectoryName): Return String.Empty if there is no
	directory

	* StreamReader.cs: Add some parameter checking on file names.

	* StreamWriter.cs: Add some parameter checking on file names.

2002-05-14 Nick Drochak  <ndrochak@gol.com>

	* File.cs: Add parameter checks to most methods. Not completely done,
	but all current unit tests pass.

	* Path.cs: Implement GetTempFileName().

2002-05-10  Nick Drochak  <ndrochak@gol.com>

	* StreamWriter.cs (Flush): Throw proper exception if internal stream
	has already been closed when we try to flush.

2002/05/10  Nick Drochak <ndrochak@gol.com>

	* FileNotFoundException.cs (ToString): Don't try to use the inner
	exception, because it might be null.  Use the message instead.

2002-05-09  Nick Drochak  <ndrochak@gol.com>

	* File.cs (Delete): Do not throw an exception if the file does not
	exist.

2002-05-08  Mike Gray     <mikeg@mikegray.org>

	* File.cs: According to ECMA spec and MS docs Copy(src, dest)
        should not overwrite dest by default.

2002-05-08  Nick Drochak  <ndrochak@gol.com>

	* StreamWriter.cs: Add paramter check to constructors and throw
	exceptions where appropriate.

Tue May 7 11:47:46 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* StreamReader.cs: return the number of chars read even if we diddn't
	fill the whole buffer (makes Sergey's ilasm work with mono).

2002-05-07  Mike Gray     <mikeg_us@hotmail.com> 

	* FileInfo.cs (Create): Implement missing method.

2002-05-07  Mike Gray     <mikeg_us@hotmail.com>

	* File.cs: Implemented CreateText method, and fixed dst compares
	to compare against "" instead of null twice.

2002-05-05  Nick Drochak  <ndrochak@gol.com>

	* StreamReader.cs: Throw exceptions where needed. Changed Null field to
	use new internal class since null cannot be passed to constructor 
	anymore. Also, fix a coule of small bugs.

2002-05-03  Nick Drochak  <ndrochak@gol.com>

	* MemoryStream.cs: Refrain from allocating array until the space is
	really needed. This fixes a bug in the Length property when the
	constructor without the byte array is used.

2002-05-01  Duncan Mak  <duncan@ximian.com>

	* DirectoryNotFoundException.cs (constructor): Added missing
	serialization constructor.

2002-04-30  Duncan Mak  <duncan@ximian.com>

	* FileLoadException.cs (constructors): Added missing (string,
	string) ctor, as well as (string, string, Exception) ctor.

	(Message): Added more info to the error message

	(ToString): Added. We'll need to add the StackTrace stuff when
	that works.

	* FileShare.cs: Add a missing field, Inheritable.
	
	* TextReader.cs: Renamed Synchronised method to Synchronized.

	* TextWriter.cs: Renamed Synchronised method to Synchronized.
	Renamed protected member coreNewLine to CoreNewLine.

2002-04-30  Sergey Chaban  <serge@wildwestsoftware.com>

	* BinaryReader.cs: Allocate buffer before its first use.
	Handle end of stream properly. Methods to read native types
	(ReadInt* etc.) are little-endian (see Compact Framework docs).

	* BinaryWriter.cs: Store data in little-endian format.
	Use internal buffer for conversions.

2002-03-31  Dick Porter  <dick@ximian.com>

	* Directory.cs: Strip out "." and ".." from returned list

	* FileAttributes.cs: Get the right enum values

2002-03-28  Dietmar Maurer  <dietmar@ximian.com>

	* TextWriter.cs (write): added check for null

2002-03-28  Dan Lewis  <dihlewis@yahoo.co.uk>

	* Directory.cs: Throws DirectoryNotFoundException.
	* MonoIO.cs: Fixed to work around enum problem.

2002-03-27  Dan Lewis  <dihlewis@yahoo.co.uk>

	* StreamReader.cs: Implemented ReadLine() and ReadEnd().

2002-03-27  Dan Lewis  <dihlewis@yahoo.co.uk>

	* Directory.cs, File.cs, FileSystemInfo.cs, FileInfo.cs,
	DirectoryInfo.cs, Path.cs: Modified to use MonoIO class instead of
	wrapper and PAL classes.

	* MonoIO.cs, MonoIOStat.cs, MonoIOError.cs: Added.

2002-03-25  Mike Kestner <mkestner@speakeasy.net>

	* MemoryStream.cs (Read): Fixed bug in exception throw.

2002-03-24  Mike Kestner <mkestner@speakeasy.net>

	* StreamReader.cs (ReadBuffer): Fix buffer merging bugs.

2002-03-23  Martin Baulig  <martin@gnome.org>

	* StreamReader.cs: Always do buffered reading, use 4k blocks.
	(Read (char[], int, int)): Implemented.
	(DiscardBufferedData): Implemented.

2002-03-21  Mike Kestner <mkestner@speakeasy.net>

	* StreamReader.cs : Fill out, add buffering, and use encoding.

2002-03-19  Martin Baulig  <martin@gnome.org>

	* StreamWriter.cs (StreamWriter (string)): The default is to override
	the file, not to append to it.
	(StreamWriter (string path, bool append)): When appending, seek to the
	end of the file, otherwise truncate the file to zero length.
	(Dispose (bool)): Close the internalStream.
	(Flush): Flush the interalStream.
	(Write (char[], int, int)): Flush the internalStream in auto-flush-mode.

2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>

	* FileStream.cs: Flush buffer before FileSetLength.

2002-02-28  Miguel de Icaza  <miguel@ximian.com>

	* Stream.cs (NullStream): Do not track position, this beast does
	nothing in practice.

2002-03-15  Dan Lewis <dihlewis@yahoo.co.uk>

	* SearchPattern.cs: New class. Glob matching code for Directory.
	* Directory.cs: Changed to use SearchPattern instead of mono_glob_*()

2002/03/15 Nick Drochak <ndrochak@gol.com>

	* DirectoryInfo.cs: Fixed the overloaded GetDirectories and GetFiles.
	This code seemed to be copied from somewhere, and it was close,
	but didn't match the docs.  This was the last bit needed to get
	NAnt to compile with our class libs.

2002-03-12  Duncan Mak  <duncan@ximian.com>

	* EndOfStreamException.cs:
	* FileLoadException.cs:
	* FileNotFoundException.cs:
	* PathTooLongException.cs: Changed the base classes to IOException
	instead of SystemException.

	* IOException.cs: Added missing constructors.
	
2002-03-07  Nick Drochak  <ndrochak@gol.com>

	* FileMode.cs: Docs don't say this should be explicitly derived from
	int, so just make it a normal Enum.

2002-03-02  Jason Diamond  <jason@injektilo.org>

	* StringReader.cs: Fixed off-by-one error in Peek() and Read().

2002-02-12  Nick Drochak  <ndrochak@gol.com>

	* PathTooLongException.cs: put it in the correct namespace
	* EndOfStreamException.cs: put it in the correct namespace

Thu Jan 31 17:32:32 CET 2002 Paolo Molaro <lupus@ximian.com>

	* Directory.cs: handle opendir() return NULL and absolute filenames.

2002-01-31  Duncan Mak  <duncan@ximian.com>

	* FileLoadException.cs:
	* FileNotFoundException: Added missing bits for serialization.

Thu Jan 24 17:42:54 CET 2002 Paolo Molaro <lupus@ximian.com>

	* Directory.cs: allow directories in GetFiles() mask.

2002-01-23  Miguel de Icaza  <miguel@ximian.com>

	* FileInfo.c (CopyTo, MoveTo): Implement.

	* FileStream.cs: Add argument checking to the constructor.

	* File.cs: Rewrote most of the file.  Implement Copy, Open, Create,
	OpenText, OpenWrite, Move.  Made pending methods flagged as MonoTODO. 
	
	* Directory.cs (Delete): reimplement without using DirectoryInfo.
	(Delete): Implement the recursive version.
	(GetCreationTime, GetLastWriteTime, GetLastAccessTime): Implement.
	(Move): Reimplement.
	(getNames): dead code removal.

	* Path.cs: define an internal DirectorySeparatorStr that we use in
	a few spots.

	* Wrapper.cs: Updated to new version.
	
	* DirectoryInfo (Delete): Implement using the Directory API.

	* DirectoryInfo.cs (GetFiles, GetDirectories, GetFileSystemInfos,
	Delete, Create, Parent, Exists, MoveTo): Implement. 

	* Directory.cs (GetListing): implement new utility function.
	(GetDirectories): Implement.
	(GetFileSystemEntries): Implement.
	(GetFiles): Implement.

	* CheckArgument.cs (Path): Do not allow null by default.

Tue Jan 22 22:53:23 CET 2002 Paolo Molaro <lupus@ximian.com>

	* DirectoryInfo.cs, FileInfo.cs: do not use Debug from the system
	assembly in corlib.

2002-01-20 Nick Drochak  <ndrochak@gol.com>

	* SeekOrigin.cs: Added Serializable attribute.

2002-01-19  Duncan Mak  <duncan@ximian.com>

	* PathTooLongException.cs: 
	* EndOfStreamException.cs: Added to CVS.

Thu Jan 10 12:06:46 MST 2002 Matt Kimball <matt@kimball.net>

	* BufferedStream.cs: Initial implemenation.  The synchronous
	methods for both reading and writing are implemented.  I'll do the
	asynchronous methods in a bit.
	
Wed Jan  9 16:04:39 MST 2002 Matt Kimball <matt@kimball.net>

	* BinaryWriter.cs: Initial implementation.  And it's all there.

	* BinaryReader.cs: The constructor now uses the passed in encoding,
	not UTF8 always.

Wed Jan  9 13:54:28 MST 2002 Matt Kimball <matt@kimbal.net>

	* BinaryReader.cs: Initial implementation.  I think it's complete.

2002-01-04  Ravi Pratap  <ravi@ximian.com>

	* CheckArgument.cs, CheckPermission.cs, Directory.cs: MonoTODO
	attribute decorations.

	* DirectoryInfo.cs, File.cs, FileInfo.cs, FileSystemInfo.cs,
	Path.cs, TextReader.cs, TextWriter.cs : Ditto.

	* FileLoadException.cs, FileNotFoundException.cs, StreamReader.cs: 
	Ditto.

2001-12-11  Dick Porter  <dick@ximian.com>

	* FileStream.cs: Use handles rather than casting file descriptors.
	Added Handle property.

Wed Nov 14 16:47:47 CET 2001 Paolo Molaro <lupus@ximian.com>

	* CheckPermission.cs: disable ModeAccess() code: it's wrong.
	* FileStream.cs: only trow an exception if the read failed in ReadByte().
	* StreamReader.cs: implement Peek and Read.
	* TextWriter.cs: CLSCompliant updates.

2001-11-10  Sean MacIsaac  <macisaac@ximian.com>

	* FileNotFoundException.cs: Added some constructors

	* Path.cs (GetFullPath): Fixed implementation

Fri Nov 2 18:27:58 CET 2001 Paolo Molaro <lupus@ximian.com>

	* DirectoryNotFoundException.cs: implemented.

Tue Sep 25 18:54:06 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* File.cs: fix signatures of the Open() and OpenRead() functions
	(they are static).

Thu Sep 13 18:04:23 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* FileLoadException.cs, FileNotFoundException.cs: added.

2001-08-28  Dietmar Maurer  <dietmar@ximian.com>

	* TextReader.cs: implemented the Read method

	* StreamReader.cs: impl. stubs

	* StreamWriter.cs: impl.

	* TextWriter.cs: implemented Write and WriteLine methods

Sun Aug 26 23:01:41 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* FileAccess.cs, FileMode.cs: change values to be compatible with
	the ms ones.
	
Sun Aug 26 11:47:56 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* IOException.cs: Implemented System.IO.Exception.

2001-07-18  Michael Lambert <michaellambert@email.com>

        *SeekOrigin.cs.cs, FileShare.cs, FileMode.cs, FileAccess.cs: Add.

2001-07-19  Marcin Szczepanski <marcins@zipworld.com.au>

	* System.IO.MemoryStream.cs: Added.  Had quite a few cases of
	"LAMESPEC", but the tests work against the MS implementation so
	the major functions are right (ie. Read/Write/Seek).  Some more
	tests required for the various constructors and exceptions.

2001-07-16  Marcin Szczepanski <marcins@zipworld.com.au>

	* StringReader.cs, StringWriter.cs, TextReader.cs, TextWriter.cs:
	New class implemenations.

	* StringReaderTest.cs, StringWriterTest.cs: Test suite for the above.
