diff options
Diffstat (limited to 'src/modules/filters/swbasicfilter.cpp')
-rw-r--r-- | src/modules/filters/swbasicfilter.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/modules/filters/swbasicfilter.cpp b/src/modules/filters/swbasicfilter.cpp index e66017e..8e3ce0a 100644 --- a/src/modules/filters/swbasicfilter.cpp +++ b/src/modules/filters/swbasicfilter.cpp @@ -5,7 +5,7 @@ * many filters will need and can use as a starting * point. * - * $Id: swbasicfilter.cpp 2980 2013-09-14 21:51:47Z scribe $ + * $Id: swbasicfilter.cpp 3548 2017-12-10 05:11:38Z scribe $ * * Copyright 2001-2013 CrossWire Bible Society (http://www.crosswire.org) * CrossWire Bible Society @@ -29,6 +29,7 @@ #include <stdarg.h> #include <utilstr.h> #include <stringmgr.h> +#include <versekey.h> #include <map> #include <set> @@ -54,6 +55,19 @@ const char SWBasicFilter::POSTCHAR = 4; const char SWBasicFilter::FINALIZE = 8; +BasicFilterUserData::BasicFilterUserData(const SWModule *module, const SWKey *key) { + this->module = module; + this->key = key; + suspendTextPassThru = false; + supressAdjacentWhitespace = false; + vkey = 0; + SWTRY { + vkey = SWDYNAMIC_CAST(VerseKey, key); + } + SWCATCH ( ... ) { } +} + + SWBasicFilter::SWBasicFilter() { p = new Private; @@ -383,6 +397,9 @@ char SWBasicFilter::processText(SWBuf &text, const SWKey *key, const SWModule *m } escEndPos = escStartPos = tokenEndPos = tokenStartPos = 0; lastTextNode = ""; + if (!userData->suspendTextPassThru) { + userData->lastSuspendSegment.size(0); + } continue; } } @@ -398,7 +415,6 @@ char SWBasicFilter::processText(SWBuf &text, const SWKey *key, const SWModule *m if ((!userData->supressAdjacentWhitespace) || (*from != ' ')) { if (!userData->suspendTextPassThru) { text.append(*from); - userData->lastSuspendSegment.size(0); } else userData->lastSuspendSegment.append(*from); lastTextNode.append(*from); |