diff options
Diffstat (limited to 'src/modules/comments/zcom/zcom.cpp')
-rw-r--r-- | src/modules/comments/zcom/zcom.cpp | 216 |
1 files changed, 0 insertions, 216 deletions
diff --git a/src/modules/comments/zcom/zcom.cpp b/src/modules/comments/zcom/zcom.cpp deleted file mode 100644 index 744a509..0000000 --- a/src/modules/comments/zcom/zcom.cpp +++ /dev/null @@ -1,216 +0,0 @@ -/****************************************************************************** - * rawcom.cpp - code for class 'zCom'- a module that reads raw commentary - * files: ot and nt using indexs ??.bks ??.cps ??.vss - */ - - -#include <ctype.h> -#include <stdio.h> -#include <fcntl.h> - -#ifndef __GNUC__ -#include <io.h> -#else -#include <unistd.h> -#endif - -#include <utilfuns.h> -#include <zverse.h> -#include <zcom.h> - -SWORD_NAMESPACE_START - -/****************************************************************************** - * zCom Constructor - Initializes data for instance of zCom - * - * ENT: ipath - path to data files - * iname - Internal name for module - * idesc - Name to display to user for module - * iblockType - verse, chapter, book, etc. of index chunks - * icomp - Compressor object - * idisp - Display object to use for displaying - */ - -zCom::zCom(const char *ipath, const char *iname, const char *idesc, int iblockType, SWCompress *icomp, SWDisplay *idisp, SWTextEncoding enc, SWTextDirection dir, SWTextMarkup mark, const char* ilang) : zVerse(ipath, -1, iblockType, icomp), SWCom(iname, idesc, idisp, enc, dir, mark, ilang)/*, SWCompress()*/ -{ - blockType = iblockType; - lastWriteKey = 0; -} - -/****************************************************************************** - * zCom Destructor - Cleans up instance of zCom - */ - -zCom::~zCom() { - flushCache(); - - if (lastWriteKey) - delete lastWriteKey; -} - -/****************************************************************************** - * zCom::getRawEntry - Returns the correct verse when char * cast - * is requested - * - * RET: string buffer with verse - */ -SWBuf &zCom::getRawEntryBuf() { - long start = 0; - unsigned short size = 0; - VerseKey *key = &getVerseKey(); - - findOffset(key->Testament(), key->Index(), &start, &size); - entrySize = size; // support getEntrySize call - - entryBuf = ""; - zReadText(key->Testament(), start, size, entryBuf); - - rawFilter(entryBuf, key); - -// if (!isUnicode()) - prepText(entryBuf); - - return entryBuf; -} - - -bool zCom::sameBlock(VerseKey *k1, VerseKey *k2) { - if (k1->Testament() != k2->Testament()) - return false; - - switch (blockType) { - case VERSEBLOCKS: - if (k1->Verse() != k2->Verse()) - return false; - case CHAPTERBLOCKS: - if (k1->Chapter() != k2->Chapter()) - return false; - case BOOKBLOCKS: - if (k1->Book() != k2->Book()) - return false; - } - return true; -} - -void zCom::setEntry(const char *inbuf, long len) { - VerseKey *key = &getVerseKey(); - - // see if we've jumped across blocks since last write - if (lastWriteKey) { - if (!sameBlock(lastWriteKey, key)) { - flushCache(); - } - delete lastWriteKey; - } - - doSetText(key->Testament(), key->Index(), inbuf, len); - - lastWriteKey = (VerseKey *)key->clone(); // must delete -} - - -void zCom::linkEntry(const SWKey *inkey) { - VerseKey *destkey = &getVerseKey(); - const VerseKey *srckey = 0; - - // see if we have a VerseKey * or decendant - try { - srckey = (const VerseKey *) SWDYNAMIC_CAST(VerseKey, inkey); - } - catch ( ... ) { - } - // if we don't have a VerseKey * decendant, create our own - if (!srckey) - srckey = new VerseKey(inkey); - - doLinkEntry(destkey->Testament(), destkey->Index(), srckey->Index()); - - if (inkey != srckey) // free our key if we created a VerseKey - delete srckey; -} - -/****************************************************************************** - * zCom::deleteEntry - deletes this entry - * - * RET: *this - */ - -void zCom::deleteEntry() { - - VerseKey *key = &getVerseKey(); - doSetText(key->Testament(), key->Index(), ""); -} - - -/****************************************************************************** - * zCom::increment - Increments module key a number of entries - * - * ENT: increment - Number of entries to jump forward - * - * RET: *this - */ - -void zCom::increment(int steps) { - long start; - unsigned short size; - VerseKey *tmpkey = &getVerseKey(); - - findOffset(tmpkey->Testament(), tmpkey->Index(), &start, &size); - - SWKey lastgood = *tmpkey; - while (steps) { - long laststart = start; - unsigned short lastsize = size; - SWKey lasttry = *tmpkey; - (steps > 0) ? (*key)++ : (*key)--; - tmpkey = &getVerseKey(); - - if ((error = key->Error())) { - *key = lastgood; - break; - } - long index = tmpkey->Index(); - findOffset(tmpkey->Testament(), index, &start, &size); - if ( - (((laststart != start) || (lastsize != size)) // we're a different entry -// && (start > 0) - && (size)) // and we actually have a size - ||(!skipConsecutiveLinks)) { // or we don't want to skip consecutive links - steps += (steps < 0) ? 1 : -1; - lastgood = *tmpkey; - } - } - error = (error) ? KEYERR_OUTOFBOUNDS : 0; -} - - -VerseKey &zCom::getVerseKey() { - static VerseKey tmpVK; - VerseKey *key; - // see if we have a VerseKey * or decendant - try { - key = SWDYNAMIC_CAST(VerseKey, this->key); - } - catch ( ... ) { } - if (!key) { - ListKey *lkTest = 0; - try { - lkTest = SWDYNAMIC_CAST(ListKey, this->key); - } - catch ( ... ) { } - if (lkTest) { - try { - key = SWDYNAMIC_CAST(VerseKey, lkTest->GetElement()); - } - catch ( ... ) { } - } - } - if (!key) { - tmpVK = *(this->key); - return tmpVK; - } - else return *key; -} - - -SWORD_NAMESPACE_END |