summaryrefslogtreecommitdiff
path: root/src/modules/filters/gbfrtf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/filters/gbfrtf.cpp')
-rw-r--r--src/modules/filters/gbfrtf.cpp289
1 files changed, 0 insertions, 289 deletions
diff --git a/src/modules/filters/gbfrtf.cpp b/src/modules/filters/gbfrtf.cpp
deleted file mode 100644
index 4a18fbf..0000000
--- a/src/modules/filters/gbfrtf.cpp
+++ /dev/null
@@ -1,289 +0,0 @@
-/******************************************************************************
- *
- * gbfrtf - SWFilter descendant to convert all GBF tags to RTF tags
- */
-
-
-#include <gbfrtf.h>
-#include <ctype.h>
-
-SWORD_NAMESPACE_START
-
-GBFRTF::GBFRTF() {
-}
-
-
-char GBFRTF::processText(SWBuf &text, const SWKey *key, const SWModule *module)
-{
- char token[2048];
- char val[128];
- char *valto;
- char *num;
- int tokpos = 0;
- bool intoken = false;
- int len;
- const char *tok;
- SWBuf strongnum;
- SWBuf strongtense;
- bool hideText = false;
- int wordLen = 0;
- int wordCount = 0;
- int i;
-
- const char *from;
- SWBuf orig = text;
- from = orig.c_str();
- for (text = ""; *from; from++) {
- if (*from == '<') {
- wordLen = wordCount;
- wordCount = 0;
- intoken = true;
- tokpos = 0;
- token[0] = 0;
- token[1] = 0;
- token[2] = 0;
- continue;
- }
- if (*from == '>') {
- intoken = false;
- // process desired tokens
- // deal with OSIS note tags. Just hide till OSISRTF
- if (!strncmp(token, "note ", 5)) {
- hideText = true;
- }
- if (!strncmp(token, "/note", 5)) {
- hideText = false;
- }
-
- switch (*token) {
- case 'w': // OSIS Word (temporary until OSISRTF is done)
- strongnum = "";
- strongtense = "";
- valto = val;
- num = strstr(token, "lemma=\"x-Strongs:");
- if (num) {
- for (num+=17; ((*num) && (*num != '\"')); num++)
- *valto++ = *num;
- *valto = 0;
- if (atoi((!isdigit(*val))?val+1:val) < 5627) {
- // normal strongs number
- strongnum += "{\\cf3 \\sub <";
- for (tok = (!isdigit(*val))?val+1:val; *tok; tok++)
- strongnum += *tok;
- strongnum += ">}";
- }
- /* forget these for now
- else {
- // verb morph
- sprintf(wordstr, "%03d", word-1);
- module->getEntryAttributes()["Word"][wordstr]["Morph"] = val;
- }
- */
- }
- valto = val;
- num = strstr(token, "morph=\"x-Robinson:");
- if (num) {
- for (num+=18; ((*num) && (*num != '\"')); num++)
- *valto++ = *num;
- *valto = 0;
- // normal robinsons tense
- strongtense += "{\\cf4 \\sub (";
- for (tok = val; *tok; tok++)
- strongtense += *tok;
- strongtense += ")}";
- }
- continue;
-
- case '/':
- if (token[1] == 'w') {
- if ((wordCount > 0) || (strongnum != "{\\cf3 \\sub <3588>}")) {
- //for (i = 0; i < strongnum.length(); i++)
- text += strongnum;
- //for (i = 0; i < strongtense.length(); i++)
- text += strongtense;
- }
- }
- continue;
-
- case 'W': // Strongs
- switch(token[1]) {
- case 'G': // Greek
- case 'H': // Hebrew
- text += "{\\cf3 \\sub <";
- for (tok = token + 2; *tok; tok++)
- text += *tok;
- text += ">}";
- continue;
-
- case 'T': // Tense
- text += "{\\cf4 \\sub (";
- bool separate = false;
- for (tok = token + 2; *tok; tok++) {
- if (separate) {
- text += "; ";
- separate = false;
- }
- switch (*tok) {
- case 'G':
- case 'H':
- for (tok++; *tok; tok++) {
- if (isdigit(*tok)) {
- text += *tok;
- separate = true;
- }
- else {
- tok--;
- break;
- }
- }
- break;
- default:
- for (; *tok; tok++) {
- text += *tok;
- }
- }
- }
- text += ")}";
- continue;
- }
- break;
- case 'R':
- switch(token[1]) {
- case 'X':
- text += "<a href=\"\">";
- continue;
- case 'x':
- text += "</a>";
- continue;
- case 'F': // footnote begin
- text += "{\\i1 \\sub (";
- continue;
- case 'f': // footnote end
- text += ") }";
- continue;
- }
- break;
- case 'F': // font tags
- switch(token[1]) {
- case 'I': // italic start
- text += "\\i1 ";
- continue;
- case 'i': // italic end
- text += "\\i0 ";
- continue;
- case 'B': // bold start
- text += "\\b1 ";
- continue;
- case 'b': // bold end
- text += "\\b0 ";
- continue;
- case 'N':
- text += '{';
- if (!strnicmp(token+2, "Symbol", 6))
- text += "\\f7 ";
- if (!strnicmp(token+2, "Courier", 7))
- text += "\\f8 ";
- continue;
- case 'n':
- text += '}';
- continue;
- case 'S':
- text += "{\\super ";
- continue;
- case 's':
- text += '}';
- continue;
- case 'R':
- text += "{\\cf6 ";
- continue;
- case 'r':
- text += '}';
- continue;
- case 'O':
- case 'C':
- text += "\\scaps1 ";
- continue;
- case 'o':
- case 'c':
- text += "\\scaps0 ";
- continue;
- case 'V':
- text += "{\\sub ";
- continue;
- case 'v':
- text += '}';
- continue;
- case 'U':
- text += "\\ul1 ";
- continue;
- case 'u':
- text += "\\ul0 ";
- continue;
- }
- break;
- case 'C': // special character tags
- switch(token[1]) {
- case 'A': // ASCII value
- text += (char)atoi(&token[2]);
- continue;
- case 'G':
- text += '>';
- continue;
- case 'L': // line break
- text += "\\line ";
- continue;
- case 'M': // new paragraph
- text += "\\par ";
- continue;
- case 'T':
- text += '<';
- }
- break;
- case 'T': // title formatting
- switch(token[1])
- {
- case 'T': // Book title begin
- text += "{\\large ";
- continue;
- case 't':
- text += '}';
- continue;
- case 'S':
- text += "\\par {\\i1\\b1 ";
- continue;
- case 's':
- text += "}\\par ";
- continue;
- }
- break;
- case 'J': // Strongs
- switch(token[1]) {
- case 'L':
- text += "\\ql ";
- case 'C':
- text += "\\qc ";
- case 'R':
- text += "\\qr ";
- case 'F':
- text += "\\qj ";
- }
- }
- continue;
- }
- if (intoken) {
- if (tokpos < 2045)
- token[tokpos++] = *from;
- token[tokpos+2] = 0;
- }
- else {
- if (!hideText) {
- wordCount++;
- text += *from;
- }
- }
- }
- return 0;
-}
-
-SWORD_NAMESPACE_END
-