diff options
Diffstat (limited to 'src/modules/filters/gbfmorph.cpp')
-rw-r--r-- | src/modules/filters/gbfmorph.cpp | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/src/modules/filters/gbfmorph.cpp b/src/modules/filters/gbfmorph.cpp deleted file mode 100644 index 996baf9..0000000 --- a/src/modules/filters/gbfmorph.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/****************************************************************************** - * - * gbfmorph - SWFilter descendant to hide or show morph tags - * in a GBF module. - */ - - -#include <stdlib.h> -#include <gbfmorph.h> -#ifndef __GNUC__ -#else -#include <unixstr.h> -#endif - -SWORD_NAMESPACE_START - -const char oName[] = "Morphological Tags"; -const char oTip[] = "Toggles Morphological Tags On and Off if they exist"; - -const SWBuf choices[3] = {"On", "Off", ""}; -const StringList oValues(&choices[0], &choices[2]); - -GBFMorph::GBFMorph() : SWOptionFilter(oName, oTip, &oValues) { - setOptionValue("Off"); -} - - -GBFMorph::~GBFMorph() { -} - - -char GBFMorph::processText(SWBuf &text, const SWKey *key, const SWModule *module) { - if (!option) { // if we don't want morph tags - const char *from; - char token[2048]; // cheese. Fix. - int tokpos = 0; - bool intoken = false; - int len; - bool lastspace = false; - - SWBuf orig = text; - from = orig.c_str(); - - for (text = ""; *from; from++) { - if (*from == '<') { - intoken = true; - tokpos = 0; - token[0] = 0; - token[1] = 0; - token[2] = 0; - continue; - } - if (*from == '>') { // process tokens - intoken = false; - if (*token == 'W' && token[1] == 'T') { // Morph - if ((from[1] == ' ') || (from[1] == ',') || (from[1] == ';') || (from[1] == '.') || (from[1] == '?') || (from[1] == '!') || (from[1] == ')') || (from[1] == '\'') || (from[1] == '\"')) { - if (lastspace) - text--; - } - continue; - } - // if not a morph tag token, keep token in text - text += '<'; - text += token; - text += '>'; - continue; - } - if (intoken) { - if (tokpos < 2045) - token[tokpos++] = *from; - token[tokpos+2] = 0; - } - else { - text += *from; - lastspace = (*from == ' '); - } - } - } - return 0; -} - -SWORD_NAMESPACE_END |