bool TxtBookReader::characterDataHandler(std::string &str) { const char *ptr = str.data(); const char *end = ptr + str.length(); for (; ptr != end; ++ptr) { if (isspace((unsigned char)*ptr)) { if (*ptr != '\t') { ++mySpaceCounter; } else { mySpaceCounter += myFormat.ignoredIndent() + 1; // TODO: implement single option in PlainTextFormat } } else { myLastLineIsEmpty = false; break; } } if (ptr != end) { if ((myFormat.breakType() & PlainTextFormat::BREAK_PARAGRAPH_AT_LINE_WITH_INDENT) && myNewLine && (mySpaceCounter > myFormat.ignoredIndent())) { internalEndParagraph(); beginParagraph(); } addData(str); if (myInsideContentsParagraph) { addContentsData(str); } myNewLine = false; } return true; }
bool TxtBookReader::characterDataHandler(std::string &str) { const char *ptr = str.data(); const char *end = ptr + str.length(); for (; ptr != end; ++ptr) { if (std::isspace((unsigned char)*ptr)) { if (*ptr != '\t') { ++mySpaceCounter; } else { mySpaceCounter += myFormat.ignoredIndent() + 1; // TODO: implement single option in PlainTextFormat } } else { myLastLineIsEmpty = false; break; } } if (ptr != end) { if ((myFormat.breakType() & PlainTextFormat::BREAK_PARAGRAPH_AT_LINE_WITH_INDENT) && myNewLine && (mySpaceCounter > myFormat.ignoredIndent())) { internalEndParagraph(); beginParagraph(); } if (myInsideContentsParagraph && str.length() <= 30) { if(!myHasAddedTitle) { internalEndParagraph(); insertEndOfSectionParagraph(); beginContentsParagraph(); enterTitle(); pushKind(SECTION_TITLE); beginParagraph(); myHasAddedTitle = true; } if(str[str.size() -1] == '\n') { myHasAddedTitle = false; } addContentsData(str); } addData(str); myNewLine = false; } return true; }