void RawFiles::setEntry(const char *inbuf, long len) { FileDesc *datafile; long start; unsigned short size; VerseKey *key = &getVerseKey(); len = (len<0)?strlen(inbuf):len; findOffset(key->Testament(), key->TestamentIndex(), &start, &size); if (size) { SWBuf tmpbuf; entryBuf = path; entryBuf += '/'; readText(key->Testament(), start, size, tmpbuf); entryBuf += tmpbuf; } else { SWBuf tmpbuf; entryBuf = path; entryBuf += '/'; tmpbuf = getNextFilename(); doSetText(key->Testament(), key->TestamentIndex(), tmpbuf); entryBuf += tmpbuf; } datafile = FileMgr::getSystemFileMgr()->open(entryBuf, FileMgr::CREAT|FileMgr::WRONLY|FileMgr::TRUNC); if (datafile->getFd() > 0) { datafile->write(inbuf, len); } FileMgr::getSystemFileMgr()->close(datafile); }
void RawLD::deleteEntry() { char *buf = new char [ strlen(*key) + 6 ]; strcpy(buf, *key); if (strongsPadding) strongsPad(buf); doSetText(buf, ""); delete [] buf; }
void RawLD::setEntry(const char *inbuf, long len) { char *buf = new char [ strlen(*key) + 6 ]; strcpy(buf, *key); if (strongsPadding) strongsPad(buf); doSetText(buf, inbuf, len); delete [] buf; }
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->TestamentIndex(), inbuf, len); lastWriteKey = (VerseKey *)key->clone(); // must delete }
void RawFiles::linkEntry(const SWKey *inkey) { long start; unsigned short size; const VerseKey *key = &getVerseKey(); findOffset(key->Testament(), key->TestamentIndex(), &start, &size); if (size) { SWBuf tmpbuf; readText(key->Testament(), start, size + 2, tmpbuf); key = &getVerseKey(inkey); doSetText(key->Testament(), key->TestamentIndex(), tmpbuf.c_str()); } }
void RawStr::doLinkEntry(const char *destkey, const char *srckey) { char *text = new char [ strlen(destkey) + 7 ]; sprintf(text, "@LINK %s", destkey); doSetText(srckey, text); delete [] text; }
void RawFiles::deleteEntry() { VerseKey *key = &getVerseKey(); doSetText(key->Testament(), key->TestamentIndex(), ""); }
void RawLD::deleteEntry() { doSetText(*key, ""); }
void RawLD::setEntry(const char *inbuf, long len) { doSetText(*key, inbuf, len); }
void RawCom4::setEntry(const char *inbuf, long len) { VerseKey *key = &getVerseKey(); doSetText(key->getTestament(), key->getTestamentIndex(), inbuf, len); }