summaryrefslogtreecommitdiff
path: root/src/modules/filters/swbasicfilter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/filters/swbasicfilter.cpp')
-rw-r--r--src/modules/filters/swbasicfilter.cpp20
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);