//
static bool NeedToEscapeDataChar (char b)
{
- if (IriParsing) {
- // .NET 4.0 follows RFC 3986 Unreserved Characters
- return !((b >= 'A' && b <= 'Z') ||
- (b >= 'a' && b <= 'z') ||
- (b >= '0' && b <= '9') ||
- b == '-' || b == '.' || b == '_' || b == '~');
+ if ((b >= 'A' && b <= 'Z') ||
+ (b >= 'a' && b <= 'z') ||
+ (b >= '0' && b <= '9'))
+ return false;
+
+ switch (b) {
+ case '-':
+ case '.':
+ case '_':
+ case '~':
+ return false;
+ }
+
+ if (IriParsing)
+ return true;
+
+ switch (b) {
+ case '!':
+ case '\'':
+ case '(':
+ case ')':
+ case '*':
+ case '-':
+ case '.':
+ return false;
}
- return !((b >= 'A' && b <= 'Z') ||
- (b >= 'a' && b <= 'z') ||
- (b >= '0' && b <= '9') ||
- b == '_' || b == '~' || b == '!' || b == '\'' ||
- b == '(' || b == ')' || b == '*' || b == '-' || b == '.');
+ return true;
}
public static string EscapeDataString (string stringToEscape)
//
static bool NeedToEscapeUriChar (char b)
{
- if ((b >= 'A' && b <= 'Z') || (b >= 'a' && b <= 'z') || (b >= '&' && b <= ';') ||
- b == '!' || b == '#' || b == '$' || b == '=' || b == '?' || b == '@' || b == '_' || b == '~')
+ if ((b >= 'A' && b <= 'Z') || (b >= 'a' && b <= 'z') || (b >= '&' && b <= ';'))
return false;
+ switch (b) {
+ case '!':
+ case '#':
+ case '$':
+ case '=':
+ case '?':
+ case '@':
+ case '_':
+ case '~':
+ return false;
#if NET_4_0
- if (b == '[' || b == ']')
+ case '[':
+ case ']':
return !IriParsing;
#endif
+ }
+
return true;
}
if (uriKind == UriKind.Relative)
return false;
- if (c == '$' || c == '&' || c == '+' || c == ',' || c == ';' || c == '=' || c == '@')
+ switch (c) {
+ case '$':
+ case '&':
+ case '+':
+ case ',':
+ case ';':
+ case '=':
+ case '@':
return true;
+ }
if (c < 0x20 || c == 0x7f)
return true;
}
if (uriFormat == UriFormat.SafeUnescaped || uriFormat == ToStringUnescape) {
- if (c == '-' || c == '.' || c == '_' || c == '~')
+ switch (c) {
+ case '-':
+ case '.':
+ case '_':
+ case '~':
return true;
-
- if (c == ' ' || c == '!' || c == '"' || c == '\'' || c == '(' || c == ')' || c == '*' ||
- c == '<' || c == '>' || c == '^' || c == '`' || c == '{' || c == '}' || c == '|')
+ case ' ':
+ case '!':
+ case '"':
+ case '\'':
+ case '(':
+ case ')':
+ case '*':
+ case '<':
+ case '>':
+ case '^':
+ case '`':
+ case '{':
+ case '}':
+ case '|':
return uriKind != UriKind.Relative ||
(IriParsing && (formatFlags & FormatFlags.HasUriCharactersToNormalize) != 0);
-
- if (c == ':' || c == '[' || c == ']')
+ case ':':
+ case '[':
+ case ']':
return uriKind != UriKind.Relative;
+ }
if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9'))
return true;
return false;
}
-
- if (c == '-' || c == '.' || c == '_' || c == '~')
- return true;
- if ((formatFlags & FormatFlags.HasUriCharactersToNormalize) != 0 &&
- (c == '!' || c == '\'' || c == '(' || c == ')' || c == '*' ||
- c == ':' || c == '[' || c == ']'))
+ switch (c) {
+ case '-':
+ case '.':
+ case '_':
+ case '~':
return true;
+ }
+
+ if ((formatFlags & FormatFlags.HasUriCharactersToNormalize) != 0) {
+ switch (c) {
+ case '!':
+ case '\'':
+ case '(':
+ case ')':
+ case '*':
+ case ':':
+ case '[':
+ case ']':
+ return true;
+ }
+ }
if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9'))
return true;
if (c < 0x20 || c >= 0x7F)
return component != UriComponents.Host;
- if (c == ' ' || c == '"' || c == '%' || c == '<' || c == '>' || c == '^' ||
- c == '`' || c == '{' || c == '}' || c == '|')
+ switch (c) {
+ case ' ':
+ case '"':
+ case '%':
+ case '<':
+ case '>':
+ case '^':
+ case '`':
+ case '{':
+ case '}':
+ case '|':
return true;
-
- if (c == '[' || c == ']')
+ case '[':
+ case ']':
return !IriParsing;
-
- if (c == '\\') {
+ case '\\':
return component != UriComponents.Path ||
SchemeContains (scheme,
UriSchemes.Gopher | UriSchemes.Ldap | UriSchemes.Mailto | UriSchemes.Nntp |