1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 18:29:23 +02:00

multiple '}' at end of rtf file processing

This commit is contained in:
Nikolay Pultsin 2012-03-22 23:59:42 +00:00
parent a33e6ef793
commit 3978af83ec

View file

@ -210,7 +210,8 @@ bool RtfReader::parseDocument() {
READ_BINARY_DATA, READ_BINARY_DATA,
READ_HEX_SYMBOL, READ_HEX_SYMBOL,
READ_KEYWORD, READ_KEYWORD,
READ_KEYWORD_PARAMETER READ_KEYWORD_PARAMETER,
READ_END_OF_FILE
} parserState = READ_NORMAL_DATA; } parserState = READ_NORMAL_DATA;
std::string keyword; std::string keyword;
@ -228,6 +229,11 @@ bool RtfReader::parseDocument() {
bool readNextChar = true; bool readNextChar = true;
while (ptr != end) { while (ptr != end) {
switch (parserState) { switch (parserState) {
case READ_END_OF_FILE:
if (*ptr != '}' && !isspace(*ptr)) {
return false;
}
break;
case READ_BINARY_DATA: case READ_BINARY_DATA:
// TODO: optimize // TODO: optimize
processCharData(ptr, 1); processCharData(ptr, 1);
@ -260,7 +266,8 @@ bool RtfReader::parseDocument() {
} }
if (myStateStack.empty()) { if (myStateStack.empty()) {
return false; parserState = READ_END_OF_FILE;
break;
} }
if (myState.Destination != myStateStack.top().Destination) { if (myState.Destination != myStateStack.top().Destination) {