public int ReadText(StringBuilder token)
{
int nextChar = Peek();
int start = m_Offset;
bool quote = false;
bool escape = false;
if (nextChar == '"')
{
quote = true;
nextChar = SkipAndPeek();
}
while (nextChar > -1 &&
(quote || (WhiteSpace.IndexOf((char)nextChar) == -1 &&
LineBreakers.IndexOf((char)nextChar) == -1)) &&
(!quote || escape || nextChar != '"'))
{
if (!escape && nextChar == '\\')
{
escape = true;
}
else
{
if (token != null)
{
token.Append((char)nextChar);
}
escape = false;
}
nextChar = SkipAndPeek();
}
if (quote && nextChar == '"')
{
nextChar = SkipAndPeek();
}
int len = m_Offset - start;
ReadWhiteSpace(null);
return len;
}