diff options
Diffstat (limited to 'src/modules/texts/rawtext/rtfidx.cpp')
-rw-r--r-- | src/modules/texts/rawtext/rtfidx.cpp | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/src/modules/texts/rawtext/rtfidx.cpp b/src/modules/texts/rawtext/rtfidx.cpp deleted file mode 100644 index 9fdb305..0000000 --- a/src/modules/texts/rawtext/rtfidx.cpp +++ /dev/null @@ -1,164 +0,0 @@ -#include <stdio.h> -#include <fcntl.h> -#include <versekey.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]; - VerseKey mykey; - - if ((argc < 2) || (argc > 3)) { - fprintf(stderr, "usage: %s <file to process> [nt]\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); - - mykey = (argc == 3) ? "Matthew 1:1" : "Genesis 1:1"; - - while (!findbreak(fp, &offset, &num1, &num2, &size)) { - num1 = mykey.Chapter(); - num2 = mykey.Verse(); - 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"); - break; - } - if (num2 != curverse) { - fprintf(stderr, "Error: Found verses out of sequence\n"); - break; - } - write(vfp, &offset, 4); - write(vfp, &size, 2); - mykey++; - } - - close(vfp); - close(cfp); - close(bfp); - close(fp); -} - - -char findbreak(int fp, int *offset, int *num1, int *num2, short *size) -{ - char buf[17]; - char buf2[7]; - char loop; - char offadj, inquotes, sizeadj; - int offset2, ch2, vs2; - - memset(buf, ' ', 17); - - while (1) { - offadj = -10; - inquotes = 0; - sizeadj = 0; - if (!memcmp(&buf[1], "\\f0\\fs16\\cf2\\up6", 15)) { - offadj = 0; - inquotes = 1; - sizeadj = (*buf == 10) ? -19:-17; - } - if (!memcmp(buf, "\\fi200\\widctlpar", 16)) { - offadj = -1; -// inquotes = 1; - sizeadj = -18; - } - if (offadj > -10) { - *offset = lseek(fp, 0, SEEK_CUR) + offadj; - if (size) { - (*offset)++; - while (inquotes) { - while (read(fp, buf2, 1) == 1) { - if (*buf2 == '}') - break; - (*offset)++; - } - inquotes--; - } - 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)); - } - lseek(fp, *offset+17, SEEK_SET); - } - else (*offset) += sizeadj; - return 0; - } - memmove(buf, &buf[1], 16); - if (read(fp, &buf[16], 1) != 1) - return 1; - } -} - |