示例#1
0
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);
}
示例#2
0
文件: rawld.cpp 项目: kalemas/swordxx
void RawLD::deleteEntry() {
    char *buf = new char [ strlen(*key) + 6 ];
    strcpy(buf, *key);

    if (strongsPadding) strongsPad(buf);

    doSetText(buf, "");

    delete [] buf;
}
示例#3
0
文件: rawld.cpp 项目: kalemas/swordxx
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;
}
示例#4
0
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
}
示例#5
0
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());
	}
}
示例#6
0
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;
}
示例#7
0
void RawFiles::deleteEntry() {
	VerseKey *key = &getVerseKey();
	doSetText(key->Testament(), key->TestamentIndex(), "");
}
示例#8
0
文件: rawld.cpp 项目: raphink/sword
void RawLD::deleteEntry() {
	doSetText(*key, "");
}
示例#9
0
文件: rawld.cpp 项目: raphink/sword
void RawLD::setEntry(const char *inbuf, long len) {
	doSetText(*key, inbuf, len);
}
示例#10
0
void RawCom4::setEntry(const char *inbuf, long len) {
	VerseKey *key = &getVerseKey();
	doSetText(key->getTestament(), key->getTestamentIndex(), inbuf, len);
}