HtmlToken ReadRcData ()
{
do {
int nc = Read ();
char c;
if (nc == -1) {
TokenizerState = HtmlTokenizerState.EndOfFile;
break;
}
c = (char) nc;
switch (c) {
case '&':
if (DecodeCharacterReferences) {
TokenizerState = HtmlTokenizerState.CharacterReferenceInRcData;
return null;
}
goto default;
case '<':
TokenizerState = HtmlTokenizerState.RcDataLessThan;
return EmitDataToken (DecodeCharacterReferences);
default:
data.Append (c == '\0' ? '\uFFFD' : c);
break;
}
} while (TokenizerState == HtmlTokenizerState.RcData);
return EmitDataToken (DecodeCharacterReferences);
}