2004-04-02 Dick Porter <dick@ximian.com>
[mono.git] / mcs / class / corlib / System / String.cs
index 09f135c0c35bb2fc363edbea902ef1ad5bde34a3..6d92bf96d80c38354604421e4c379c89efe85963 100644 (file)
@@ -656,6 +656,10 @@ namespace System
                        if (this == String.Empty)
                                return this;
 
+                       if (oldValue.Length == 0 || oldValue[0] == '\0') {
+                               return(this);
+                       }
+                       
                        if (newValue == null)
                                newValue = String.Empty;
 
@@ -1089,58 +1093,58 @@ namespace System
 
                bool IConvertible.ToBoolean (IFormatProvider provider)
                {
-                       return Convert.ToBoolean (this);
+                       return Convert.ToBoolean (this, provider);
                }
 
                byte IConvertible.ToByte (IFormatProvider provider)
                {
-                       return Convert.ToByte (this);
+                       return Convert.ToByte (this, provider);
                }
 
                char IConvertible.ToChar (IFormatProvider provider)
                {
-                       return Convert.ToChar (this);
+                       return Convert.ToChar (this, provider);
                }
 
                DateTime IConvertible.ToDateTime (IFormatProvider provider)
                {
-                       return Convert.ToDateTime (this);
+                       return Convert.ToDateTime (this, provider);
                }
 
                decimal IConvertible.ToDecimal (IFormatProvider provider)
                {
-                       return Convert.ToDecimal (this);
+                       return Convert.ToDecimal (this, provider);
                }
 
                double IConvertible.ToDouble (IFormatProvider provider)
                {
-                       return Convert.ToDouble (this);
+                       return Convert.ToDouble (this, provider);
                }
 
                short IConvertible.ToInt16 (IFormatProvider provider)
                {
-                       return Convert.ToInt16 (this);
+                       return Convert.ToInt16 (this, provider);
                }
 
                int IConvertible.ToInt32 (IFormatProvider provider)
                {
-                       return Convert.ToInt32 (this);
+                       return Convert.ToInt32 (this, provider);
                }
 
                long IConvertible.ToInt64 (IFormatProvider provider)
                {
-                       return Convert.ToInt64 (this);
+                       return Convert.ToInt64 (this, provider);
                }
        
                [CLSCompliant (false)]
                sbyte IConvertible.ToSByte (IFormatProvider provider)
                {
-                       return Convert.ToSByte (this);
+                       return Convert.ToSByte (this, provider);
                }
 
                float IConvertible.ToSingle (IFormatProvider provider)
                {
-                       return Convert.ToSingle (this);
+                       return Convert.ToSingle (this, provider);
                }
 
                string IConvertible.ToString (IFormatProvider format)
@@ -1156,19 +1160,19 @@ namespace System
                [CLSCompliant (false)]
                ushort IConvertible.ToUInt16 (IFormatProvider provider)
                {
-                       return Convert.ToUInt16 (this);
+                       return Convert.ToUInt16 (this, provider);
                }
 
                [CLSCompliant (false)]
                uint IConvertible.ToUInt32 (IFormatProvider provider)
                {
-                       return Convert.ToUInt32 (this);
+                       return Convert.ToUInt32 (this, provider);
                }
 
                [CLSCompliant (false)]
                ulong IConvertible.ToUInt64 (IFormatProvider provider)
                {
-                       return Convert.ToUInt64 (this);
+                       return Convert.ToUInt64 (this, provider);
                }
 
                TypeCode IConvertible.GetTypeCode ()