2007-04-17 Jeffrey Stedfast <fejj@novell.com>
[mono.git] / mcs / class / corlib / System / ChangeLog
index 6156c6a56f145ee1ee6bbd861c7160290647fc5e..61181ff6d582a65898bb025b2572e26b444ef3d8 100644 (file)
@@ -1,3 +1,357 @@
+2007-04-17  Jeffrey Stedfast  <fejj@novell.com>
+
+       * 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 :
+         When comparing enumerations, two or more enumeration values might
+         match. Thus basically we should do complete matching, but right
+         now just do reverse order search since only numbered abbrev month
+         names matter (and full iteration is a mess). Fixed bug #80094.
+
+2006-12-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DateTime.cs :
+         use new internal clone-less DateTimeFormatInfo members.
+
+2006-11-29  Martin Baulig  <martin@ximian.com>
+
+       * INullableValue.cs: Removed.
+
 2006-11-28  Duncan Mak  <duncan@novell.com>
 
        * ArgumentNullException.cs (.ctor): Added new constructor that's