private static Enquote ( string s, |
||
s | string | |
writer | ||
Résultat | void |
private static void Enquote(string s, TextWriter writer)
{
Debug.Assert(writer != null);
var length = (s ?? string.Empty).Length;
writer.Write('"');
var ch = '\0';
for (var index = 0; index < length; index++)
{
var last = ch;
Debug.Assert(s != null);
ch = s[index];
switch (ch)
{
case '\\':
case '"':
{
writer.Write('\\');
writer.Write(ch);
break;
}
case '/':
{
if (last == '<')
writer.Write('\\');
writer.Write(ch);
break;
}
case '\b': writer.Write("\\b"); break;
case '\t': writer.Write("\\t"); break;
case '\n': writer.Write("\\n"); break;
case '\f': writer.Write("\\f"); break;
case '\r': writer.Write("\\r"); break;
default:
{
if (ch < ' ')
{
writer.Write("\\u");
writer.Write(((int)ch).ToString("x4", CultureInfo.InvariantCulture));
}
else
{
writer.Write(ch);
}
break;
}
}
}
writer.Write('"');
}