summaryrefslogtreecommitdiff
path: root/src/modules/lexdict/rawld/rawld.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/lexdict/rawld/rawld.cpp')
-rw-r--r--src/modules/lexdict/rawld/rawld.cpp84
1 files changed, 27 insertions, 57 deletions
diff --git a/src/modules/lexdict/rawld/rawld.cpp b/src/modules/lexdict/rawld/rawld.cpp
index b22c28b..6fccc68 100644
--- a/src/modules/lexdict/rawld/rawld.cpp
+++ b/src/modules/lexdict/rawld/rawld.cpp
@@ -14,11 +14,11 @@
#include <unistd.h>
#endif
-#include <string.h>
#include <utilfuns.h>
#include <rawstr.h>
#include <rawld.h>
+SWORD_NAMESPACE_START
/******************************************************************************
* RawLD Constructor - Initializes data for instance of RawLD
@@ -88,15 +88,11 @@ char RawLD::getEntry(long away)
strongsPad(buf);
- *entrybuf = 0;
- if (!(retval = findoffset(buf, &start, &size, away))) {
+ if (!(retval = findOffset(buf, &start, &size, away))) {
+ readText(start, &size, &idxbuf, entryBuf);
+ rawFilter(entryBuf, 0); // hack, decipher
+ rawFilter(entryBuf, key);
entrySize = size; // support getEntrySize call
- if (entrybuf)
- delete [] entrybuf;
- entrybuf = new char [ ++size * FILTERPAD ];
- idxbuf = new char [ size * FILTERPAD ];
-
- gettext(start, size + 1, idxbuf, entrybuf);
if (!key->Persist()) // If we have our own key
*key = idxbuf; // reset it to entry index buffer
@@ -104,8 +100,7 @@ char RawLD::getEntry(long away)
delete [] idxbuf;
}
else {
- entrybuf = new char [ 5 ];
- *entrybuf = 0;
+ entryBuf = "";
}
delete [] buf;
@@ -114,82 +109,55 @@ char RawLD::getEntry(long away)
/******************************************************************************
- * RawLD::operator char * - Returns the correct entry when char * cast
+ * RawLD::getRawEntry - Returns the correct entry when char * cast
* is requested
*
* RET: string buffer with entry
*/
-char *RawLD::getRawEntry() {
- if (!getEntry() && !isUnicode()) {
- preptext(entrybuf);
+SWBuf &RawLD::getRawEntryBuf() {
+
+ char ret = getEntry();
+ if (!ret) {
+// if (!isUnicode())
+ prepText(entryBuf);
}
+ else error = ret;
- return entrybuf;
+ return entryBuf;
}
/******************************************************************************
- * RawLD::operator += - Increments module key a number of entries
+ * RawLD::increment - Increments module key a number of entries
*
* ENT: increment - Number of entries to jump forward
*
* RET: *this
*/
-SWModule &RawLD::operator +=(int increment)
-{
+void RawLD::increment(int steps) {
char tmperror;
if (key->Traversable()) {
- *key += increment;
+ *key += steps;
error = key->Error();
- increment = 0;
+ steps = 0;
}
- tmperror = (getEntry(increment)) ? KEYERR_OUTOFBOUNDS : 0;
+ tmperror = (getEntry(steps)) ? KEYERR_OUTOFBOUNDS : 0;
error = (error)?error:tmperror;
*key = entkeytxt;
- return *this;
-}
-
-
-/******************************************************************************
- * RawLD::operator =(SW_POSITION) - Positions this key if applicable
- */
-
-SWModule &RawLD::operator =(SW_POSITION p)
-{
- if (!key->Traversable()) {
- switch (p) {
- case POS_TOP:
- *key = "";
- break;
- case POS_BOTTOM:
- *key = "zzzzzzzzz";
- break;
- }
- }
- else *key = p;
- return *this;
}
-SWModule &RawLD::setentry(const char *inbuf, long len) {
- settext(*key, inbuf, len);
-
- return *this;
-}
-
-SWModule &RawLD::operator <<(const char *inbuf) {
- return setentry(inbuf, 0);
+void RawLD::setEntry(const char *inbuf, long len) {
+ doSetText(*key, inbuf, len);
}
-SWModule &RawLD::operator <<(const SWKey *inkey) {
- linkentry(*key, *inkey);
-
- return *this;
+void RawLD::linkEntry(const SWKey *inkey) {
+ doLinkEntry(*key, *inkey);
}
@@ -200,5 +168,7 @@ SWModule &RawLD::operator <<(const SWKey *inkey) {
*/
void RawLD::deleteEntry() {
- settext(*key, "");
+ doSetText(*key, "");
}
+
+SWORD_NAMESPACE_END