protected void ProcessQuoteInQuotedField(char currentCharacter)
{
if (_dialect.Quoting != QuoteStyle.QuoteNone && currentCharacter == _dialect.Quote)
{
AddChar(currentCharacter);
_state = ParserState.InQuotedField;
}
else if (currentCharacter == _dialect.Delimiter)
{
SaveField();
_state = ParserState.StartOfField;
}
else if (IsNullOrEndOfLine(currentCharacter))
{
SaveField();
_state = (IsNull(currentCharacter) ? ParserState.StartOfRecord : ParserState.EndOfRecord);
}
else if (!_dialect.Strict)
{
AddChar (currentCharacter);
_state = ParserState.InField;
} else {
throw new BadFormatException (
string.Format ("Bad format: '{0}' expected after '{1}'", _dialect.Delimiter, _dialect.Quote));
}
}