private static bool ParseWindowsUNC (ParserState state)
{
string part = state.remaining;
if (part.Length < 2 || part [0] != '\\' || part [1] != '\\')
return state.remaining.Length > 0;
state.elements.scheme = Uri.UriSchemeFile;
state.elements.delimiter = "://";
state.elements.isUnc = true;
part = part.TrimStart ('\\');
int pos = part.IndexOf ('\\');
if (pos > 0) {
state.elements.path = part.Substring (pos);
state.elements.host = part.Substring (0, pos);
} else { // "\\\\server"
state.elements.host = part;
state.elements.path = String.Empty;
}
state.elements.path = state.elements.path.Replace ("\\", "/");
return false;
}