diff options
Diffstat (limited to 'src/modules/texts/ztext/ztext.cpp')
-rw-r--r-- | src/modules/texts/ztext/ztext.cpp | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/src/modules/texts/ztext/ztext.cpp b/src/modules/texts/ztext/ztext.cpp index 61b3008..f0afe6d 100644 --- a/src/modules/texts/ztext/ztext.cpp +++ b/src/modules/texts/ztext/ztext.cpp @@ -1,9 +1,11 @@ /****************************************************************************** - * ztext.cpp - code for class 'zText'- a module that reads compressed text - * files: ot and nt using indexs ??.vss * + * ztext.cpp - code for class 'zText'- a module that reads compressed text + * files * - * Copyright 2009 CrossWire Bible Society (http://www.crosswire.org) + * $Id: ztext.cpp 2980 2013-09-14 21:51:47Z scribe $ + * + * Copyright 1996-2013 CrossWire Bible Society (http://www.crosswire.org) * CrossWire Bible Society * P. O. Box 2528 * Tempe, AZ 85280-2528 @@ -28,9 +30,6 @@ #include <ztext.h> -#include <regex.h> // GNU - - SWORD_NAMESPACE_START /****************************************************************************** @@ -65,7 +64,7 @@ zText::~zText() } -bool zText::isWritable() { return ((idxfp[0]->getFd() > 0) && ((idxfp[0]->mode & FileMgr::RDWR) == FileMgr::RDWR)); } +bool zText::isWritable() const { return ((idxfp[0]->getFd() > 0) && ((idxfp[0]->mode & FileMgr::RDWR) == FileMgr::RDWR)); } /****************************************************************************** @@ -74,18 +73,18 @@ bool zText::isWritable() { return ((idxfp[0]->getFd() > 0) && ((idxfp[0]->mode & * RET: buffer with verse */ -SWBuf &zText::getRawEntryBuf() { +SWBuf &zText::getRawEntryBuf() const { long start = 0; unsigned short size = 0; unsigned long buffnum = 0; VerseKey &key = getVerseKey(); - findOffset(key.Testament(), key.TestamentIndex(), &start, &size, &buffnum); + findOffset(key.getTestament(), key.getTestamentIndex(), &start, &size, &buffnum); entrySize = size; // support getEntrySize call entryBuf = ""; - zReadText(key.Testament(), start, size, buffnum, entryBuf); + zReadText(key.getTestament(), start, size, buffnum, entryBuf); rawFilter(entryBuf, &key); // if (!isUnicode()) @@ -96,18 +95,18 @@ SWBuf &zText::getRawEntryBuf() { bool zText::sameBlock(VerseKey *k1, VerseKey *k2) { - if (k1->Testament() != k2->Testament()) + if (k1->getTestament() != k2->getTestament()) return false; switch (blockType) { case VERSEBLOCKS: - if (k1->Verse() != k2->Verse()) + if (k1->getVerse() != k2->getVerse()) return false; case CHAPTERBLOCKS: - if (k1->Chapter() != k2->Chapter()) + if (k1->getChapter() != k2->getChapter()) return false; case BOOKBLOCKS: - if (k1->Book() != k2->Book()) + if (k1->getBook() != k2->getBook()) return false; } return true; @@ -125,7 +124,7 @@ void zText::setEntry(const char *inbuf, long len) { delete lastWriteKey; } - doSetText(key.Testament(), key.TestamentIndex(), inbuf, len); + doSetText(key.getTestament(), key.getTestamentIndex(), inbuf, len); lastWriteKey = (VerseKey *)key.clone(); // must delete } @@ -134,7 +133,7 @@ void zText::setEntry(const char *inbuf, long len) { void zText::linkEntry(const SWKey *inkey) { VerseKey &destkey = getVerseKey(); const VerseKey *srckey = &getVerseKey(inkey); - doLinkEntry(destkey.Testament(), destkey.TestamentIndex(), srckey->TestamentIndex()); + doLinkEntry(destkey.getTestament(), destkey.getTestamentIndex(), srckey->getTestamentIndex()); } @@ -147,7 +146,7 @@ void zText::deleteEntry() { VerseKey &key = getVerseKey(); - doSetText(key.Testament(), key.TestamentIndex(), ""); + doSetText(key.getTestament(), key.getTestamentIndex(), ""); } @@ -164,7 +163,7 @@ void zText::increment(int steps) { unsigned long buffnum; VerseKey *tmpkey = &getVerseKey(); - findOffset(tmpkey->Testament(), tmpkey->TestamentIndex(), &start, &size, &buffnum); + findOffset(tmpkey->getTestament(), tmpkey->getTestamentIndex(), &start, &size, &buffnum); SWKey lastgood = *tmpkey; while (steps) { @@ -174,18 +173,21 @@ void zText::increment(int steps) { (steps > 0) ? ++(*key) : --(*key); tmpkey = &getVerseKey(); - if ((error = key->Error())) { + if ((error = key->popError())) { *key = lastgood; break; } - long index = tmpkey->TestamentIndex(); - findOffset(tmpkey->Testament(), index, &start, &size, &buffnum); + long index = tmpkey->getTestamentIndex(); + findOffset(tmpkey->getTestament(), index, &start, &size, &buffnum); if ( - (((laststart != start) || (lastsize != size)) // we're a different entry + ( + ((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 + && (size) // and we actually have a size + ) + || !skipConsecutiveLinks + ) { // or we don't want to skip consecutive links steps += (steps < 0) ? 1 : -1; lastgood = *tmpkey; } @@ -193,16 +195,17 @@ void zText::increment(int steps) { error = (error) ? KEYERR_OUTOFBOUNDS : 0; } + bool zText::isLinked(const SWKey *k1, const SWKey *k2) const { long start1, start2; unsigned short size1, size2; unsigned long buffnum1, buffnum2; VerseKey *vk1 = &getVerseKey(k1); VerseKey *vk2 = &getVerseKey(k2); - if (vk1->Testament() != vk2->Testament()) return false; + if (vk1->getTestament() != vk2->getTestament()) return false; - findOffset(vk1->Testament(), vk1->TestamentIndex(), &start1, &size1, &buffnum1); - findOffset(vk2->Testament(), vk2->TestamentIndex(), &start2, &size2, &buffnum2); + findOffset(vk1->getTestament(), vk1->getTestamentIndex(), &start1, &size1, &buffnum1); + findOffset(vk2->getTestament(), vk2->getTestamentIndex(), &start2, &size2, &buffnum2); return start1 == start2 && buffnum1 == buffnum2; } @@ -212,7 +215,7 @@ bool zText::hasEntry(const SWKey *k) const { unsigned long buffnum; VerseKey *vk = &getVerseKey(k); - findOffset(vk->Testament(), vk->TestamentIndex(), &start, &size, &buffnum); + findOffset(vk->getTestament(), vk->getTestamentIndex(), &start, &size, &buffnum); return size; } |