public static string smethod_1(string string_1, char char_0, bool bool_3) { int?nullable = Class198.smethod_7(string_1); using (StringWriter writer = Class198.smethod_6(nullable.HasValue ? nullable.GetValueOrDefault() : 0x10)) { char[] chArray = null; smethod_0(writer, string_1, char_0, bool_3, (char_0 == '"') ? bool_1 : bool_0, StringEscapeHandling.Default, ref chArray); return(writer.ToString()); } }
public static void smethod_0(TextWriter textWriter_0, string string_1, char char_0, bool bool_3, bool[] bool_4, StringEscapeHandling stringEscapeHandling_0, ref char[] char_1) { if (bool_3) { textWriter_0.Write(char_0); } if (string_1 != null) { int sourceIndex = 0; for (int i = 0; i < string_1.Length; i++) { string str; char index = string_1[i]; if ((index < bool_4.Length) && !bool_4[index]) { continue; } char ch2 = index; if (ch2 <= '\\') { switch (ch2) { case '\b': str = @"\b"; goto Label_012E; case '\t': str = @"\t"; goto Label_012E; case '\n': str = @"\n"; goto Label_012E; case '\v': goto Label_00C3; case '\f': str = @"\f"; goto Label_012E; case '\r': str = @"\r"; goto Label_012E; } if (ch2 != '\\') { goto Label_00C3; } str = @"\\"; goto Label_012E; } switch (ch2) { case '\u2028': str = @"\u2028"; goto Label_012E; case '\u2029': str = @"\u2029"; goto Label_012E; case '\x0085': str = @"\u0085"; goto Label_012E; } Label_00C3: if ((index >= bool_4.Length) && (stringEscapeHandling_0 != StringEscapeHandling.EscapeNonAscii)) { str = null; } else if ((index == '\'') && (stringEscapeHandling_0 != StringEscapeHandling.EscapeHtml)) { str = @"\'"; } else if ((index == '"') && (stringEscapeHandling_0 != StringEscapeHandling.EscapeHtml)) { str = "\\\""; } else { if (char_1 == null) { char_1 = new char[6]; } Class198.smethod_8(index, char_1); str = "!"; } Label_012E: if (str != null) { bool flag = string.Equals(str, "!"); if (i > sourceIndex) { int num3 = (i - sourceIndex) + (flag ? 6 : 0); int destinationIndex = flag ? 6 : 0; if ((char_1 == null) || (char_1.Length < num3)) { char[] destinationArray = new char[num3]; if (flag) { Array.Copy(char_1, destinationArray, 6); } char_1 = destinationArray; } string_1.CopyTo(sourceIndex, char_1, destinationIndex, num3 - destinationIndex); textWriter_0.Write(char_1, destinationIndex, num3 - destinationIndex); } sourceIndex = i + 1; if (!flag) { textWriter_0.Write(str); } else { textWriter_0.Write(char_1, 0, 6); } } } if (sourceIndex == 0) { textWriter_0.Write(string_1); } else { int count = string_1.Length - sourceIndex; if ((char_1 == null) || (char_1.Length < count)) { char_1 = new char[count]; } string_1.CopyTo(sourceIndex, char_1, 0, count); textWriter_0.Write(char_1, 0, count); } } if (bool_3) { textWriter_0.Write(char_0); } }