Changed some IriParsing behaviors to be platform behaviors.
authorMarcos Henrich <marcos.henrich@xamarin.com>
Mon, 28 Jul 2014 11:37:58 +0000 (12:37 +0100)
committerMarcos Henrich <marcos.henrich@xamarin.com>
Mon, 28 Jul 2014 11:37:58 +0000 (12:37 +0100)
mcs/class/System/System/Uri.cs
mcs/class/System/System/UriHelper.cs
mcs/class/System/System/UriParseComponents.cs

index 38b95c49614af154d68c97c16ebc633709e70912..ac643b8c9ffa85302927a7428bf5843ecc2de5e1 100644 (file)
@@ -1782,9 +1782,7 @@ namespace System {
                                return false;
                        }
 
-                       if (IriParsing)
-                               return true;
-
+#if !NET_4_5
                        switch (b) {
                        case '!':
                        case '\'':
@@ -1795,6 +1793,7 @@ namespace System {
                        case '.':
                                return false;
                        }
+#endif
 
                        return true;
                }
@@ -1848,10 +1847,10 @@ namespace System {
                        case '_':
                        case '~':
                                return false;
-#if NET_4_0
+#if NET_4_5
                        case '[':
                        case ']':
-                               return !IriParsing;
+                               return false;
 #endif
                        }
 
index 173eae32725d1bc919dfff1647b7723271af2636..397b508dcd8f8dcfa12392471bd20518f02f74bb 100644 (file)
@@ -486,11 +486,12 @@ namespace System {
                                        (formatFlags & FormatFlags.HasFragmentPercentage) != 0)
                                        return true;
 
-                               if (IriParsing)
-                                       return false;
-
+#if NET_4_5
+                               return false;
+#else
                                return uriFormat == UriFormat.UriEscaped ||
                                        (uriFormat != UriFormat.Unescaped && (formatFlags & FormatFlags.HasComponentCharactersToNormalize) != 0);
+#endif
                        }
 
                        if (uriFormat == UriFormat.SafeUnescaped || uriFormat == ToStringUnescape) {
index 2298ac75354d2305b95e3c0ddb45d826d328f780..6656edc133ca4d3ee302a5faddd918805e35558b 100644 (file)
@@ -398,7 +398,14 @@ namespace System {
                        if (possibleIpv6) {
                                IPv6Address ipv6addr;
                                if (IPv6Address.TryParse (sb.ToString (), out ipv6addr)) {
-                                       var ipStr = ipv6addr.ToString (!Uri.IriParsing).Split ('%') [0];
+#if NET_4_5
+                                       var ipStr = ipv6addr.ToString (false);
+#else
+                                       var ipStr = ipv6addr.ToString (true);
+#endif
+                                       //remove scope
+                                       ipStr = ipStr.Split ('%') [0];
+
                                        state.elements.host = "[" + ipStr + "]";
                                        state.elements.scopeId = ipv6addr.ScopeId;