From 148bd343f3e7e32d141f66b5b5c9b98b2975b0b3 Mon Sep 17 00:00:00 2001 From: "Roberto C. Sanchez" Date: Sat, 29 Mar 2014 10:53:52 -0400 Subject: Imported Upstream version 1.5.8 --- utilities/imp2gbs.cpp | 168 -------------------------------------------------- 1 file changed, 168 deletions(-) delete mode 100644 utilities/imp2gbs.cpp (limited to 'utilities/imp2gbs.cpp') diff --git a/utilities/imp2gbs.cpp b/utilities/imp2gbs.cpp deleted file mode 100644 index b693e0f..0000000 --- a/utilities/imp2gbs.cpp +++ /dev/null @@ -1,168 +0,0 @@ -#include -#include -#include -#include -#include - -#ifndef __GNUC__ -#include -#else -#include -#endif - -#include -#include -#include -#include - -#ifndef O_BINARY -#define O_BINARY 0 -#endif - -#ifndef NO_SWORD_NAMESPACE -using sword::TreeKeyIdx; -using sword::RawGenBook; -using sword::SWKey; -#endif - -void printTree(TreeKeyIdx treeKey, TreeKeyIdx *target = 0, int level = 1) { - if (!target) - target = &treeKey; - - unsigned long currentOffset = target->getOffset(); - std::cout << ((currentOffset == treeKey.getOffset()) ? "==>" : ""); - for (int i = 0; i < level; i++) std::cout << "\t"; - std::cout << treeKey.getLocalName() << "/\n"; - if (treeKey.firstChild()) { - printTree(treeKey, target, level+1); - treeKey.parent(); - } - if (treeKey.nextSibling()) - printTree(treeKey, target, level); -} - -void setkey (TreeKeyIdx * treeKey, char* keybuffer) { - char* tok = strtok(keybuffer, "/"); - while (tok) { - bool foundkey = false; - if (treeKey->hasChildren()) { - treeKey->firstChild(); - if (!strcmp(treeKey->getLocalName(), tok)) { - foundkey = true; - } else { - while (treeKey->nextSibling()) { - if (treeKey->getLocalName()) { - if (!strcmp(treeKey->getLocalName(), tok)) { - foundkey = true; - } - } - } - } - if (!foundkey) { - treeKey->append(); - treeKey->setLocalName(tok); - treeKey->save(); - } - } - else { - treeKey->appendChild(); - treeKey->setLocalName(tok); - treeKey->save(); - } - - //DEBUG std::cout << treeKey->getLocalName() << " : " << tok << std::endl; - - tok = strtok(NULL, "/"); - - } -} - -int readline(FILE* infile, char* linebuffer) { - signed char c; - char* lbPtr = linebuffer; - while ((c = fgetc(infile)) != EOF) { - *lbPtr++ = c; - if (c == 10) { - *lbPtr = 0; - return (strlen(linebuffer)); - } - } - return 0; -} - -int main(int argc, char **argv) { - - const char * helptext ="imp2gbs 1.0 General Book module creation tool for the SWORD Project\n usage:\n %s [modname]\n"; - - signed long i = 0; - char* keybuffer = new char[2048]; - char* entbuffer = new char[1048576]; - char* linebuffer = new char[1048576]; - char modname[16]; - - if (argc > 2) { - strcpy (modname, argv[2]); - } - else if (argc > 1) { - for (i = 0; (i < 16) && (argv[1][i]) && (argv[1][i] != '.'); i++) { - modname[i] = argv[1][i]; - } - modname[i] = 0; - } - else { - fprintf(stderr, helptext, argv[0]); - exit(-1); - } - - FILE *infile; - infile = fopen(argv[1], "r"); - - TreeKeyIdx * treeKey; - RawGenBook *book; - - // Do some initialization stuff - TreeKeyIdx::create(modname); - treeKey = new TreeKeyIdx(modname); - RawGenBook::createModule(modname); - delete treeKey; - book = new RawGenBook(modname); - //DEBUG TreeKeyIdx root = *((TreeKeyIdx *)((SWKey *)(*book))); - treeKey = ((TreeKeyIdx *)((SWKey *)(*book))); - - while (readline(infile, linebuffer)) { - if (!strncmp(linebuffer, "$$$", 3)) { - if (strlen(keybuffer) && strlen(entbuffer)) { - std::cout << keybuffer << std::endl; - treeKey->root(); - setkey(treeKey, keybuffer); - book->setEntry(entbuffer, strlen(entbuffer)); - } - linebuffer[strlen(linebuffer) - 1] = 0; - strcpy (keybuffer, linebuffer + 3); - *entbuffer = 0; - } - else { - strcat (entbuffer, linebuffer); - } - } - - //handle final entry - if (strlen(keybuffer) && strlen(entbuffer)) { - std::cout << keybuffer << std::endl; - treeKey->root(); - setkey(treeKey, keybuffer); - book->setEntry(entbuffer, strlen(entbuffer)); - } - - //DEBUG printTree(root, treeKey); - - delete book; - delete [] keybuffer; - delete [] linebuffer; - delete [] entbuffer; - - return 0; -} - - - -- cgit v1.2.3