+2007-04-18 Jeffrey Stedfast <fejj@novell.com>
+
+ Fixes bug #81159: behave the same as mscorlib
+
+ * TermInfoDriver.cs (ReadKeyInternal): Now has an 'out bool fresh'
+ argument which is used to tell our caller if the key was freshly
+ read from the console or pre-buffered.
+ (Read): New implementation of Console.In.Read(char[], int, int)
+ that behaves exactly like mscorlib's implementation.
+ (ReadKey): Updated for the ReadKeyInternal() API change - only
+ echo if the key was fresh.
+ (ReadLine): Same.
+
+ * CStreamReader.cs (Read): Call the new TermInfoDriver.Read()
+
+2007-04-17 Jeffrey Stedfast <fejj@novell.com>
+
+ * CStreamWriter.cs (Write): Optimized this some more, we don't
+ need a temporary buffer. Just blit chunks of the src buffer
+ instead.
+
+ * CStreamReader.cs (Read): Need to increment our array index so
+ that we don't store each byte read into the same
+ position. Discovered this while testing bug #81159 (which appears
+ to work as expected with current svn, other than this buglet).
+
+ * TermInfoDriver.cs (CursorTop::set): SetCursorPosition() sets our
+ internal cursorTop variable, so no need to explicitly set it again
+ after calling SetCursorPosition().
+ (CursorLeft::set): Same idea here.
+
+2007-04-17 Jeffrey Stedfast <fejj@novell.com>
+
+ * TermInfoDriver.cs (ReadLine): Implemented a workaround for
+ IronPython going behind System.Console's back when writing text to
+ the screen (it doesn't seem to use Console.stdout, instead it
+ creates its own file stream or something which just so happens to
+ write to the same file descriptor) by querying for the cursor
+ position in ReadLine(), so we lose no real performance (since we
+ have to wait for user input anyway).
+
+2007-04-17 Jeffrey Stedfast <fejj@novell.com>
+
+ * TermInfoDriver.cs (Init): SetEcho(false), we'll be manually
+ echoing from now on (ReadLine() has already been doing this, might
+ as well make ReadKey() behave the same).
+ (GetCursorPosition): No longer need to disable/re-enable echo
+ anymore since it is now always false.
+ (ReadKey): Manually echo the key back to the console just like
+ ReadLine() has been doing (in the interest of consistancy) if
+ intercept is false.
+ (ReadLine): No longer need to disable/re-enable echo, echo is
+ always off now. Also, fixed what appears to have been a typo.
+
+2007-04-17 Jeffrey Stedfast <fejj@novell.com>
+
+ * TermInfoDriver.cs (IsSpecialKey): Oops, Enter should not be
+ treated as a special key. Just update out cursor state here like
+ we do with normal chars.
+ (WriteSpecialKey): Enter is a no-op now because it is not treated
+ as a special key anymore.
+
+ * CStreamWriter.cs (Write): Only flush our buffer if j > 0
+
+2007-04-17 Jeffrey Stedfast <fejj@gnome.org>
+
+ Turns out my last patch was broken wrt handling some special keys
+ like Backspace and anything else that changed the cursor position
+ in some non-standard way.
+
+ * CStreamWriter.cs (Write): Instead of calling NotifyWrite(), we
+ instead need to check IsSpecialKey(), and, if so, flush whatever
+ we have saved in our temporary buffer and then call
+ WriteSpecialKey(). Otherwise go on as we did in the last patch.
+
+ * TermInfoDriver.cs (NotifyWrite): Broken up into 2 functions:
+ (IsSpecialKey): Returns true if we need to do some special voodoo
+ for this key
+ (WriteSpecialKey): Write the special key (using whatever voodoo
+ necessary)
+
+2007-04-16 Jeffrey Stedfast <fejj@gnome.org>
+
+ * CStreamWriter.cs (Write): Instead of writing 1 char at a time,
+ copy the bytes into a temporary char array (with a fixed max size)
+ so that we can minimize the number of Write() calls we make on the
+ underlying stream (and thus on the write() system call).
+
+2007-04-17 Alp Toker <alp@atoker.com>
+
+ * Array.cs: Make GetRank() icall private. Subclasses should use the
+ public Rank property.
+
+2007-04-16 Jeffrey Stedfast <fejj@novell.com>
+
+ * WindowsConsoleDriver.cs: Get rid of unused Echo property.
+
+ * NullConsoleDriver.cs: Get rid of Echo property.
+
+ * IConsoleDriver.cs: Get rid of Echo property.
+
+ * ConsoleDriver.cs (Echo::get/set): Removed, not needed.
+
+ * TermInfoDriver.cs (Echo::get/set): Removed, this isn't necessary
+ and is confusing.
+ (ReadKey): If we are intercepting the key, call SetEcho (false)
+ and then reset back to true after reading the key.
+ (ReadLine): Same idea here.
+ (GetCursorPosition): We no longer need to keep track of the
+ previous echo state, we no longer have it :)
+
+2007-04-16 Jeffrey Stedfast <fejj@novell.com>
+
+ Fix for bug #80710 (and a bug I introduced in my last fix due to
+ this code assuming the underlying term echo state was always
+ false) and other buglets that I noticed.
+
+ * TermInfoDriver.cs (ReadLine): Set (term) Echo to false as we do
+ our own manual echoing which prevents ^H from getting displayed on
+ the screen when the user hits backspace.
+ (ReadLine): If the user hits Backspace and builder.Length is 0, DO
+ NOT echo the backspace back to the console, ever.
+ (ReadLine): Only echo characters back to the console if echo is
+ set to true. Seems the Echo ConsoleDriver property is a Mono
+ extension, and I'm assuming this is the intended behavior? I can't
+ see what else the Echo property would be useful for...
+
+2007-04-16 Jeffrey Stedfast <fejj@novell.com>
+
+ Fixes bug #81050
+
+ * TermInfoDriver.cs: Renamed the noEcho variable to echo, makes
+ the logic cleaner/simpler/etc. Plus it was never actually used
+ other than in the property methods which are called Echo.
+ (Init): Call ConsoleDriver.SetEcho() with the 'echo' value -
+ allows for a slight optimization if called from within the
+ Echo::set property.
+ (GetCursorPosition): Instead of calling the Echo property methods,
+ call ConsoleDriver.SetEcho() directly to toggle echo off (if echo
+ isn't already off, and then back on once we're finished getting
+ the position - assuming the echo state is on, of course) - this
+ avoids calling back into Init() which just felt dirty.
+ (Echo::set): If the Echo state differs from our current state,
+ call ConsoleDriver.SetEcho() with the new state (this is the
+ important piece of the fix for bug #81050).
+ (ReadKey): Simplified the echo logic to make it a bit clearer.
+ (ReadLine): Same.
+
+2007-04-16 Marek Safar <marek.safar@gmail.com>
+
+ * Char.cs (IsLetter): Faster version.
+
+2007-04-15 Alp Toker <alp@atoker.com>
+
+ * Decimal.cs: Provide 2.0 Round() overloads using System.Math.
+
+2007-04-15 Alp Toker <alp@atoker.com>
+
+ * Activator.cs: CreateInstance(Type,object[]) was not params before
+ 2.0.
+
+2007-04-15 Alp Toker <alp@atoker.com>
+
+ * NonSerializedAttribute.cs: Inherited=false in 2.0.
+
+2007-04-05 Dick Porter <dick@ximian.com>
+
+ * Environment.cs: Increment mono_corlib_version
+
+2007-04-03 Alp Toker <alp@atoker.com>
+
+ * Array.cs: CreateInstance(Type,int[]) is params.
+ * AppDomain.cs: ExecuteAssemblyByName(string,Evidence,string[]) is
+ params.
+
+2007-04-03 Alp Toker <alp@atoker.com>
+
+ * Convert.cs:
+ * Math.cs: Should be static classes in 2.0.
+
+2007-04-03 Alp Toker <alp@atoker.com>
+
+ * Delegate.cs: DynamicInvoke(object[]) is params in 2.0.
+
+2007-04-03 Alp Toker <alp@atoker.com>
+
+ * Delegate.cs: Combine(Delegate[]) is params in 2.0.
+
+2007-03-27 Dick Porter <dick@ximian.com>
+
+ * Environment.cs: Increment mono_corlib_version;
+
+2007-03-16 Miguel de Icaza <miguel@novell.com>
+
+ * BitConverter.cs: Revert the patch from 72237 as that introduces
+ a regression and we are not sure yet what we will be doing about
+ that.
+
+ Introduce a new InternalInt64BitsToDouble method that provides the
+ fixed functionality, mark it as internal.
+
+ Introduce a new SwappableToDouble method that includes the
+ swapping ToDouble routine as introduced by Zoltan on 72237, this
+ is used by InternalInt64BitsToDouble.
+
+ * Math.cs (IEEERemainder): Use the InternalInt64BitsToDouble
+ routine here to preserve the semantics from Zoltan.
+
+ The problem with BitConverter.cs is that it is completely hossed.
+ In .NET 1.1 it is a bitwise copy, no attempt is ever done to do
+ endian-specific swapping. In .NET 2.0 it is *almost* like that,
+ but it is subtly broken: if data is unaligned then endian
+ conversions happen. If the data is properly aligned it behaves
+ like 1.0.
+
+ In general BitConverter is a sad class that offers little control,
+ we will be introducing a new mono bit converter and encourage
+ users to use that instead of the entirely broken
+ System.BitConverter.
+
+2007-03-11 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * Delegate.cs: Fixed bootstrap build.
+
+2007-03-08 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * StringComparer.cs: Renamed StringComparer classes and promoted them
+ to top-level classes. Merged Ordinal and OrdinalIgnoreCase comparers.
+ Fixes binary serialization compatibility with MS.
+
+2007-03-06 Zoltan Varga <vargaz@gmail.com>
+
+ * Type.cs (Equals): Remove a useless check.
+
+ * Type.cs: Rename Type:Equals(Type) to EqualsInternal, and add support for checking
+ UnderlyingSystemType. Fixes #81037.
+
+2007-03-05 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
+
+ * TermInfoDriver.cs: adjust buffer indexes after *every* read. Fixes
+ bug #80329. Robert Jordan attached a similar patch to the bug report
+ but I didn't see it until after my commit...
+
+2007-03-05 Peter Dettman <peter.dettman@iinet.net.au>
+
+ * Enum.cs: The above patch makes the formatting for specifiers 'x'
+ and 'X' behave like MS.NET, including the correct length for each
+ possible underlying type, and correctly using capital letters for
+ the 'X' case.
+
+ Patch also includes some more test cases in EnumTests.cs.
+
+2007-02-25 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * AppDomainSetup.cs: If configuration file is not an absolute path,
+ then throw a MemberAccessException if ApplicationBase is not set,
+ or otherwise consider it as a path relative to ApplicationBase.
+ Fixes bug #80934. Patch provided by Jamie Cansdale.
+ * AppDomain.cs: In CreateDomain, construct AppDomain with
+ ApplicationBase of default domain if not explicitly set in specified
+ AppDomainSetup. If config file is not set, then use filename of the
+ default domain config file. Base on patch provided by Jamie Cansdale.
+
+2007-02-16 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Random.cs: Fix exception messages ("then" -> "than"). Spotted by
+ Mark A. Nicolosi (#80873).
+
+2007-02-12 Miguel de Icaza <miguel@novell.com>
+
+ * CStreamWriter.cs (Write with char []): take the lock once for
+ all characters and call manually the InternalWriteChar properly to
+ speed things up.
+
+ (Write with string parameter): same thing, if the driver is not
+ initialized use a fast path.
+
+ If the driver has not been initialized, use a fast path instead.
+
+Mon Feb 12 21:54:57 CET 2007 Paolo Molaro <lupus@ximian.com>
+
+ * MonoType.cs: patch from Cedric Vivier <cedricv@neonux.com> to
+ get correctly non-public fields from generic types.
+
+2007-02-08 Jonathan Chambers <joncham@gmail.com>
+
+ * __ComObject.cs: Add IUnknown field to object. Cleanup icalls.
+
+2007-02-03 Zoltan Varga <vargaz@gmail.com>
+
+ * BitConverter.cs (ToDouble): Fix this on big-endian machines.
+
+2007-01-30 Atsushi Enomoto <atsushi@ximian.com>
+
+ * TimeZone.cs: According to the docs, we should not throw when
+ converting to Localtime if we are a negative value. Instead we
+ return DateTime.MinValue.
+
+2007-01-25 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DateTime.cs : copy Kind in those members that return DateTime.
+ Fixed bug #80614.
+
+2007-01-20 Miguel de Icaza <miguel@novell.com>
+
+ * Array.cs (InternalArray__ICollection_Contains,
+ InternalArray__IndexOf): Cope with null values in the array (See
+ bug #80563).
+
+2007-01-19 Marek Habersack <grendello@gmail.com>
+
+ * AppDomain.cs: Make sure that domain
+ SetupInformation.ConfigurationFile is never null. MS.NET by
+ default copies the default domain's ConfigurationFile value
+ there. Fixes bug #80547.
+
+2007-01-14 Jensen Somers <jensen.somers@gmail.com>
+
+ * ArraySegment.cs: Added Equals() method, operator == and !=
+ overloading and GetHashCode().
+
+2007-01-10 Andy Hume <andyhume32@yahoo.co.uk>
+
+ * Fixes to a number of exception classes.
+
+ A project of mine uses #ctor(String,Exception) on
+ ObjectDisposedException, so I looked at adding that, and any
+ other similar constructors missing as per the class status report.
+
+ I also spotted inconsistent setting of HResult, and fixed
+ those too. For instance, ArgumentNullException sets HResult
+ only in three out of the four constuctors; not setting it in
+ the v2 (String,Exception) one -- and correctly not in the
+ Serialization constructor.
+
+
+ So, I fixed the remaining missing (String,Exception)
+ constructors in corlib (2 of), and fixed the Hresult setting
+ in all exceptions there (4 of).
+
+ The remaining Exception constructor omission listed was
+ InvalidCastException.ctor(System.String, System.Int32). MSDN says:
+ "This constructor supplies an HRESULT value that is
+ accessible to inheritors of the InvalidCastException class,
+ via the protected HResult property of the Exception class."
+ I added that method too, setting the HResult property from
+ the Int32 argument.
+
+2007-01-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * String.cs, StringComparer.cs : avoid extra string creation in
+ StringComparer.OrdinalIgnoreCase.
+
+2007-01-05 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DateTime.cs: Under 2.0 fix ParseExact to set DateTimeKind.Utc when
+ DateTimeStyles.AdjustToUniversal is used.
+
+2007-01-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * TermInfoDriver.cs: honor the backspace in ReadLine.
+
+2006-12-30 Marek Safar <marek.safar@gmail.com>
+
+ * String.cs: Character based method only.
+ (IndexOf, LastIndexOf, Replace, IndexOfAny): Performance improvements.
+ (Substring): Returns same instance when index is 0.
+
+2006-12-30 Alp Toker <alp@atoker.com>
+
+ * Decimal.cs:
+ * Math.cs: Implement missing Decimal.Ceiling methods for 2.0.
+ Closes #80384.
+
+2006-12-22 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DateTime.cs: Implement missing [To|From]Binary methods for 2.0.
+ * OperatingSystem.cs: Implement missing ServicePack and VersionString
+ properties (2.0).
+ * Version.cs: Add missing Major|MinorRevision properties for 2.0.
+
+2006-12-14 Raja R Harinath <rharinath@novell.com>
+
+ * Type.cs (MakeGenericType): Can only be called on a generic type
+ definition.
+
+2006-12-03 Miguel de Icaza <miguel@novell.com>
+
+ * DateTime.cs: Fix this on the 2.0 profile, return the
+ DateTimeKind for the Now property
+
+2006-12-01 Duncan Mak <duncan@a-chinaman.com>
+
+ * ArgumentOutOfRangeException.cs (.ctor):
+ * NotFiniteNumberException.cs (.ctor): Add the 2.0 constructor
+ that takes a string and an inner Exception.
+
2006-12-01 Atsushi Enomoto <atsushi@ximian.com>
* DateTime.cs :