/********* * * This file is part of BibleTime's source code, http://www.bibletime.info/. * * Copyright 1999-2008 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ #include "backend/filters/bt_plainhtml.h" Filters::BT_PLAINHTML::BT_PLAINHTML() : sword::SWFilter() { } /** No descriptions */ char Filters::BT_PLAINHTML::processText(sword::SWBuf& text, const sword::SWKey* /*key*/, const sword::SWModule* /*module*/) { int count = 0; sword::SWBuf orig = text; const char *from = orig.c_str(); for (text = ""; *from; from++) { if ((*from == '\n') && (from[1] == '\n')) { // two newlinea are a paragraph text += "
";
from++;
continue;
}
//This is a special case: Newlines in the plaintext editor are stored as
, not as \n
//we need to let them through
else if ((*from == '<') && (from[1] == 'b') && (from[2] == 'r') && (from[3] == ' ') && (from[4] == '/') && (from[5] == '>')) {
text += "
";
from += 5;
continue;
}
else if ((*from == '\n')) { // only one new line
text += "
";
continue;
}
else if (*from == '<') {
text += "<";
continue;
}
else if (*from == '>') {
text += ">";
continue;
}
else if (*from == '&') {
text += "&";
continue;
}
else if (*from == '{') { //footnote start
text += " ("; /// \bug Possible color conflict
continue;
}
else if (*from == '}') { //footnote end
text += ") ";
continue;
}
else if ((*from == ' ') && (count > 5000)) {
text += "