summaryrefslogtreecommitdiff
path: root/src/modules/comments
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/comments')
-rw-r--r--src/modules/comments/Makefile5
-rw-r--r--src/modules/comments/Makefile.am8
-rw-r--r--src/modules/comments/hrefcom/Makefile5
-rw-r--r--src/modules/comments/hrefcom/Makefile.am4
-rw-r--r--src/modules/comments/hrefcom/hrefcom.cpp90
-rw-r--r--src/modules/comments/hrefcom/jfbgen.cpp242
-rw-r--r--src/modules/comments/rawcom/Makefile5
-rw-r--r--src/modules/comments/rawcom/Makefile.am4
-rw-r--r--src/modules/comments/rawcom/mhcidx.cpp292
-rw-r--r--src/modules/comments/rawcom/rawcom.cpp184
-rw-r--r--src/modules/comments/rawcom/rtfidx.cpp292
-rw-r--r--src/modules/comments/rawcom/rwpidx.cpp266
-rw-r--r--src/modules/comments/rawfiles/Makefile5
-rw-r--r--src/modules/comments/rawfiles/Makefile.am3
-rw-r--r--src/modules/comments/rawfiles/rawfiles.cpp269
-rw-r--r--src/modules/comments/rawfiles/rawfilesgen.cpp236
-rw-r--r--src/modules/comments/swcom.cpp71
-rw-r--r--src/modules/comments/zcom/Makefile5
-rw-r--r--src/modules/comments/zcom/Makefile.am4
-rw-r--r--src/modules/comments/zcom/makeidx.c146
-rw-r--r--src/modules/comments/zcom/rawtxt2z.cpp83
-rw-r--r--src/modules/comments/zcom/zcom.cpp216
22 files changed, 0 insertions, 2435 deletions
diff --git a/src/modules/comments/Makefile b/src/modules/comments/Makefile
deleted file mode 100644
index 1a2d00d..0000000
--- a/src/modules/comments/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-
-root := ../../..
-
-all:
- make -C ${root}
diff --git a/src/modules/comments/Makefile.am b/src/modules/comments/Makefile.am
deleted file mode 100644
index 1568544..0000000
--- a/src/modules/comments/Makefile.am
+++ /dev/null
@@ -1,8 +0,0 @@
-commentsdir = $(top_srcdir)/src/modules/comments
-
-libsword_la_SOURCES += $(commentsdir)/swcom.cpp
-
-include ../src/modules/comments/rawcom/Makefile.am
-include ../src/modules/comments/rawfiles/Makefile.am
-include ../src/modules/comments/zcom/Makefile.am
-include ../src/modules/comments/hrefcom/Makefile.am
diff --git a/src/modules/comments/hrefcom/Makefile b/src/modules/comments/hrefcom/Makefile
deleted file mode 100644
index 35d6648..0000000
--- a/src/modules/comments/hrefcom/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-
-root := ../../../..
-
-all:
- make -C ${root}
diff --git a/src/modules/comments/hrefcom/Makefile.am b/src/modules/comments/hrefcom/Makefile.am
deleted file mode 100644
index a6a2115..0000000
--- a/src/modules/comments/hrefcom/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-hrefcomdir = $(top_srcdir)/src/modules/comments/hrefcom
-
-libsword_la_SOURCES += $(hrefcomdir)/hrefcom.cpp
-
diff --git a/src/modules/comments/hrefcom/hrefcom.cpp b/src/modules/comments/hrefcom/hrefcom.cpp
deleted file mode 100644
index 42b2745..0000000
--- a/src/modules/comments/hrefcom/hrefcom.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/******************************************************************************
- * hrefcom.cpp - code for class 'HREFCom'- a module that produces HTML HREFs
- * pointing to actual text desired. Uses standard
- * 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 <rawverse.h>
-#include <hrefcom.h>
-
-SWORD_NAMESPACE_START
-
- /******************************************************************************
- * HREFCom Constructor - Initializes data for instance of HREFCom
- *
- * ENT: iname - Internal name for module
- * iprefix - string to prepend to each HREF (e.g. "file://mods/com/jfb/")
- * idesc - Name to display to user for module
- * idisp - Display object to use for displaying
- */
-
-HREFCom::HREFCom(const char *ipath, const char *iprefix, const char *iname, const char *idesc, SWDisplay *idisp) : RawVerse(ipath), SWCom(iname, idesc, idisp)
-{
- prefix = 0;
- stdstr(&prefix, iprefix);
-}
-
-
-/******************************************************************************
- * HREFCom Destructor - Cleans up instance of HREFCom
- */
-
-HREFCom::~HREFCom()
-{
- if (prefix)
- delete [] prefix;
-}
-
-
-/******************************************************************************
- * HREFCom::operator char * - Returns the correct verse when char * cast
- * is requested
- *
- * RET: string buffer with verse
- */
-
-SWBuf &HREFCom::getRawEntryBuf() {
- long start;
- unsigned short size;
- VerseKey *key = 0;
-
-#ifndef _WIN32_WCE
- try {
-#endif
- key = SWDYNAMIC_CAST(VerseKey, this->key);
-#ifndef _WIN32_WCE
- }
- catch ( ... ) {}
-#endif
- if (!key)
- key = new VerseKey(this->key);
-
- findOffset(key->Testament(), key->Index(), &start, &size);
- entrySize = size; // support getEntrySize call
-
- SWBuf tmpbuf;
-
- readText(key->Testament(), start, size, tmpbuf);
- entryBuf = prefix;
- entryBuf += tmpbuf.c_str();
- prepText(entryBuf);
-
- if (key != this->key)
- delete key;
-
- return entryBuf;
-}
-
-SWORD_NAMESPACE_END
diff --git a/src/modules/comments/hrefcom/jfbgen.cpp b/src/modules/comments/hrefcom/jfbgen.cpp
deleted file mode 100644
index 8b66a60..0000000
--- a/src/modules/comments/hrefcom/jfbgen.cpp
+++ /dev/null
@@ -1,242 +0,0 @@
-/*****************************************************************************
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#ifndef __GNUC__
-#include <io.h>
-#else
-#include <unistd.h>
-#endif
-
-#include <fcntl.h>
-#include <versekey.h>
-
-#ifndef O_BINARY
- #define O_BINARY 0
-#endif
-
-void writeidx(VerseKey &key1, VerseKey &key2, VerseKey &key3, long offset, short size);
-char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size);
-void openfiles();
-void checkparams(int argc, char **argv);
-void charsetconvert(char *data);
-
-
-VerseKey key1, key2, key3;
-int fp, vfp, cfp, bfp;
-long chapoffset;
-short chapsize;
-char testmnt;
-char startflag = 0;
-
-
-main(int argc, char **argv)
-{
- long pos, offset;
- int num1, num2, rangemax, curbook = 0, curchap = 0, curverse = 0;
- char buf[127];
- short size, tmp;
- extern struct zonline online;
-
- checkparams(argc, argv);
-
- key1 = key2 = key3 = "Genesis 1:1";
-
- openfiles();
-
- num1 = key1.Chapter();
- num2 = key1.Verse();
-
- while(!findbreak(fp, &offset, &num1, &num2, &rangemax, &size)) {
- if (!startflag) {
- startflag = 1;
- }
- else {
- if (num2 < key2.Verse()) { // new chapter
- if (num1 <= key2.Chapter()) { // new book
- key2.Verse(1);
- key2.Chapter(1);
- key2.Book(key2.Book()+1);
- }
- printf("Found Chapter Break: %d ('%s')\n", num1, (const char *)key2);
- chapoffset = offset;
- chapsize = size;
-// continue;
- }
- }
- key2.Verse(1);
- key2.Chapter(num1);
- key2.Verse(num2);
-
- key3 = key2;
-// key3 += (rangemax - key3.Verse());
-
- writeidx(key1, key2, key3, offset, size);
- }
- close(vfp);
- close(cfp);
- close(bfp);
- close(fp);
-}
-
-
-/**************************************************************************
- * ENT: key1 - current location of index
- * key2 - minimum keyval for which this offset is valid
- * key3 - maximum keyval for which this offset is valid
- */
-
-void writeidx(VerseKey &key1, VerseKey &key2, VerseKey &key3, long offset, short size)
-{
- long pos;
- short tmp;
-
- if (key1.Verse() == 1) { // new chapter
- if (key1.Chapter() == 1) { // new book
- pos = lseek(cfp, 0, SEEK_CUR);
- write(bfp, &pos, 4);
- pos = lseek(vfp, 0, SEEK_CUR); /* Book intro (cps) */
- write(cfp, &pos, 4);
- write(vfp, &chapoffset, 4); /* Book intro (vss) set to same as chap for now(it should be chap 1 which usually contains the book into anyway)*/
- write(vfp, &chapsize, 2);
- }
- pos = lseek(vfp, 0, SEEK_CUR);
- write(cfp, &pos, 4);
- write(vfp, &chapoffset, 4); /* Chapter intro */
- write(vfp, &chapsize, 2);
- }
- if (key1 >= key2) {
- write(vfp, &offset, 4);
- write(vfp, &size, 2);
- }
- else {
- pos = 0;
- tmp = 0;
- write(vfp, &pos, 4);
- write(vfp, &tmp, 2);
- }
- key1++;
-}
-
-
-static VerseKey inckey = "Genesis 1:1";
-
-char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size)
-{
- char buf[7];
- char buf2[20];
- char ch;
- char loop;
- long offset2;
- int ch2, vs2, rm2;
- bool flag;
- long chapstart = 0;
- static int olbvnum = 0;
- char data[256];
- char *bookabrev[66] = {"Ge", "Ex", "Le", "Nu", "De", "Jos", "Jud", "Ru",
- "1Sa", "2Sa", "1Ki", "2Ki", "1Ch", "2Ch", "Ezr", "Ne", "Es",
- "Job", "Ps", "Pr", "Ec", "So", "Isa", "Jer", "La", "Eze", "Da",
- "Ho", "Joe", "Am", "Ob", "Jon", "Mic", "Na", "Heb", "Zep",
- "Hag", "Zec", "Mal",
- "Mt", "Mr", "Lu", "Joh", "Ac", "Ro", "1Co", "2Co", "Ga",
- "Eph", "Php", "Col", "1Th", "2Th", "1Ti", "2Ti", "Tit", "Phm",
- "Heb", "Jas", "1Pe", "2Pe", "1Jo", "2Jo", "3Jo", "Jude", "Re" };
-
- if (++olbvnum <= 31102) {
-
- if (olbvnum == 23146) { // "Matthew 1:1"
- close(vfp);
- close(cfp);
- close(bfp);
- close(fp);
- key1 = key2 = key3 = inckey = "Matthew 1:1";
- openfiles();
- startflag = 0;
- }
-
-
- *offset = lseek(fp, 0, SEEK_CUR);
-
- if ((olbvnum!=1) && (olbvnum != 23146))
- inckey++;
-
- *num1 = inckey.Chapter();
- *num2 = inckey.Verse();
-
- sprintf(data, "JFB%.2d.htm#%s%d_%d", inckey.Book() + ((inckey.Testament()>1)?39:0), bookabrev[inckey.Book() + ((inckey.Testament()>1)?39:0)-1], inckey.Chapter(), inckey.Verse());
- write(fp, data, strlen(data));
-
- *size = lseek(fp, 0, SEEK_CUR) - *offset;
- write(fp, "\n", 1);
- return 0;
- }
- return 1;
-}
-
-
-void openfiles()
-{
- char buf[255];
- char fname[5];
- long pos;
- short size;
-
- testmnt = key1.Testament();
-
- strcpy(fname, (testmnt==2) ? "nt" : "ot");
- unlink(fname);
- if ((fp = open(fname, O_CREAT|O_RDWR|O_BINARY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", fname);
- exit(1);
- }
-
- sprintf(buf, "%s.vss", fname);
- unlink(buf);
- if ((vfp = open(buf, O_CREAT|O_WRONLY|O_BINARY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- sprintf(buf, "%s.cps", fname);
- unlink(buf);
- if ((cfp = open(buf, O_CREAT|O_WRONLY|O_BINARY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- sprintf(buf, "%s.bks", fname);
- unlink(buf);
- if ((bfp = open(buf, O_CREAT|O_WRONLY|O_BINARY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- pos = 0;
- write(bfp, &pos, 4); /* Book offset for testament intros */
- pos = 4;
- write(cfp, &pos, 4); /* Chapter offset for testament intro */
-
-
-/* Right now just zero out intros until parsing correctly */
- pos = 0;
- size = 0;
- write(vfp, &pos, 4); /* Module intro */
- write(vfp, &size, 2);
- write(vfp, &pos, 4); /* Testament intro */
- write(vfp, &size, 2);
-
-}
-
-
-void checkparams(int argc, char **argv)
-{
- if (argc !=1) {
- fprintf(stderr, "usage: %s\n", argv[0]);
- exit(1);
- }
-}
diff --git a/src/modules/comments/rawcom/Makefile b/src/modules/comments/rawcom/Makefile
deleted file mode 100644
index 35d6648..0000000
--- a/src/modules/comments/rawcom/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-
-root := ../../../..
-
-all:
- make -C ${root}
diff --git a/src/modules/comments/rawcom/Makefile.am b/src/modules/comments/rawcom/Makefile.am
deleted file mode 100644
index 901cf6b..0000000
--- a/src/modules/comments/rawcom/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-rawcomdir = $(top_srcdir)/src/modules/comments/rawcom
-
-libsword_la_SOURCES += $(rawcomdir)/rawcom.cpp
-
diff --git a/src/modules/comments/rawcom/mhcidx.cpp b/src/modules/comments/rawcom/mhcidx.cpp
deleted file mode 100644
index df16f55..0000000
--- a/src/modules/comments/rawcom/mhcidx.cpp
+++ /dev/null
@@ -1,292 +0,0 @@
-/*****************************************************************************
- *
- * This code wreaks but works (at least for MHC). Good luck!
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#ifndef __GNUC__
-#include <io.h>
-#else
-#include <unistd.h>
-#endif
-
-#include <fcntl.h>
-#include <versekey.h>
-
-
-void writeidx(VerseKey &key1, VerseKey &key2, VerseKey &key3, long offset, short size);
-char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size);
-void openfiles(char *fname);
-void checkparams(int argc, char **argv);
-
-
-VerseKey key1, key2, key3;
-int fp, vfp, cfp, bfp;
-long chapoffset;
-short chapsize;
-char testmnt;
-
-
-main(int argc, char **argv)
-{
- long pos, offset;
- int num1, num2, rangemax, curbook = 0, curchap = 0, curverse = 0;
- char buf[127], startflag = 0;
- short size, tmp;
-
- checkparams(argc, argv);
-
- openfiles(argv[1]);
-
- testmnt = key1.Testament();
- pos = 0;
- write(bfp, &pos, 4); /* Book offset for testament intros */
- pos = 4;
- write(cfp, &pos, 4); /* Chapter offset for testament intro */
-
-
-/* Right now just zero out intros until parsing correctly */
- pos = 0;
- size = 0;
- write(vfp, &pos, 4); /* Module intro */
- write(vfp, &size, 2);
- write(vfp, &pos, 4); /* Testament intro */
- write(vfp, &size, 2);
-
- while(!findbreak(fp, &offset, &num1, &num2, &rangemax, &size)) {
- if (num2) {
- key2.Verse(1);
- key2.Chapter(num1);
- key2.Verse(num2);
- }
- else {
- key2.Verse(1);
- if (!startflag) {
- startflag = 1;
- }
- else {
- if (num1 <= key2.Chapter()) { // new book
- key2.Chapter(1);
- key2.Book(key2.Book()+1);
- }
- }
- key2.Chapter(num1);
- printf("Found Chapter Break: %d ('%s')\n", num1, (const char *)key2);
- chapoffset = offset;
- chapsize = size;
- continue;
- }
-
- key3 = key2;
- key3 += (rangemax - key3.Verse());
-
- writeidx(key1, key2, key3, offset, size);
- }
- close(vfp);
- close(cfp);
- close(bfp);
- close(fp);
-}
-
-
-/**************************************************************************
- * ENT: key1 - current location of index
- * key2 - minimum keyval for which this offset is valid
- * key3 - maximum keyval for which this offset is valid
- */
-
-void writeidx(VerseKey &key1, VerseKey &key2, VerseKey &key3, long offset, short size)
-{
- long pos;
- short tmp;
-
- for (; ((key1 <= key3) && (key1.Error() != KEYERR_OUTOFBOUNDS) && (key1.Testament() == testmnt)); key1+=1) {
- if (key1.Verse() == 1) { // new chapter
- if (key1.Chapter() == 1) { // new book
- pos = lseek(cfp, 0, SEEK_CUR);
- write(bfp, &pos, 4);
- pos = lseek(vfp, 0, SEEK_CUR); /* Book intro (cps) */
- write(cfp, &pos, 4);
- write(vfp, &chapoffset, 4); /* Book intro (vss) set to same as chap for now(it should be chap 1 which usually contains the book into anyway)*/
- write(vfp, &chapsize, 2);
- }
- pos = lseek(vfp, 0, SEEK_CUR);
- write(cfp, &pos, 4);
- write(vfp, &chapoffset, 4); /* Chapter intro */
- write(vfp, &chapsize, 2);
- }
- if (key1 >= key2) {
- write(vfp, &offset, 4);
- write(vfp, &size, 2);
- }
- else {
- pos = 0;
- tmp = 0;
- write(vfp, &pos, 4);
- write(vfp, &tmp, 2);
- }
- }
-}
-
-
-char startentry(char *buf)
-{
- char loop;
-
- if (buf[0] != 10)
- return 0;
- if (buf[1] != '#')
- return 0;
- if (!isdigit(buf[2]))
- return 0;
- for (loop = 3; loop < 7; loop++) {
- if (buf[loop] == ' ')
- break;
- if ((!isdigit(buf[loop])) && (buf[loop] != ',') && (buf[loop] != '-'))
- return 0;
- }
- return 1;
-}
-
-
-char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size)
-{
- char buf[7];
- char buf2[20];
- char ch;
- char loop;
- long offset2;
- int ch2, vs2, rm2;
-
- memset(buf, ' ', 7);
-
- while (1) {
- if (startentry(buf)) {
- memset(buf, ' ', 2);
- for (loop = 2; loop < 7; loop++) {
- if ((buf[loop] == '-') || (buf[loop] == ',') || (buf[loop] == ' ')) {
- buf[loop] = 0;
- *num2 = atoi(buf);
- break;
- }
- }
- for (ch = loop + 1; ch < 7; ch++) {
- if (buf[ch] == ' ') {
- break;
- }
- }
- buf[ch] = 0;
- *rangemax = atoi(&buf[loop+1]);
- if (!*rangemax)
- *rangemax = *num2;
- *offset = lseek(fp, 0, SEEK_CUR) - 5;
- if (size) {
- if (findbreak(fp, &offset2, &ch2, &vs2, &rm2, 0)) {
- *size = (short) (lseek(fp, 0, SEEK_END) - (*offset));
- }
- else {
- if (vs2) {
- *size = (offset2 - (*offset)) - 3;
- }
- else {
- sprintf(buf2, "$-$-$- XX:%d", ch2);
- *size = (offset2 - (*offset)) - ((strlen(buf2) + 4));
- }
- }
- lseek(fp, *offset, SEEK_SET);
- }
- return 0;
- }
-
- if (!strncmp(buf, "$-$-$-", 6)) {
- memset(buf2, 0, 7);
- loop = 0;
- while ((read(fp, &buf2[loop], 1) == 1) && (loop < 7)) {
- if ((buf2[loop] == 10) || (buf2[loop] == 13)) {
- buf2[loop] = 0;
- break;
- }
- loop++;
- }
- while (read(fp, &ch, 1) == 1) {
- if (ch == '*')
- break;
- }
-
- *offset = lseek(fp, 0, SEEK_CUR) - 1;
- *num2 = 0;
- for (loop = strlen(buf2) - 1; loop; loop--) {
- if (buf2[loop] == ':')
- break;
- }
- *num1 = atoi(&buf2[loop+1]);
- printf("Chapter marker: %s\n", buf2);
- if (size) {
- if (findbreak(fp, &offset2, &ch2, &vs2, &rm2, 0)) {
- *size = (short) (lseek(fp, 0, SEEK_END) - (*offset));
- }
- else {
- if (vs2) {
- *size = (offset2 - (*offset)) - 3;
- }
- else {
- sprintf(buf2, "$-$-$- XX:%d", ch2);
- *size = (offset2 - (*offset)) - ((strlen(buf2) + 4));
- }
- }
- lseek(fp, *offset, SEEK_SET);
- }
- return 0;
- }
-
-
- memmove(buf, &buf[1], 6);
- if (read(fp, &buf[6], 1) != 1)
- return 1;
- }
-}
-
-
-void openfiles(char *fname)
-{
- char buf[255];
-
- if ((fp = open(fname, O_RDONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", fname);
- exit(1);
- }
-
- sprintf(buf, "%s.vss", fname);
- if ((vfp = open(buf, O_CREAT|O_WRONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- sprintf(buf, "%s.cps", fname);
- if ((cfp = open(buf, O_CREAT|O_WRONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- sprintf(buf, "%s.bks", fname);
- if ((bfp = open(buf, O_CREAT|O_WRONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-}
-
-
-void checkparams(int argc, char **argv)
-{
- if (argc < 2) {
- fprintf(stderr, "usage: %s <file to process> [nt - for new testmt file]\n", argv[0]);
- exit(1);
- }
- if (argc == 3)
- key1 = key2 = key3 = "Matthew 1:1";
- else key1 = key2 = key3 = "Genesis 1:1";
-}
diff --git a/src/modules/comments/rawcom/rawcom.cpp b/src/modules/comments/rawcom/rawcom.cpp
deleted file mode 100644
index e34af2e..0000000
--- a/src/modules/comments/rawcom/rawcom.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-/******************************************************************************
- * rawcom.cpp - code for class 'RawCom'- 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 <rawverse.h>
-#include <rawcom.h>
-
-SWORD_NAMESPACE_START
-
- /******************************************************************************
- * RawCom Constructor - Initializes data for instance of RawCom
- *
- * ENT: iname - Internal name for module
- * idesc - Name to display to user for module
- * idisp - Display object to use for displaying
- */
-
-RawCom::RawCom(const char *ipath, const char *iname, const char *idesc, SWDisplay *idisp, SWTextEncoding encoding, SWTextDirection dir, SWTextMarkup markup, const char* ilang)
- : RawVerse(ipath),
- SWCom(iname, idesc, idisp, encoding, dir, markup, ilang){
-}
-
-
-/******************************************************************************
- * RawCom Destructor - Cleans up instance of RawCom
- */
-
-RawCom::~RawCom()
-{
-}
-
-
-/******************************************************************************
- * RawCom::getRawEntry() - Returns the correct verse when char * cast
- * is requested
- *
- * RET: string buffer with verse
- */
-
-SWBuf &RawCom::getRawEntryBuf() {
- long start = 0;
- unsigned short size = 0;
- VerseKey *key = &getVerseKey();
-
- findOffset(key->Testament(), key->Index(), &start, &size);
- entrySize = size; // support getEntrySize call
-
- entryBuf = "";
- readText(key->Testament(), start, size, entryBuf);
-
- rawFilter(entryBuf, 0); // hack, decipher
- rawFilter(entryBuf, key);
-
-// if (!isUnicode())
- prepText(entryBuf);
-
- return entryBuf;
-}
-
-
-/******************************************************************************
- * RawCom::increment - Increments module key a number of entries
- *
- * ENT: steps - Number of entries to jump forward
- *
- * RET: *this
- */
-
-void RawCom::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;
-}
-
-
-void RawCom::setEntry(const char *inbuf, long len) {
- VerseKey *key = &getVerseKey();
- doSetText(key->Testament(), key->Index(), inbuf, len);
-}
-
-
-void RawCom::linkEntry(const SWKey *inkey) {
- VerseKey *destkey = &getVerseKey();
- const VerseKey *srckey = 0;
-
- // see if we have a VerseKey * or decendant
- try {
- srckey = 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;
-}
-
-
-/******************************************************************************
- * RawCom::deleteEntry - deletes this entry
- *
- * RET: *this
- */
-
-void RawCom::deleteEntry() {
-
- VerseKey *key = &getVerseKey();
- doSetText(key->Testament(), key->Index(), "");
-}
-
-
-VerseKey &RawCom::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
diff --git a/src/modules/comments/rawcom/rtfidx.cpp b/src/modules/comments/rawcom/rtfidx.cpp
deleted file mode 100644
index 38b38bc..0000000
--- a/src/modules/comments/rawcom/rtfidx.cpp
+++ /dev/null
@@ -1,292 +0,0 @@
-/*****************************************************************************
- *
- * This code wreaks but works (at least for MHC). Good luck!
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#ifndef __GNUC__
-#include <io.h>
-#else
-#include <unistd.h>
-#endif
-
-#include <fcntl.h>
-#include <versekey.h>
-
-
-void writeidx(VerseKey &key1, VerseKey &key2, VerseKey &key3, long offset, short size);
-char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size);
-void openfiles(char *fname);
-void checkparams(int argc, char **argv);
-
-
-VerseKey key1, key2, key3;
-int fp, vfp, cfp, bfp;
-long chapoffset;
-short chapsize;
-char testmnt;
-
-
-main(int argc, char **argv)
-{
- long pos, offset;
- int num1, num2, rangemax, curbook = 0, curchap = 0, curverse = 0;
- char buf[127], startflag = 0;
- short size, tmp;
-
- checkparams(argc, argv);
-
- openfiles(argv[1]);
-
- testmnt = key1.Testament();
- pos = 0;
- write(bfp, &pos, 4); /* Book offset for testament intros */
- pos = 4;
- write(cfp, &pos, 4); /* Chapter offset for testament intro */
-
-
-/* Right now just zero out intros until parsing correctly */
- pos = 0;
- size = 0;
- write(vfp, &pos, 4); /* Module intro */
- write(vfp, &size, 2);
- write(vfp, &pos, 4); /* Testament intro */
- write(vfp, &size, 2);
-
- while(!findbreak(fp, &offset, &num1, &num2, &rangemax, &size)) {
- if (num2) {
- key2.Verse(1);
- key2.Chapter(num1);
- key2.Verse(num2);
- }
- else {
- key2.Verse(1);
- if (!startflag) {
- startflag = 1;
- }
- else {
- if (num1 <= key2.Chapter()) { // new book
- key2.Chapter(1);
- key2.Book(key2.Book()+1);
- }
- }
- key2.Chapter(num1);
- printf("Found Chapter Break: %d ('%s')\n", num1, (char *)key2);
- chapoffset = offset;
- chapsize = size;
- continue;
- }
-
- key3 = key2;
- key3 += (rangemax - key3.Verse());
-
- writeidx(key1, key2, key3, offset, size);
- }
- close(vfp);
- close(cfp);
- close(bfp);
- close(fp);
-}
-
-
-/**************************************************************************
- * ENT: key1 - current location of index
- * key2 - minimum keyval for which this offset is valid
- * key3 - maximum keyval for which this offset is valid
- */
-
-void writeidx(VerseKey &key1, VerseKey &key2, VerseKey &key3, long offset, short size)
-{
- long pos;
- short tmp;
-
- for (; ((key1 <= key3) && (key1.Error() != KEYERR_OUTOFBOUNDS) && (key1.Testament() == testmnt)); key1+=1) {
- if (key1.Verse() == 1) { // new chapter
- if (key1.Chapter() == 1) { // new book
- pos = lseek(cfp, 0, SEEK_CUR);
- write(bfp, &pos, 4);
- pos = lseek(vfp, 0, SEEK_CUR); /* Book intro (cps) */
- write(cfp, &pos, 4);
- write(vfp, &chapoffset, 4); /* Book intro (vss) set to same as chap for now(it should be chap 1 which usually contains the book into anyway)*/
- write(vfp, &chapsize, 2);
- }
- pos = lseek(vfp, 0, SEEK_CUR);
- write(cfp, &pos, 4);
- write(vfp, &chapoffset, 4); /* Chapter intro */
- write(vfp, &chapsize, 2);
- }
- if (key1 >= key2) {
- write(vfp, &offset, 4);
- write(vfp, &size, 2);
- }
- else {
- pos = 0;
- tmp = 0;
- write(vfp, &pos, 4);
- write(vfp, &tmp, 2);
- }
- }
-}
-
-
-char startentry(char *buf)
-{
- char loop;
-
- if (buf[0] != 10)
- return 0;
- if (buf[1] != '#')
- return 0;
- if (!isdigit(buf[2]))
- return 0;
- for (loop = 3; loop < 7; loop++) {
- if (buf[loop] == ' ')
- break;
- if ((!isdigit(buf[loop])) && (buf[loop] != ',') && (buf[loop] != '-'))
- return 0;
- }
- return 1;
-}
-
-
-char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size)
-{
- char buf[7];
- char buf2[20];
- char ch;
- char loop;
- long offset2;
- int ch2, vs2, rm2;
-
- memset(buf, ' ', 7);
-
- while (1) {
- if (startentry(buf)) {
- memset(buf, ' ', 2);
- for (loop = 2; loop < 7; loop++) {
- if ((buf[loop] == '-') || (buf[loop] == ',') || (buf[loop] == ' ')) {
- buf[loop] = 0;
- *num2 = atoi(buf);
- break;
- }
- }
- for (ch = loop + 1; ch < 7; ch++) {
- if (buf[ch] == ' ') {
- break;
- }
- }
- buf[ch] = 0;
- *rangemax = atoi(&buf[loop+1]);
- if (!*rangemax)
- *rangemax = *num2;
- *offset = lseek(fp, 0, SEEK_CUR) - 5;
- if (size) {
- if (findbreak(fp, &offset2, &ch2, &vs2, &rm2, 0)) {
- *size = (short) (lseek(fp, 0, SEEK_END) - (*offset));
- }
- else {
- if (vs2) {
- *size = (offset2 - (*offset)) - 3;
- }
- else {
- sprintf(buf2, "$-$-$- XX:%d", ch2);
- *size = (offset2 - (*offset)) - ((strlen(buf2) + 4));
- }
- }
- lseek(fp, *offset, SEEK_SET);
- }
- return 0;
- }
-
- if (!strncmp(buf, "$-$-$-", 6)) {
- memset(buf2, 0, 7);
- loop = 0;
- while ((read(fp, &buf2[loop], 1) == 1) && (loop < 7)) {
- if ((buf2[loop] == 10) || (buf2[loop] == 13)) {
- buf2[loop] = 0;
- break;
- }
- loop++;
- }
- while (read(fp, &ch, 1) == 1) {
- if (ch == '*')
- break;
- }
-
- *offset = lseek(fp, 0, SEEK_CUR) - 1;
- *num2 = 0;
- for (loop = strlen(buf2) - 1; loop; loop--) {
- if (buf2[loop] == ':')
- break;
- }
- *num1 = atoi(&buf2[loop+1]);
- printf("Chapter marker: %s\n", buf2);
- if (size) {
- if (findbreak(fp, &offset2, &ch2, &vs2, &rm2, 0)) {
- *size = (short) (lseek(fp, 0, SEEK_END) - (*offset));
- }
- else {
- if (vs2) {
- *size = (offset2 - (*offset)) - 3;
- }
- else {
- sprintf(buf2, "$-$-$- XX:%d", ch2);
- *size = (offset2 - (*offset)) - ((strlen(buf2) + 4));
- }
- }
- lseek(fp, *offset, SEEK_SET);
- }
- return 0;
- }
-
-
- memmove(buf, &buf[1], 6);
- if (read(fp, &buf[6], 1) != 1)
- return 1;
- }
-}
-
-
-void openfiles(char *fname)
-{
- char buf[255];
-
- if ((fp = open(fname, O_RDONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", fname);
- exit(1);
- }
-
- sprintf(buf, "%s.vss", fname);
- if ((vfp = open(buf, O_CREAT|O_WRONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- sprintf(buf, "%s.cps", fname);
- if ((cfp = open(buf, O_CREAT|O_WRONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- sprintf(buf, "%s.bks", fname);
- if ((bfp = open(buf, O_CREAT|O_WRONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-}
-
-
-void checkparams(int argc, char **argv)
-{
- if (argc < 2) {
- fprintf(stderr, "usage: %s <file to process> [nt - for new testmt file]\n", argv[0]);
- exit(1);
- }
- if (argc == 3)
- key1 = key2 = key3 = "Matthew 1:1";
- else key1 = key2 = key3 = "Genesis 1:1";
-}
diff --git a/src/modules/comments/rawcom/rwpidx.cpp b/src/modules/comments/rawcom/rwpidx.cpp
deleted file mode 100644
index afcbd81..0000000
--- a/src/modules/comments/rawcom/rwpidx.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-/*****************************************************************************
- *
- * This code wreaks but works (at least for RWP). Good luck!
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#ifndef __GNUC__
-#include <io.h>
-#else
-#include <unistd.h>
-#endif
-
-#include <fcntl.h>
-#include <versekey.h>
-
-
-void writeidx(VerseKey &key1, VerseKey &key2, VerseKey &key3, long offset, short size);
-char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size);
-void openfiles(char *fname);
-void checkparams(int argc, char **argv);
-
-
-VerseKey key1, key2, key3;
-int fp, vfp, cfp, bfp;
-long chapoffset;
-short chapsize;
-char testmnt;
-
-
-main(int argc, char **argv)
-{
- long pos, offset;
- int num1 = 0, num2 = 0, rangemax, curbook = 0, curchap = 0, curverse = 0;
- char buf[127], startflag = 0;
- short size, tmp;
-
- checkparams(argc, argv);
-
- openfiles(argv[1]);
-
- testmnt = key1.Testament();
- pos = 0;
- write(bfp, &pos, 4); /* Book offset for testament intros */
- pos = 4;
- write(cfp, &pos, 4); /* Chapter offset for testament intro */
-
-
-/* Right now just zero out intros until parsing correctly */
- pos = 0;
- size = 0;
- write(vfp, &pos, 4); /* Module intro */
- write(vfp, &size, 2);
- write(vfp, &pos, 4); /* Testament intro */
- write(vfp, &size, 2);
-
- while(!findbreak(fp, &offset, &num1, &num2, &rangemax, &size)) {
- if (num2) {
- key2.Verse(1);
- key2.Chapter(num1);
- key2.Verse(num2);
- }
- else {
- key2.Verse(1);
- if (!startflag) {
- startflag = 1;
- }
- else {
- if (num1 <= key2.Chapter()) { // new book
- key2.Chapter(1);
- key2.Book(key2.Book()+1);
- }
- }
- key2.Chapter(num1);
- printf("Found Chapter Break: %d ('%s')\n", num1, (const char *)key2);
- chapoffset = offset;
- chapsize = size;
- continue;
- }
-
- key3 = key2;
- key3 += (rangemax - key3.Verse());
-
- printf("Found verse Break: ('%s')\n", (const char *)key2);
- writeidx(key1, key2, key3, offset, size);
- }
- close(vfp);
- close(cfp);
- close(bfp);
- close(fp);
-}
-
-
-/**************************************************************************
- * ENT: key1 - current location of index
- * key2 - minimum keyval for which this offset is valid
- * key3 - maximum keyval for which this offset is valid
- */
-
-void writeidx(VerseKey &key1, VerseKey &key2, VerseKey &key3, long offset, short size)
-{
- long pos;
- short tmp;
-
- for (; ((key1 <= key3) && (key1.Error() != KEYERR_OUTOFBOUNDS) && (key1.Testament() == testmnt)); key1+=1) {
- if (key1.Verse() == 1) { // new chapter
- if (key1.Chapter() == 1) { // new book
- pos = lseek(cfp, 0, SEEK_CUR);
- write(bfp, &pos, 4);
- pos = lseek(vfp, 0, SEEK_CUR); /* Book intro (cps) */
- write(cfp, &pos, 4);
- write(vfp, &chapoffset, 4); /* Book intro (vss) set to same as chap for now(it should be chap 1 which usually contains the book into anyway)*/
- write(vfp, &chapsize, 2);
- }
- pos = lseek(vfp, 0, SEEK_CUR);
- write(cfp, &pos, 4);
- write(vfp, &chapoffset, 4); /* Chapter intro */
- write(vfp, &chapsize, 2);
- }
- if (key1 >= key2) {
- write(vfp, &offset, 4);
- write(vfp, &size, 2);
- }
- else {
- pos = 0;
- tmp = 0;
- write(vfp, &pos, 4);
- write(vfp, &tmp, 2);
- }
- }
-}
-
-
-char startentry(char *buf)
-{
- char colon = 0;
-
- if (buf[0] != 10)
- return 0;
- if (buf[1] != 10)
- return 0;
- if (!isdigit(buf[2]))
- return 0;
- if (!isdigit(buf[3])) {
- if (buf[3]!= ':')
- return 0;
- else colon++;
- }
- if (!isdigit(buf[4])) {
- if (buf[4]!= ':')
- return 0;
- else colon++;
- }
- if (colon != 1)
- return 0;
- return 1;
-}
-
-
-char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size)
-{
- char buf[7];
- char buf2[20];
- char ch;
- char loop;
- long offset2;
- int ch2, vs2, rm2;
-
- memset(buf, ' ', 7);
-
- while (1) {
- if (startentry(buf)) {
- buf[0] = ' ';
- buf[1] = ' ';
- sscanf(buf, "%d:%d", num1, num2);
- *rangemax = *num2;
- *offset = lseek(fp, 0, SEEK_CUR) - 5;
- if (size) {
- if (findbreak(fp, &offset2, &ch2, &vs2, &rm2, 0)) {
- *size = (short) (lseek(fp, 0, SEEK_END) - (*offset));
- }
- else {
- if (vs2) {
- *size = (offset2 - (*offset)) - 2;
- }
- else {
- *size = (offset2 - (*offset)) - 6;
- }
- }
- lseek(fp, *offset, SEEK_SET);
- }
- return 0;
- }
-
- if (!strncmp(buf, "$-$-$-", 6)) {
- *offset = lseek(fp, 0, SEEK_CUR) - 1;
- *num2 = 0;
- (*num1)++;
- printf("Book marker: %s\n", buf2);
- if (size) {
- if (findbreak(fp, &offset2, &ch2, &vs2, &rm2, 0)) {
- *size = (short) (lseek(fp, 0, SEEK_END) - (*offset));
- }
- else {
- if (vs2) {
- *size = (offset2 - (*offset)) - 2;
- }
- else {
- *size = (offset2 - (*offset)) - 6;
- }
- }
- lseek(fp, *offset, SEEK_SET);
- }
- return 0;
- }
-
-
- memmove(buf, &buf[1], 6);
- if (read(fp, &buf[6], 1) != 1)
- return 1;
- }
-}
-
-
-void openfiles(char *fname)
-{
- char buf[255];
-
- if ((fp = open(fname, O_RDONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", fname);
- exit(1);
- }
-
- sprintf(buf, "%s.vss", fname);
- if ((vfp = open(buf, O_CREAT|O_WRONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- sprintf(buf, "%s.cps", fname);
- if ((cfp = open(buf, O_CREAT|O_WRONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- sprintf(buf, "%s.bks", fname);
- if ((bfp = open(buf, O_CREAT|O_WRONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-}
-
-
-void checkparams(int argc, char **argv)
-{
- if (argc < 2) {
- fprintf(stderr, "usage: %s <file to process> [nt - for new testmt file]\n", argv[0]);
- exit(1);
- }
- if (argc == 3)
- key1 = key2 = key3 = "Matthew 1:1";
- else key1 = key2 = key3 = "Genesis 1:1";
-}
diff --git a/src/modules/comments/rawfiles/Makefile b/src/modules/comments/rawfiles/Makefile
deleted file mode 100644
index 35d6648..0000000
--- a/src/modules/comments/rawfiles/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-
-root := ../../../..
-
-all:
- make -C ${root}
diff --git a/src/modules/comments/rawfiles/Makefile.am b/src/modules/comments/rawfiles/Makefile.am
deleted file mode 100644
index 53aadbe..0000000
--- a/src/modules/comments/rawfiles/Makefile.am
+++ /dev/null
@@ -1,3 +0,0 @@
-rawfilesdir = $(top_srcdir)/src/modules/comments/rawfiles
-
-libsword_la_SOURCES += $(rawfilesdir)/rawfiles.cpp
diff --git a/src/modules/comments/rawfiles/rawfiles.cpp b/src/modules/comments/rawfiles/rawfiles.cpp
deleted file mode 100644
index 9ffa00f..0000000
--- a/src/modules/comments/rawfiles/rawfiles.cpp
+++ /dev/null
@@ -1,269 +0,0 @@
-/******************************************************************************
- * rawfiles.cpp - code for class 'RawFiles'- a module that produces HTML HREFs
- * pointing to actual text desired. Uses standard
- * 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 <rawverse.h>
-#include <rawfiles.h>
-#include <filemgr.h>
-
-#ifndef O_BINARY // O_BINARY is needed in Borland C++ 4.53
-#define O_BINARY 0 // If it hasn't been defined than we probably
-#endif // don't need it.
-
-SWORD_NAMESPACE_START
-
- /******************************************************************************
- * RawFiles Constructor - Initializes data for instance of RawFiles
- *
- * ENT: iname - Internal name for module
- * idesc - Name to display to user for module
- * idisp - Display object to use for displaying
- */
-
-RawFiles::RawFiles(const char *ipath, const char *iname, const char *idesc, SWDisplay *idisp, SWTextEncoding enc, SWTextDirection dir, SWTextMarkup mark, const char* ilang) : RawVerse(ipath, O_RDWR), SWCom(iname, idesc, idisp, enc, dir, mark, ilang)
-{
-}
-
-
-/******************************************************************************
- * RawFiles Destructor - Cleans up instance of RawFiles
- */
-
-RawFiles::~RawFiles()
-{
-}
-
-
-/******************************************************************************
- * RawFiles::getRawEntry - Returns the correct verse when char * cast
- * is requested
- *
- * RET: string buffer with verse
- */
-
-SWBuf &RawFiles::getRawEntryBuf() {
- FileDesc *datafile;
- long start = 0;
- unsigned short size = 0;
- char *tmpbuf;
- VerseKey *key = 0;
-
-#ifndef _WIN32_WCE
- try {
-#endif
- key = SWDYNAMIC_CAST(VerseKey, this->key);
-#ifndef _WIN32_WCE
- }
- catch ( ... ) {}
-#endif
- if (!key)
- key = new VerseKey(this->key);
-
- findOffset(key->Testament(), key->Index(), &start, &size);
-
- entryBuf = "";
- if (size) {
- SWBuf tmpbuf = path;
- tmpbuf += '/';
- readText(key->Testament(), start, size, entryBuf);
- tmpbuf += entryBuf;
- entryBuf = "";
- datafile = FileMgr::systemFileMgr.open(tmpbuf.c_str(), O_RDONLY|O_BINARY);
- if (datafile->getFd() > 0) {
- size = lseek(datafile->getFd(), 0, SEEK_END);
- char *tmpBuf = new char [ size + 1 ];
- memset(tmpBuf, 0, size + 1);
- lseek(datafile->getFd(), 0, SEEK_SET);
- read(datafile->getFd(), tmpBuf, size);
- entryBuf = tmpBuf;
- delete [] tmpBuf;
-// preptext(entrybuf);
- }
- FileMgr::systemFileMgr.close(datafile);
- }
-
- if (key != this->key)
- delete key;
-
- return entryBuf;
-}
-
-
-/******************************************************************************
- * RawFiles::setEntry(char *)- Update the modules current key entry with
- * provided text
- */
-
-void RawFiles::setEntry(const char *inbuf, long len) {
- FileDesc *datafile;
- long start;
- unsigned short size;
- VerseKey *key = 0;
-
- len = (len<0)?strlen(inbuf):len;
- try {
- key = SWDYNAMIC_CAST(VerseKey, this->key);
- }
- catch ( ... ) {}
- if (!key)
- key = new VerseKey(this->key);
-
- findOffset(key->Testament(), key->Index(), &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->Index(), tmpbuf);
- entryBuf += tmpbuf;
- }
- datafile = FileMgr::systemFileMgr.open(entryBuf, O_CREAT|O_WRONLY|O_BINARY|O_TRUNC);
- if (datafile->getFd() > 0) {
- write(datafile->getFd(), inbuf, len);
- }
- FileMgr::systemFileMgr.close(datafile);
-
- if (key != this->key)
- delete key;
-}
-
-
-/******************************************************************************
- * RawFiles::linkEntry(SWKey *)- Link the modules current key entry with
- * another module entry
- *
- * RET: *this
- */
-
-void RawFiles::linkEntry(const SWKey *inkey) {
-
- long start;
- unsigned short size;
- char *tmpbuf;
- const VerseKey *key = 0;
-
- try {
- key = SWDYNAMIC_CAST(VerseKey, inkey);
- }
- catch ( ... ) {}
- if (!key)
- key = new VerseKey(this->key);
-
- findOffset(key->Testament(), key->Index(), &start, &size);
-
- if (size) {
- SWBuf tmpbuf;
- readText(key->Testament(), start, size + 2, tmpbuf);
-
- if (key != inkey)
- delete key;
- key = 0;
-
- try {
- key = SWDYNAMIC_CAST(VerseKey, inkey);
- }
- catch ( ... ) {}
- if (!key)
- key = new VerseKey(this->key);
- doSetText(key->Testament(), key->Index(), tmpbuf.c_str());
- }
-
- if (key != inkey)
- delete key;
-}
-
-
-/******************************************************************************
- * RawFiles::deleteEntry - deletes this entry
- *
- * RET: *this
- */
-
-void RawFiles::deleteEntry() {
-
- VerseKey *key = 0;
-
-#ifndef _WIN32_WCE
- try {
-#endif
- key = SWDYNAMIC_CAST(VerseKey, this->key);
-#ifndef _WIN32_WCE
- }
- catch ( ... ) {}
-#endif
- if (!key)
- key = new VerseKey(this->key);
-
- doSetText(key->Testament(), key->Index(), "");
-
- if (key != this->key)
- delete key;
-}
-
-
-/******************************************************************************
- * RawFiles::getNextfilename - generates a valid filename in which to store
- * an entry
- *
- * RET: filename
- */
-
-char *RawFiles::getNextFilename() {
- static char incfile[255];
- long number;
- FileDesc *datafile;
-
- sprintf(incfile, "%s/incfile", path);
- datafile = FileMgr::systemFileMgr.open(incfile, O_RDONLY|O_BINARY);
- if (read(datafile->getFd(), &number, 4) != 4)
- number = 0;
- number++;
- FileMgr::systemFileMgr.close(datafile);
-
- datafile = FileMgr::systemFileMgr.open(incfile, O_CREAT|O_WRONLY|O_BINARY|O_TRUNC);
- write(datafile->getFd(), &number, 4);
- FileMgr::systemFileMgr.close(datafile);
- sprintf(incfile, "%.7ld", number-1);
- return incfile;
-}
-
-
-char RawFiles::createModule (const char *path) {
- char *incfile = new char [ strlen (path) + 16 ];
- static long zero = 0;
- FileDesc *datafile;
-
- sprintf(incfile, "%s/incfile", path);
- datafile = FileMgr::systemFileMgr.open(incfile, O_CREAT|O_WRONLY|O_BINARY|O_TRUNC);
- delete [] incfile;
- write(datafile->getFd(), &zero, 4);
- FileMgr::systemFileMgr.close(datafile);
-
- return RawVerse::createModule (path);
-}
-
-
-
-SWORD_NAMESPACE_END
diff --git a/src/modules/comments/rawfiles/rawfilesgen.cpp b/src/modules/comments/rawfiles/rawfilesgen.cpp
deleted file mode 100644
index f60c9e2..0000000
--- a/src/modules/comments/rawfiles/rawfilesgen.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-/*****************************************************************************
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#ifndef __GNUC__
-#include <io.h>
-#else
-#include <unistd.h>
-#endif
-
-#include <fcntl.h>
-#include <versekey.h>
-
-#ifndef O_BINARY
- #define O_BINARY 0
-#endif
-
-void writeidx(VerseKey &key1, VerseKey &key2, VerseKey &key3, long offset, short size);
-char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size);
-void openfiles();
-void checkparams(int argc, char **argv);
-void charsetconvert(char *data);
-
-
-VerseKey key1, key2, key3;
-int fp, vfp, cfp, bfp;
-long chapoffset;
-short chapsize;
-char testmnt;
-char startflag = 0;
-
-
-main(int argc, char **argv)
-{
- long pos, offset;
- int num1, num2, rangemax, curbook = 0, curchap = 0, curverse = 0;
- char buf[127];
- short size, tmp;
- extern struct zonline online;
-
- checkparams(argc, argv);
-
- key1 = key2 = key3 = "Genesis 1:1";
-
- openfiles();
-
- num1 = key1.Chapter();
- num2 = key1.Verse();
-
- while(!findbreak(fp, &offset, &num1, &num2, &rangemax, &size)) {
- if (!startflag) {
- startflag = 1;
- }
- else {
- if (num2 < key2.Verse()) { // new chapter
- if (num1 <= key2.Chapter()) { // new book
- key2.Verse(1);
- key2.Chapter(1);
- key2.Book(key2.Book()+1);
- }
- printf("Created Empty Entry: %d ('%s')\n", num1, (const char *)key2);
- chapoffset = offset;
- chapsize = size;
-// continue;
- }
- }
- key2.Verse(1);
- key2.Chapter(num1);
- key2.Verse(num2);
-
- key3 = key2;
-// key3 += (rangemax - key3.Verse());
-
- writeidx(key1, key2, key3, offset, size);
- }
- close(vfp);
- close(cfp);
- close(bfp);
- close(fp);
-}
-
-
-/**************************************************************************
- * ENT: key1 - current location of index
- * key2 - minimum keyval for which this offset is valid
- * key3 - maximum keyval for which this offset is valid
- */
-
-void writeidx(VerseKey &key1, VerseKey &key2, VerseKey &key3, long offset, short size)
-{
- long pos;
- short tmp;
-
- if (key1.Verse() == 1) { // new chapter
- if (key1.Chapter() == 1) { // new book
- pos = lseek(cfp, 0, SEEK_CUR);
- write(bfp, &pos, 4);
- pos = lseek(vfp, 0, SEEK_CUR); /* Book intro (cps) */
- write(cfp, &pos, 4);
- write(vfp, &chapoffset, 4); /* Book intro (vss) set to same as chap for now(it should be chap 1 which usually contains the book into anyway)*/
- write(vfp, &chapsize, 2);
- }
- pos = lseek(vfp, 0, SEEK_CUR);
- write(cfp, &pos, 4);
- write(vfp, &chapoffset, 4); /* Chapter intro */
- write(vfp, &chapsize, 2);
- }
- if (key1 >= key2) {
- write(vfp, &offset, 4);
- size = 0;
- write(vfp, &size, 2);
- }
- else {
- pos = 0;
- tmp = 0;
- write(vfp, &pos, 4);
- write(vfp, &tmp, 2);
- }
- key1++;
-}
-
-
-static VerseKey inckey = "Genesis 1:1";
-
-char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size)
-{
- char buf[7];
- char buf2[20];
- char ch;
- char loop;
- long offset2;
- int ch2, vs2, rm2;
- bool flag;
- long chapstart = 0;
- static int olbvnum = 0;
- char data[16];
-
- memset (data,0,16);
-
- if (++olbvnum <= 31102) {
-
- if (olbvnum == 23146) { // "Matthew 1:1"
- close(vfp);
- close(cfp);
- close(bfp);
- close(fp);
- key1 = key2 = key3 = inckey = "Matthew 1:1";
- openfiles();
- startflag = 0;
- }
-
-
- *offset = lseek(fp, 0, SEEK_CUR);
-
- if ((olbvnum!=1) && (olbvnum != 23146))
- inckey++;
-
- *num1 = inckey.Chapter();
- *num2 = inckey.Verse();
-
-
- write(fp, data, 16);
-
- *size = lseek(fp, 0, SEEK_CUR) - *offset;
- return 0;
- }
- return 1;
-}
-
-
-void openfiles()
-{
- char buf[255];
- char fname[5];
- long pos;
- short size;
-
- testmnt = key1.Testament();
-
- strcpy(fname, (testmnt==2) ? "nt" : "ot");
- unlink(fname);
- if ((fp = open(fname, O_CREAT|O_RDWR|O_BINARY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", fname);
- exit(1);
- }
-
- sprintf(buf, "%s.vss", fname);
- unlink(buf);
- if ((vfp = open(buf, O_CREAT|O_WRONLY|O_BINARY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- sprintf(buf, "%s.cps", fname);
- unlink(buf);
- if ((cfp = open(buf, O_CREAT|O_WRONLY|O_BINARY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- sprintf(buf, "%s.bks", fname);
- unlink(buf);
- if ((bfp = open(buf, O_CREAT|O_WRONLY|O_BINARY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- pos = 0;
- write(bfp, &pos, 4); /* Book offset for testament intros */
- pos = 4;
- write(cfp, &pos, 4); /* Chapter offset for testament intro */
-
-
-/* Right now just zero out intros until parsing correctly */
- pos = 0;
- size = 0;
- write(vfp, &pos, 4); /* Module intro */
- write(vfp, &size, 2);
- write(vfp, &pos, 4); /* Testament intro */
- write(vfp, &size, 2);
-
-}
-
-
-void checkparams(int argc, char **argv)
-{
- if (argc !=1) {
- fprintf(stderr, "usage: %s\n", argv[0]);
- exit(1);
- }
-}
diff --git a/src/modules/comments/swcom.cpp b/src/modules/comments/swcom.cpp
deleted file mode 100644
index 3f2b940..0000000
--- a/src/modules/comments/swcom.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/******************************************************************************
- * swcom.cpp - code for base class 'SWCom'- The basis for all commentary
- * modules
- */
-
-#include <swcom.h>
-
-SWORD_NAMESPACE_START
-
-/******************************************************************************
- * SWCom Constructor - Initializes data for instance of SWCom
- *
- * ENT: imodname - Internal name for module
- * imoddesc - Name to display to user for module
- * idisp - Display object to use for displaying
- */
-
-SWCom::SWCom(const char *imodname, const char *imoddesc, SWDisplay *idisp, SWTextEncoding enc, SWTextDirection dir, SWTextMarkup mark, const char* ilang): SWModule(imodname, imoddesc, idisp, "Commentaries", enc, dir, mark, ilang)
-{
- delete key;
- key = CreateKey();
-}
-
-
-/******************************************************************************
- * SWCom Destructor - Cleans up instance of SWCom
- */
-
-SWCom::~SWCom()
-{
-}
-
-
-long SWCom::Index() const {
- VerseKey *key = 0;
- try {
- key = SWDYNAMIC_CAST(VerseKey, this->key);
- }
- catch ( ... ) {}
- if (!key)
- key = new VerseKey(this->key);
-
- entryIndex = key->NewIndex();
-
- if (key != this->key)
- delete key;
-
- return entryIndex;
-}
-
-long SWCom::Index(long iindex) {
- VerseKey *key = 0;
- try {
- key = SWDYNAMIC_CAST(VerseKey, this->key);
- }
- catch ( ... ) {}
- if (!key)
- key = new VerseKey(this->key);
-
- key->Testament(1);
- key->Index(iindex);
-
- if (key != this->key) {
- this->key->copyFrom(*key);
- delete key;
- }
-
- return Index();
-}
-
-SWORD_NAMESPACE_END
diff --git a/src/modules/comments/zcom/Makefile b/src/modules/comments/zcom/Makefile
deleted file mode 100644
index 35d6648..0000000
--- a/src/modules/comments/zcom/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-
-root := ../../../..
-
-all:
- make -C ${root}
diff --git a/src/modules/comments/zcom/Makefile.am b/src/modules/comments/zcom/Makefile.am
deleted file mode 100644
index ad1ef6a..0000000
--- a/src/modules/comments/zcom/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-zcomdir = $(top_srcdir)/src/modules/comments/zcom
-
-libsword_la_SOURCES += $(zcomdir)/zcom.cpp
-
diff --git a/src/modules/comments/zcom/makeidx.c b/src/modules/comments/zcom/makeidx.c
deleted file mode 100644
index 311103e..0000000
--- a/src/modules/comments/zcom/makeidx.c
+++ /dev/null
@@ -1,146 +0,0 @@
-#include <stdio.h>
-#include <fcntl.h>
-
-
-char findbreak(int fp, int *offset, int *num1, int *num2, short *size);
-
-
-main(int argc, char **argv)
-{
- int fp, vfp, cfp, bfp;
- long pos;
- short size, tmp;
- int num1, num2, offset, curbook = 0, curchap = 0, curverse = 0;
- char buf[127];
-
- if (argc != 2) {
- fprintf(stderr, "usage: %s <file to process>\n", argv[0]);
- exit(1);
- }
-
- if ((fp = open(argv[1], O_RDONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", argv[1]);
- exit(1);
- }
-
- sprintf(buf, "%s.vss", argv[1]);
- if ((vfp = open(buf, O_CREAT|O_WRONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- sprintf(buf, "%s.cps", argv[1]);
- if ((cfp = open(buf, O_CREAT|O_WRONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- sprintf(buf, "%s.bks", argv[1]);
- if ((bfp = open(buf, O_CREAT|O_WRONLY)) == -1) {
- fprintf(stderr, "Couldn't open file: %s\n", buf);
- exit(1);
- }
-
- pos = 0;
- write(bfp, &pos, 4); /* Book offset for testament intros */
- pos = 4;
- write(cfp, &pos, 4); /* Chapter offset for testament intro */
-
-
-/* Right now just zero out intros until parsing correctly */
- pos = 0;
- size = 0;
- write(vfp, &pos, 4); /* Module intro */
- write(vfp, &size, 2);
- write(vfp, &pos, 4); /* Testament intro */
- write(vfp, &size, 2);
-
- while (!findbreak(fp, &offset, &num1, &num2, &size)) {
-
- if (num2 == 1) { /* if we're at a new chapter */
- if (num1 == 1) { /* if we're at a new book */
- pos = lseek(cfp, 0, SEEK_CUR);
- write(bfp, &pos, 4);
- pos = lseek(vfp, 0, SEEK_CUR); /* Book intro (cps) */
- write(cfp, &pos, 4);
- pos = 0;
- tmp = 0;
- write(vfp, &pos, 4); /* Book intro (vss) */
- write(vfp, &tmp, 2);
- curbook++;
- curchap = 0;
- }
- pos = lseek(vfp, 0, SEEK_CUR);
- write(cfp, &pos, 4);
- curverse = 1;
- pos = 0;
- tmp = 0;
- write(vfp, &pos, 4); /* Chapter intro */
- write(vfp, &tmp, 2);
- curchap++;
- }
- else curverse++;
-
- printf("%2d:%3d:%3d found at offset: %7d\n", curbook, num1, num2, offset);
-
- if (num1 != curchap) {
- fprintf(stderr, "Error: Found chaptures out of sequence\n", buf);
- break;
- }
- if (num2 != curverse) {
- fprintf(stderr, "Error: Found verses out of sequence\n", buf);
- break;
- }
- write(vfp, &offset, 4);
- write(vfp, &size, 2);
- }
-
- close(vfp);
- close(cfp);
- close(bfp);
- close(fp);
-}
-
-
-char findbreak(int fp, int *offset, int *num1, int *num2, short *size)
-{
- char buf[7];
- char buf2[7];
- char loop;
- int offset2, ch2, vs2;
-
- memset(buf, ' ', 7);
-
- while (1) {
- if (buf[3] == ':') {
- memcpy(buf2, buf, 7);
- for (loop = 0; loop < 7; loop++) {
- if (!isdigit(buf2[loop]))
- buf2[loop] = ' ';
- }
- buf2[3] = 0;
- *num1 = atoi(buf2);
- *num2 = atoi(&buf2[4]);
- if (*num1 && *num2) {
- *offset = lseek(fp, 0, SEEK_CUR);
- sprintf(buf2, "%d", *num2);
- *offset -= 2 - strlen(buf2);
- if (size) {
- if (findbreak(fp, &offset2, &ch2, &vs2, 0)) {
- *size = (short) (lseek(fp, 0, SEEK_END) - (*offset));
- }
- else {
- sprintf(buf2, "%d:%d", ch2, vs2);
- *size = (offset2 - (*offset)) - (strlen(buf2) + 2);
- }
- lseek(fp, *offset, SEEK_SET);
- }
- return 0;
- }
- }
- memmove(buf, &buf[1], 6);
- if (read(fp, &buf[6], 1) != 1)
- return 1;
- }
-}
-
diff --git a/src/modules/comments/zcom/rawtxt2z.cpp b/src/modules/comments/zcom/rawtxt2z.cpp
deleted file mode 100644
index f8c18d0..0000000
--- a/src/modules/comments/zcom/rawtxt2z.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-#include <ctype.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <stdlib.h>
-
-#ifndef __GNUC__
-#include <io.h>
-#else
-#include <unistd.h>
-#endif
-
-#include <swcomprs.h>
-
-
-main(int argc, char **argv)
-{
- SWCompress *zobj;
- int ifd, ofd, ixfd, oxfd;
- long offset, loffset, lzoffset;
- short size, lsize, lzsize;
- char *tmpbuf;
-
- if (argc != 2) {
- fprintf(stderr, "usage: %s <datafilename>\n", argv[0]);
- exit(1);
- }
-
- zobj = new SWCompress();
-
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
- tmpbuf = new char [ strlen(argv[1]) + 9 ];
- ifd = open(argv[1], O_RDONLY|O_BINARY);
- sprintf(tmpbuf, "%s.vss", argv[1]);
- ixfd = open(tmpbuf, O_RDONLY|O_BINARY);
- sprintf(tmpbuf, "%s.zzz", argv[1]);
- ofd = open(tmpbuf, O_WRONLY|O_BINARY|O_CREAT);
- sprintf(tmpbuf, "%s.zzz.vss", argv[1]);
- oxfd = open(tmpbuf, O_WRONLY|O_BINARY|O_CREAT);
-
- delete [] tmpbuf;
-
- printf("\n");
-
- while (1) {
- if (read(ixfd, &offset, 4) != 4)
- break;
- if (read(ixfd, &size, 2) != 2)
- break;
-
- if ((offset == loffset) && (size == lsize)) {
- printf("using previous offset,size\n", size);
- write(oxfd, &lzoffset, 4);
- write(oxfd, &lzsize, 2);
- }
- else {
- printf("%d -> ", size);
- lsize = size;
- loffset = offset;
-
- if (size) {
- tmpbuf = (char *) calloc(size + 1, 1);
- lseek(ifd, offset, SEEK_SET);
- read(ifd, tmpbuf, size);
- zobj->Buf(tmpbuf);
- zobj->zBuf(&size);
- free(tmpbuf);
- }
- offset = lseek(ofd, 0, SEEK_END);
- write(oxfd, &offset, 4);
- if (size)
- write(ofd, zobj->zBuf(&size), size);
- lzoffset = offset;
- write(oxfd, &size, 2);
- lzsize = size;
- printf("%d \n", size);
- }
- }
- delete zobj;
-}
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