diff options
author | Roberto C. Sanchez <roberto@connexer.com> | 2014-03-29 10:53:33 -0400 |
---|---|---|
committer | Roberto C. Sanchez <roberto@connexer.com> | 2014-03-29 10:53:33 -0400 |
commit | 8d3fc864d094eeadc721f8e93436b37a5fab173e (patch) | |
tree | 05e201c67dca55b4ccdf90ad479a25d95e3b1e63 /utilities/mod2vpl.cpp |
Imported Upstream version 1.5.3
Diffstat (limited to 'utilities/mod2vpl.cpp')
-rw-r--r-- | utilities/mod2vpl.cpp | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/utilities/mod2vpl.cpp b/utilities/mod2vpl.cpp new file mode 100644 index 0000000..fb0804a --- /dev/null +++ b/utilities/mod2vpl.cpp @@ -0,0 +1,74 @@ +#include <swmgr.h> +#include <versekey.h> +#include <iostream.h> + +void cleanbuf(char *buf) { + char *from = buf; + char *to = buf; + + while (*from) { + if ((*from != 10) && (*from != 13)) { + *to++ = *from++; + } + else { + from++; + } + } + *to = 0; +} + +int main(int argc, char **argv) { + char *buffer = 0; + + if (argc < 2) { + fprintf(stderr, "usage: %s <Mod Name> [0|1 - prepend verse reference to each line]\n", argv[0]); + exit(-1); + } + + SWMgr mgr; + + ModMap::iterator it = mgr.Modules.find(argv[1]); + if (it == mgr.Modules.end()) { + fprintf(stderr, "error: %s: couldn't find module: %s \n", argv[0], argv[1]); + exit(-2); + } + + bool vref = false; + if (argc > 2) + vref = (argv[2][0] == '0') ? false : true; + + + SWModule *mod = it->second; + + SWKey *key = (*mod); + VerseKey *vkey = 0; + try { + vkey = dynamic_cast<VerseKey *>(key); + } + catch (...) {} + + if (!vkey) { + fprintf(stderr, "error: %s: %s module is not keyed to verses \n", argv[0], argv[1]); + exit(-3); + } + + vkey->Headings(1); // turn on mod/testmnt/book/chap headings + + (*mod) = TOP; + + while (!mod->Error()) { + buffer = new char [ strlen ((const char *)(*mod)) + 1 ]; + strcpy(buffer, (const char *)(*mod)); + cleanbuf(buffer); + if (vref) { + if ((strlen(buffer) > 0) && (vref)) { + cout << (const char *)(*vkey) << " "; + cout << buffer << "\n"; + } + } + else cout << buffer << "\n"; + + delete [] buffer; + (*mod)++; + } +} |