aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordanglassey <danglassey>2002-09-09 13:01:42 +0000
committerdanglassey <danglassey>2002-09-09 13:01:42 +0000
commit5411e171bb4e231317dc8181d8a5db1c92d7a38f (patch)
tree231be75a7ceb794e3951e8783293133544c782f6
parenta88d2ae0574ef1422da03fe36a0d339a2af8cd88 (diff)
downloadsword-sf-cvs-5411e171bb4e231317dc8181d8a5db1c92d7a38f.tar.gz
sync with crosswire 20020909-1300
-rw-r--r--src/modules/filters/gbfosis.cpp20
-rw-r--r--src/modules/filters/thmlosis.cpp22
-rw-r--r--utilities/mod2osis.cpp88
3 files changed, 77 insertions, 53 deletions
diff --git a/src/modules/filters/gbfosis.cpp b/src/modules/filters/gbfosis.cpp
index 43161d4..ec20675 100644
--- a/src/modules/filters/gbfosis.cpp
+++ b/src/modules/filters/gbfosis.cpp
@@ -228,11 +228,11 @@ char GBFOSIS::ProcessText(char *text, int maxlen, const SWKey *key, const SWModu
if (vkey) {
char ref[254];
if (vkey->Verse())
- sprintf(ref, "<verseStart ref=\"%s\" />", vkey->getOSISRef());
+ sprintf(ref, "\t\t<verse osisID=\"%s\">", vkey->getOSISRef());
else if (vkey->Chapter())
- sprintf(ref, "<chapterStart ref=\"%s\" />", vkey->getOSISRef());
+ sprintf(ref, "\t<div type=\"chapter\" osisID=\"%s\">", vkey->getOSISRef());
else if (vkey->Book())
- sprintf(ref, "<bookStart ref=\"%s\" />", vkey->getOSISRef());
+ sprintf(ref, "\t<div type=\"book\" osisID=\"%s\">", vkey->getOSISRef());
else *ref = 0;
if (*ref) {
memmove(text+strlen(ref), text, maxlen-strlen(ref)-1);
@@ -243,27 +243,27 @@ char GBFOSIS::ProcessText(char *text, int maxlen, const SWKey *key, const SWModu
tmp = *vkey;
tmp.AutoNormalize(0);
tmp.Headings(1);
- sprintf(ref, "<verseEnd ref=\"%s\" />", vkey->getOSISRef());
+ sprintf(ref, "</verse>");
pushString(&to, ref);
tmp = MAXVERSE;
if (*vkey == tmp) {
tmp.Verse(0);
- sprintf(ref, "<chapterEnd ref=\"%s\" />", tmp.getOSISRef());
+ sprintf(ref, "\t</div>");
pushString(&to, ref);
tmp = MAXCHAPTER;
tmp = MAXVERSE;
if (*vkey == tmp) {
tmp.Chapter(0);
tmp.Verse(0);
- sprintf(ref, "<bookEnd ref=\"%s\" />", tmp.getOSISRef());
+ sprintf(ref, "\t</div>");
pushString(&to, ref);
}
}
}
else if (vkey->Chapter())
- sprintf(ref, "<chapterStart ref=\"%s\" />", vkey->getOSISRef());
- else sprintf(ref, "<bookStart ref=\"%s\" />", vkey->getOSISRef());
+ sprintf(ref, "\t<div type=\"chapter\" osisID=\"%s\">", vkey->getOSISRef());
+ else sprintf(ref, "\t<div type=\"book\" osisID=\"%s\">", vkey->getOSISRef());
}
}
*to++ = 0;
@@ -299,13 +299,13 @@ const char *GBFOSIS::convertToOSIS(const char *inRef, const SWKey *key) {
memmove(frag, startFrag, ((const char *)element->userData - startFrag) + 1);
frag[((const char *)element->userData - startFrag) + 1] = 0;
startFrag = (const char *)element->userData + 1;
- sprintf(buf, "<reference refStart=\"KJV:%s\" refEnd=\"%s\">%s</reference>", element->LowerBound().getOSISRef(), element->UpperBound().getOSISRef(), frag);
+ sprintf(buf, "<reference osisRef=\"%s-\"%s\">%s</reference>", element->LowerBound().getOSISRef(), element->UpperBound().getOSISRef(), frag);
}
else {
memmove(frag, startFrag, ((const char *)verses.GetElement(i)->userData - startFrag) + 1);
frag[((const char *)verses.GetElement(i)->userData - startFrag) + 1] = 0;
startFrag = (const char *)verses.GetElement(i)->userData + 1;
- sprintf(buf, "<reference refStart=\"KJV:%s\">%s</reference>", VerseKey(*verses.GetElement(i)).getOSISRef(), frag);
+ sprintf(buf, "<reference osisRef=\"%s\">%s</reference>", VerseKey(*verses.GetElement(i)).getOSISRef(), frag);
}
outRef+=buf;
}
diff --git a/src/modules/filters/thmlosis.cpp b/src/modules/filters/thmlosis.cpp
index 54cd002..10f5892 100644
--- a/src/modules/filters/thmlosis.cpp
+++ b/src/modules/filters/thmlosis.cpp
@@ -92,7 +92,7 @@ char ThMLOSIS::ProcessText(char *text, int maxlen, const SWKey *key, const SWMod
// Scripture Reference
if (!strncmp(token, "scripRef", 8)) {
- // pushString(buf, "<reference work=\"Bible.KJV\" reference=\"");
+ // pushString(buf, "<reference osisRef=\"");
suspendTextPassThru = true;
newText = true;
}
@@ -247,11 +247,11 @@ char ThMLOSIS::ProcessText(char *text, int maxlen, const SWKey *key, const SWMod
if (vkey) {
char ref[254];
if (vkey->Verse())
- sprintf(ref, "<verseStart ref=\"%s\" />", vkey->getOSISRef());
+ sprintf(ref, "\t\t<verse osisID=\"%s\">", vkey->getOSISRef());
else if (vkey->Chapter())
- sprintf(ref, "<chapterStart ref=\"%s\" />", vkey->getOSISRef());
+ sprintf(ref, "\t<div type=\"chapter\" osisID=\"%s\">", vkey->getOSISRef());
else if (vkey->Book())
- sprintf(ref, "<bookStart ref=\"%s\" />", vkey->getOSISRef());
+ sprintf(ref, "\t<div type=\"book\" osisID=\"%s\">", vkey->getOSISRef());
else *ref = 0;
if (*ref) {
memmove(text+strlen(ref), text, maxlen-strlen(ref)-1);
@@ -262,27 +262,27 @@ char ThMLOSIS::ProcessText(char *text, int maxlen, const SWKey *key, const SWMod
tmp = *vkey;
tmp.AutoNormalize(0);
tmp.Headings(1);
- sprintf(ref, "<verseEnd ref=\"%s\" />", vkey->getOSISRef());
+ sprintf(ref, "</verse>");
pushString(&to, ref);
tmp = MAXVERSE;
if (*vkey == tmp) {
tmp.Verse(0);
- sprintf(ref, "<chapterEnd ref=\"%s\" />", tmp.getOSISRef());
+ sprintf(ref, "\t</div>");
pushString(&to, ref);
tmp = MAXCHAPTER;
tmp = MAXVERSE;
if (*vkey == tmp) {
tmp.Chapter(0);
tmp.Verse(0);
- sprintf(ref, "<bookEnd ref=\"%s\" />", tmp.getOSISRef());
+ sprintf(ref, "\t</div>");
pushString(&to, ref);
}
}
}
else if (vkey->Chapter())
- sprintf(ref, "<chapterStart ref=\"%s\" />", vkey->getOSISRef());
- else sprintf(ref, "<bookStart ref=\"%s\" />", vkey->getOSISRef());
+ sprintf(ref, "\t<div type=\"chapter\" osisID=\"%s\">", vkey->getOSISRef());
+ else sprintf(ref, "\t<div type=\"book\" osisID=\"%s\">", vkey->getOSISRef());
}
}
*to++ = 0;
@@ -318,13 +318,13 @@ const char *ThMLOSIS::convertToOSIS(const char *inRef, const SWKey *key) {
memmove(frag, startFrag, ((const char *)element->userData - startFrag) + 1);
frag[((const char *)element->userData - startFrag) + 1] = 0;
startFrag = (const char *)element->userData + 1;
- sprintf(buf, "<reference refStart=\"KJV:%s\" refEnd=\"%s\">%s</reference>", element->LowerBound().getOSISRef(), element->UpperBound().getOSISRef(), frag);
+ sprintf(buf, "<reference osisRef=\"%s-\"%s\">%s</reference>", element->LowerBound().getOSISRef(), element->UpperBound().getOSISRef(), frag);
}
else {
memmove(frag, startFrag, ((const char *)verses.GetElement(i)->userData - startFrag) + 1);
frag[((const char *)verses.GetElement(i)->userData - startFrag) + 1] = 0;
startFrag = (const char *)verses.GetElement(i)->userData + 1;
- sprintf(buf, "<reference refStart=\"KJV:%s\">%s</reference>", VerseKey(*verses.GetElement(i)).getOSISRef(), frag);
+ sprintf(buf, "<reference osisRef=\"%s\">%s</reference>", VerseKey(*verses.GetElement(i)).getOSISRef(), frag);
}
outRef+=buf;
}
diff --git a/utilities/mod2osis.cpp b/utilities/mod2osis.cpp
index ac42be4..79cec14 100644
--- a/utilities/mod2osis.cpp
+++ b/utilities/mod2osis.cpp
@@ -67,15 +67,21 @@ int main(int argc, char **argv)
VerseKey *vkey = SWDYNAMIC_CAST(VerseKey, key);
char *buf;
- bool opendiv = false;
+ bool opentest = false;
+ bool openbook = false;
+ bool openchap = false;
VerseKey lastHeading;
lastHeading.Headings(1);
lastHeading.AutoNormalize(0);
lastHeading.Testament(5);
lastHeading = BOTTOM;
- if (vkey)
- vkey->Headings(1);
+ if (!vkey) {
+ cerr << "Currently mod2zmod only works with verse keyed modules\n\n";
+ exit(-1);
+ }
+
+ vkey->Headings(1);
cout << "<?xml version=\"1.0\" ";
if (inModule->getConfigEntry("Encoding")) {
@@ -86,57 +92,71 @@ int main(int argc, char **argv)
else cout << "encoding=\"UTF-8\" ";
cout << "?>\n\n";
- cout << "<text ";
- cout << "xmlns:xsi=\"http://www.w3.org/2000/10/XMLSchema-instance\" ";
- cout << "refSys=\"KJV\" ";
- cout << "work=\"";
- cout << inModule->Name() << "\" ";
- if (inModule->Lang()) {
- if (strlen(inModule->Lang()))
- cout << "lang=\"" << inModule->Lang() << "\" ";
- }
- cout << "xsi:noNamespaceSchemaLocation=\"OSISCore_1.0.2.xsd\" ";
- cout << " >\n\n";
-
- cout << "\t<front>\n";
- cout << "\t\t<title>\n";
- cout << "\t\t\t<titlePart>" << inModule->Description() << "</titlePart>\n";
- cout << "\t\t</title>\n";
- cout << "\t</front>\n\n";
+ cout << "<osis";
+ cout << " xmlns:xsi=\"http://www.w3.org/2000/10/XMLSchema-instance\"";
+ cout << " xsi:noNamespaceSchemaLocation=\"osisCore.1.1.xsd\">\n\n";
+ cout << "<osisText";
+ cout << " osisIDWork=\"";
+ cout << inModule->Name() << "\"";
+ cout << " osisRefWork=\"defaultReferenceScheme\"";
+ cout << ">\n\n";
+
+ cout << "\t<header>\n";
+ cout << "\t\t<work osisWork=\"";
+ cout << inModule->Name() << "\">\n";
+ cout << "\t\t\t<identifier type=\"OSIS\">" << inModule->Name() << "</identifier>\n";
+ cout << "\t\t\t<title>" << inModule->Description() << "</title>\n";
+ if (inModule->Lang()) {
+ if (strlen(inModule->Lang()))
+ cout << "\t\t\t<language>" << inModule->Lang() << "</language>\n";
+ }
+ cout << "\t\t\t<refSystem>Bible.KJV</title>\n";
+ cout << "\t\t</work>\n";
+ cout << "\t\t<work osisWork=\"defaultReferenceScheme\">\n";
+ cout << "\t\t\t<identifier type=\"OSIS\">Bible.KJV</identifier>\n";
+ cout << "\t\t</work>\n";
+ cout << "\t</header>\n\n";
- cout << "\t<body><div>\n";
+ (*inModule) = TOP;
int testament = vkey->Testament();
// for ((*inModule) = TOP; (inModule->Key() < (VerseKey)"Mat 2:1"); (*inModule)++) {
for ((*inModule) = TOP; !inModule->Error(); (*inModule)++) {
// for ((*vkey) = "Mark6:29"; !inModule->Error(); (*inModule)++) {
if (vkey->Testament() != lastHeading.Testament()) {
- if (opendiv)
+ if (opentest)
cout << "\t</div>\n";
- cout << "\t<div>";
- opendiv = true;
+ cout << "\t<div type=\"testament\">";
+ lastHeading = *vkey;
+ lastHeading.Book(0);
+ lastHeading.Chapter(0);
+ lastHeading.Verse(0);
+ opentest = true;
}
if (vkey->Book() != lastHeading.Book()) {
+ if (openbook)
+ cout << "\t</div>\n";
buf = new char [205];
- lastHeading.Testament(vkey->Testament());
- lastHeading.Book(vkey->Book());
+ lastHeading = *vkey;
lastHeading.Chapter(0);
lastHeading.Verse(0);
*buf = 0;
filter.ProcessText(buf, 200 - 3, &lastHeading, inModule);
cout << "" << buf << endl;
delete [] buf;
+ openbook = true;
}
if (vkey->Chapter() != lastHeading.Chapter()) {
+ if (openchap)
+ cout << "\t</div>\n";
buf = new char [205];
- lastHeading.Testament(vkey->Testament());
- lastHeading.Book(vkey->Book());
- lastHeading.Chapter(vkey->Chapter());
+ lastHeading = *vkey;
lastHeading.Verse(0);
*buf = 0;
filter.ProcessText(buf, 200 - 3, &lastHeading, inModule);
cout << "" << buf;
delete [] buf;
+ openbook = true;
}
/*
char *text = inModule->getRawEntry();
@@ -149,10 +169,14 @@ int main(int argc, char **argv)
*/
cout << inModule->RenderText() << endl;
}
- if (opendiv)
+ if (openchap)
+ cout << "\t</div>\n";
+ if (openbook)
+ cout << "\t</div>\n";
+ if (opentest)
cout << "\t</div>\n";
- cout << "\t</div></body>\n";
- cout << "\t</text>\n";
+ cout << "\t</osisText>\n";
+ cout << "</osis>\n";
return 0;
}