From 08e1f7422791a20b5415aa62475c1d50cbf0dc74 Mon Sep 17 00:00:00 2001 From: danglassey Date: Thu, 26 Sep 2002 13:02:15 +0000 Subject: sync with crosswire 20020926-1300 --- apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.dfm | 4 +- apps/windoze/CBuilder5/BibleCS/bookmarkfrm.cpp | 2 +- apps/windoze/CBuilder5/BibleCS/mainfrm.cpp | 65 +++--- apps/windoze/CBuilder5/BibleCS/mainfrm.dfm | 60 +++--- apps/windoze/CBuilder5/BibleCS/optionfrm.cpp | 2 + apps/windoze/CBuilder5/BibleCS/optionfrm.dfm | 2 +- .../CBuilder5/BibleCS/stage/uilocales.d/de.conf | 231 +++++++++++---------- apps/windoze/CBuilder5/BibleCS/sword.bpr | 20 +- apps/windoze/CBuilder5/BibleCS/sword.cpp | 9 +- apps/windoze/CBuilder5/BibleCS/sword.h | 1 + apps/windoze/CBuilder5/BibleCS/sword.res | Bin 1968 -> 1968 bytes apps/windoze/CBuilder5/BibleCS/swordlib.bpr | 16 +- apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpr | 21 +- include/swmodule.h | 3 +- include/zcom.h | 4 +- include/zld.h | 4 +- include/zstr.h | 3 +- include/ztext.h | 4 +- include/zverse.h | 1 + locales.d/id.conf | 4 +- src/modules/comments/rawcom/rawcom.cpp | 2 + src/modules/common/rawverse.cpp | 2 +- src/modules/common/zstr.cpp | 10 +- src/modules/common/zverse.cpp | 57 +++-- src/modules/filters/cipherfil.cpp | 18 +- src/modules/filters/latin1utf16.cpp | 4 +- src/modules/filters/latin1utf8.cpp | 3 +- src/modules/filters/scsuutf8.cpp | 2 + src/modules/filters/utf16utf8.cpp | 2 + src/modules/filters/utf8arshaping.cpp | 2 + src/modules/filters/utf8bidireorder.cpp | 2 + src/modules/filters/utf8html.cpp | 2 + src/modules/filters/utf8latin1.cpp | 2 + src/modules/filters/utf8nfc.cpp | 2 + src/modules/filters/utf8nfkd.cpp | 2 + src/modules/filters/utf8utf16.cpp | 2 + src/modules/genbook/rawgenbook/rawgenbook.cpp | 2 + src/modules/lexdict/rawld/rawld.cpp | 2 + src/modules/lexdict/rawld4/rawld4.cpp | 2 + src/modules/lexdict/zld/zld.cpp | 2 + src/modules/texts/rawtext/rawtext.cpp | 4 +- src/modules/texts/ztext/ztext.cpp | 50 +---- usrinst.sh | 2 +- utilities/bcppmake/cipherraw.bpr | 9 +- utilities/bcppmake/libsword.bpr | 18 +- utilities/bcppmake/mkfastmod.bpr | 16 +- utilities/bcppmake/mod2vpl.bpr | 18 +- utilities/bcppmake/mod2zmod.bpr | 12 +- utilities/bcppmake/thml2gbs.bpr | 20 +- utilities/bcppmake/utilities.bpg | 4 +- utilities/bcppmake/vpl2mod.bpr | 13 +- utilities/mod2zmod.cpp | 16 +- 52 files changed, 415 insertions(+), 345 deletions(-) diff --git a/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.dfm b/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.dfm index b301641..95f51fc 100644 --- a/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.dfm +++ b/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.dfm @@ -1,6 +1,6 @@ object AboutBox: TAboutBox - Left = 290 - Top = 103 + Left = 296 + Top = 109 BorderStyle = bsDialog Caption = 'About The SWORD Project' ClientHeight = 448 diff --git a/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.cpp b/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.cpp index 4429c5d..edbbc24 100644 --- a/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.cpp +++ b/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.cpp @@ -164,7 +164,7 @@ void TbookmarkForm::SaveBookmarks() ConfigEntMap emap; SectionMap::iterator sit; char buf[15]; - bool personal, other; + bool personal = true, other = false; list ::iterator it; string persfile; diff --git a/apps/windoze/CBuilder5/BibleCS/mainfrm.cpp b/apps/windoze/CBuilder5/BibleCS/mainfrm.cpp index d064133..79fcb8a 100644 --- a/apps/windoze/CBuilder5/BibleCS/mainfrm.cpp +++ b/apps/windoze/CBuilder5/BibleCS/mainfrm.cpp @@ -73,34 +73,34 @@ void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled) void TForm1::NavigateVerseURL (char* verStrIN) { - unsigned long verSize = strlen(verStrIN) + 1; - char * verStr = new char[verSize]; - strcpy (verStr, verStrIN); - char * verStr2 = new char[verSize]; - unsigned long verSize2 = 0; - if (*(verStr + verSize - 2) == '\"') { - *(verStr + verSize - 2) = 0; - } + unsigned long verSize = strlen(verStrIN) + 1; + char * verStr = new char[verSize]; + strcpy (verStr, verStrIN); + char * verStr2 = new char[verSize]; + unsigned long verSize2 = 0; + if (*(verStr + verSize - 2) == '\"') { + *(verStr + verSize - 2) = 0; + } verSize = 0; - if (strstr(verStr, "libronix")) { - char* bib = strstr(verStr, "bible:"); - if (bib) { - verSize = 6 + (unsigned long)(bib - verStr); - } + if (strstr(verStr, "libronix")) { + char* bib = strstr(verStr, "bible:"); + if (bib) { + verSize = 6 + (unsigned long)(bib - verStr); + } + } + else if (strstr(verStr, "sword://")) { + verSize = 9; } - else if (strstr(verStr, "sword://")) { - verSize = 9; - } else if (*verStr == '\"') { verSize = 1; } - while (verStr[verSize] != 0) { - verStr2[verSize2] = verStr[verSize]; - verSize++; - verSize2++; - } - verStr2[verSize2] = 0; + while (verStr[verSize] != 0) { + verStr2[verSize2] = verStr[verSize]; + verSize++; + verSize2++; + } + verStr2[verSize2] = 0; char * verse = strstr(verStr2, "/"); if (verse) { @@ -1045,8 +1045,10 @@ void __fastcall TForm1::FormShow(TObject *Sender) if ((sit = layoutconf->Sections.find("Screen")) != layoutconf->Sections.end()) { - if ((eit = (*sit).second.find("MainTop")) != (*sit).second.end()) + if ((eit = (*sit).second.find("MainTop")) != (*sit).second.end()) { Form1->Top = atoi((*eit).second.c_str()); +// Form1->Position = poDesigned; // because we've set the values + } if ((eit = (*sit).second.find("MainLeft")) != (*sit).second.end()) Form1->Left = atoi((*eit).second.c_str()); if ((eit = (*sit).second.find("MainHeight")) != (*sit).second.end()) @@ -1183,13 +1185,16 @@ void __fastcall TForm1::FormShow(TObject *Sender) refreshAppearance(); - if (this->Tag) { - NavigateVerseURL((char*)(this->Tag)); + if (startVerse.Length()) { + NavigateVerseURL(startVerse.c_str()); } - else if ((eit = (*sit).second.find("LastVerse")) != (*sit).second.end()) { - freeHandLookup->Text = (*eit).second.c_str(); - char ret = '\r'; - freeHandLookupoldKeyPress(0, ret); + else { + startVerse = layoutconf->Sections["History"].getWithDefault("LastVerse", "").c_str(); + if (startVerse.Length()) { + freeHandLookup->Text = startVerse.c_str(); + char ret = '\r'; + freeHandLookupoldKeyPress(0, ret); + } } } @@ -1898,7 +1903,7 @@ void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) // NS_TermEmbedding(); - if ((*optionsconf)["Layout"]["AutoSaveLayout"] == "1") + if ((*optionsconf)["Layout"].getWithDefault("AutoSaveLayout", "1") == "1") SaveLayout1Click(this); } //--------------------------------------------------------------------------- diff --git a/apps/windoze/CBuilder5/BibleCS/mainfrm.dfm b/apps/windoze/CBuilder5/BibleCS/mainfrm.dfm index b1cf7a1..defa0e4 100644 --- a/apps/windoze/CBuilder5/BibleCS/mainfrm.dfm +++ b/apps/windoze/CBuilder5/BibleCS/mainfrm.dfm @@ -1,8 +1,8 @@ object Form1: TForm1 - Left = 311 - Top = 144 - Width = 686 - Height = 510 + Left = 409 + Top = 115 + Width = 635 + Height = 475 Caption = 'The SWORD Project' Color = clBtnFace Font.Charset = DEFAULT_CHARSET @@ -50,7 +50,7 @@ object Form1: TForm1 object Splitter2: TSplitter Left = 0 Top = 282 - Width = 678 + Width = 627 Height = 5 Cursor = crVSplit Align = alTop @@ -59,7 +59,7 @@ object Form1: TForm1 object pnlTextCom: TPanel Left = 0 Top = 46 - Width = 678 + Width = 627 Height = 236 Align = alTop BevelOuter = bvNone @@ -108,7 +108,7 @@ object Form1: TForm1 object pnlComment: TPanel Left = 373 Top = 0 - Width = 305 + Width = 254 Height = 236 Align = alClient BevelOuter = bvNone @@ -119,7 +119,7 @@ object Form1: TForm1 object CommentaryPageControl: TPageControl Left = 0 Top = 0 - Width = 305 + Width = 254 Height = 236 Hint = 'Commentaries' Align = alClient @@ -141,8 +141,8 @@ object Form1: TForm1 object pnlDict: TPanel Left = 0 Top = 287 - Width = 678 - Height = 162 + Width = 627 + Height = 127 Align = alClient BevelOuter = bvNone Constraints.MinHeight = 10 @@ -150,18 +150,18 @@ object Form1: TForm1 PopupMenu = PopupMenu4 TabOrder = 1 object Splitter3: TSplitter - Left = 488 + Left = 437 Top = 0 Width = 5 - Height = 162 + Height = 127 Cursor = crHSplit Align = alRight end object LexDictPageControl: TPageControl Left = 0 Top = 0 - Width = 488 - Height = 162 + Width = 437 + Height = 127 Hint = 'Lexicons / Dictionaries' Align = alClient Font.Charset = ANSI_CHARSET @@ -178,10 +178,10 @@ object Form1: TForm1 OnChange = LexDictPageControlChange end object Panel2: TPanel - Left = 493 + Left = 442 Top = 0 Width = 185 - Height = 162 + Height = 127 Align = alRight Caption = 'Panel2' TabOrder = 1 @@ -203,7 +203,7 @@ object Form1: TForm1 Left = 1 Top = 25 Width = 183 - Height = 136 + Height = 101 Align = alClient ItemHeight = 13 TabOrder = 1 @@ -213,8 +213,8 @@ object Form1: TForm1 end object StatusBar1: TStatusBar Left = 0 - Top = 449 - Width = 678 + Top = 414 + Width = 627 Height = 15 Panels = <> SimplePanel = True @@ -222,7 +222,7 @@ object Form1: TForm1 object CoolBar1: TCoolBar Left = 0 Top = 0 - Width = 678 + Width = 627 Height = 46 AutoSize = True Bands = < @@ -243,7 +243,7 @@ object Form1: TForm1 Break = False Control = ToolBar1 ImageIndex = -1 - Width = 314 + Width = 263 end> object BackBtnImage: TImage Left = 16 @@ -457,7 +457,7 @@ object Form1: TForm1 object ToolBar1: TToolBar Left = 369 Top = 8 - Width = 301 + Width = 250 Height = 25 AutoSize = True ButtonHeight = 23 @@ -629,18 +629,18 @@ object Form1: TForm1 object Search: TDdeServerItem ServerConv = Bible OnPokeData = SearchPokeData - Left = 684 - Top = 60 + Left = 552 + Top = 56 end object Lookup: TDdeServerItem ServerConv = Bible OnPokeData = LookupPokeData - Left = 656 - Top = 60 + Left = 524 + Top = 56 end object Bible: TDdeServerConv - Left = 624 - Top = 60 + Left = 492 + Top = 56 end object PopupMenu1: TPopupMenu OnPopup = PopupMenuPopup @@ -740,8 +740,8 @@ object Form1: TForm1 Top = 19 end object ActionList1: TActionList - Left = 621 - Top = 118 + Left = 489 + Top = 114 object Action1: TAction Caption = 'Action1' ShortCut = 16471 diff --git a/apps/windoze/CBuilder5/BibleCS/optionfrm.cpp b/apps/windoze/CBuilder5/BibleCS/optionfrm.cpp index d067d1c..ecc858f 100644 --- a/apps/windoze/CBuilder5/BibleCS/optionfrm.cpp +++ b/apps/windoze/CBuilder5/BibleCS/optionfrm.cpp @@ -668,6 +668,8 @@ void TOptionsfrm::LoadMiscSettings(SWConfig* config) { int color; string tmpval; + Optionsfrm->AutoBMPersonal->Checked = true; + Optionsfrm->AutoLayout->Checked = true; if ((sit = config->Sections.find("Bookmarks")) != config->Sections.end()) { Optionsfrm->AutoBMPersonal->Checked = ((atoi(sit->second["AutoSavePersonal"].c_str()))?true:false); Optionsfrm->AutoBMOther->Checked = ((atoi(sit->second["AutoSaveOther"].c_str()))?true:false); diff --git a/apps/windoze/CBuilder5/BibleCS/optionfrm.dfm b/apps/windoze/CBuilder5/BibleCS/optionfrm.dfm index 95d89fc..920be7e 100644 --- a/apps/windoze/CBuilder5/BibleCS/optionfrm.dfm +++ b/apps/windoze/CBuilder5/BibleCS/optionfrm.dfm @@ -75,7 +75,7 @@ object Optionsfrm: TOptionsfrm Top = 0 Width = 554 Height = 284 - ActivePage = TabSheet2 + ActivePage = TabSheet1 Align = alClient TabOrder = 1 object TabSheet1: TTabSheet diff --git a/apps/windoze/CBuilder5/BibleCS/stage/uilocales.d/de.conf b/apps/windoze/CBuilder5/BibleCS/stage/uilocales.d/de.conf index eaddf0d..cc87eb3 100644 --- a/apps/windoze/CBuilder5/BibleCS/stage/uilocales.d/de.conf +++ b/apps/windoze/CBuilder5/BibleCS/stage/uilocales.d/de.conf @@ -1,186 +1,207 @@ [Meta] Name=de -Description=German +Description=Deutsch Translator=Christian Renz [Text] BackBtnImage=uilocales.d/de_back.bmp SearchBtnImage=uilocales.d/de_search.bmp +"All Windows","Bible Window","Commentary Window","Lexicon/Dictionary Window","Pop-Up Windows","Search Results"="Alle Fenster","Bibelfenster","Kommentarfenster","Lexikon-/Wörterbuchfenster","Pop-up-Fenster","Suchergebnisse" +"Entire Module","Current Results","Custom Range"="Ganzes Modul","Aktuelle Ergebnisse","Eigener Bereich" +"Mult Word","Phrase","Regular Expression"="Mehrere Worte","Ausdruck","Regulärer Ausdruck" &About=&Über SWORD... -About The SWORD Project=Über das SWORD Projekt -&Add=&Hinzufügen &Add Bookmark=Lesezeichen &hinzufügen +&Add=&Hinzufügen +&Basic Latin=Lateinische Buchstaben ohne Akzente +&Close=&Schließen +&Copy=&Kopieren +&Delete Entry=Eintrag l&öschen +&Delete Scheme=Schema &löschen +&Edit Bookmarks / Tree View...=Lesezeichen &bearbeiten / Baumdarstellung... +&Edit Entry=Eintrag &bearbeiten +&Edit=&Bearbeiten +&Export Scheme=Schema &exportieren +&File=&Datei +&Font=Schriftart +&Footnotes=&Fußnoten +&Hebrew Cantillation=Hebräische Kantillation +&Help=&Hilfe +&Import Scheme=Schema &importieren +&Latin=Lateinische Buchstaben +&Morphological Tags=Wortformenanzeige +&New Bookmark File=&Neue Lesezeichendatei +&New Search Window=&Neues Suchfenster... +&New Verse List=Neue Versliste +&On=&An +&Preferences...=&Voreinstellungen... +&Print...=&Drucken... +&Print=&Drucken +&Remove=&Entfernen +&Reset all=Alles &löschen +&Save Scheme=Schema &speichern +&Save=&Speichern +&Search=&Suche +&Size=Größe +&Strong's Numbers=Strongs-Nummern +&Tools=&Tools +&Transliteration=&Umschrift +&View=Anzeige +About The SWORD Project=Über das SWORD Projekt +Add Current Verse To List=Aktuellen Vers in Liste einfügen Add New Bookmark File=Neue Lesezeichendatei hinzufügen +Autosave Other Bookmarks=Andere Lesezeichen automatisch speichern +Autosave Personal Bookmarks=Eigene Lesezeichen automatisch speichern +Autosave Screen Layout=Bildschirmanordnung automatisch speichern +B&eta=B&eta +B&Greek=B&Greek +Background=Hintergrund +Bible Text=Bibeltext +Biblical Texts=Biblische Texte +Body Text:=Text: +Book Name=Buchname Bookmark Section Title:=Name für diese Gruppe von Lesezeichen: Bookmark=Lesezeichen Bookmarks=Lesezeichen +Bottom:=Unten: +Bring Up Search Window=Suchfenster anzeigen Cancel=Abbrechen Case Sensitive=Groß-/Kleinschreibung +Chapter Heading:=Kapitelüberschrift: +Chapter Heading=Kapitelüberschrift +Chapter Headings=Kapitelüberschriften Chapter=Kapitel Check Modules To Show As Tabs=Anzuzeigende Module ankreuzen +Choose Module=Modul auswählen Combo/Edit Fields=Kombo-/Eingabefelder +Commentaries=Kommentare +Commentary Text=Kommentartext Contents=&Inhalt -&Copy=&Kopieren +Copy All Entries To Clipboard=Alle Einträge in die Zwischenablage kopieren Copy as &B-Greek Transliteration=Als &B-Greek-Umschrift kopieren -&Close=&Schließen Create a New Verse List Window=Neues Verslistenfenster &öffnen Create Verse List=Neue Versliste erstellen +Create Verse&List From Result=Ergebnisse als Vers&liste speichern Current Verse Color=Aktuelle Versfarbe Daily Devotionals=Tageslese Default Devotional=Standard-Tagelese +Default General Dictionary=Standardwörterbuch +Default=Standard Define Custom Range=Eigenen Bereich festlegen Definitions=Definitionen -&Delete Entry=Eintrag l&öschen Description=Beschreibung Devotion for Today=Tageslese für heute Devotional of the Day=&Tageslese Dictionary Lookup=Im Wörterbuch nachschlagen Display Colors=Anzeigefarben Display=Anzeige -&Edit=&Bearbeiten -&Edit Bookmarks / Tree View...=Lesezeichen &bearbeiten / Baumdarstellung... -Edit Entry=Eintrag bearbeiten -&Edit Entry=Eintrag &bearbeiten -"Entire Module","Current Results","Custom Range"="Ganzes Module","Aktuelle Ergebnisse","Eigener Bereich" E&xit=&Beenden +Edit Entry=Eintrag bearbeiten eg. mat-jo;rev4=z.B. mat-jo;rev4 -&File=&Datei File Name (without extension):=Dateiname (ohne Endung) +Font and Size=Schriftart und -größe +Font Name=Schriftart Font Size:=Schriftgröße +Font Size=Größe +Font:=Schriftart: +Footer Text:=Fußzeilentext: +Foreground=Vordergrund +Formatting Options=Formatierung Found New Module...=Neues Modul gefunden... General=Allgemein +Glossaries / General Dictionaries=Glossare / Standardwörterbücher +Glossaries=Glossare +Go Back To Previous Location=Zurück Greek=Griechisch +H&ebrew Vowel Points=Hebräische Vokalmarkierungen +He&adings=Ü&berschriften +Header Text:=Kopfzeilentext: +Header/Footer=Kopf-/Fußzeile Hebrew=Hebräisch -&Help=&Hilfe Hide / Show Modules=Module anzeigen/verstecken Individual Modules (Font Only)=Einzelne Module (nur Schriftart) Install Manager=&Installationsprogramm +Installed Modules=Installierte Module Language=Sprache +Left:=Links: +Lexicon/Dictionary Text=Lexikon-/Wörterbuchtext +Lexicons / Dictionaries=Lexika / Wörterbücher Link to Comment for Verse...=Mit anderem Vers &verknüpfen +Load Verse List From File=Versliste laden +Lookup Entry=Nach Eintrag suchen Maintain Custom Ranges=Eigene Bereiche verwalten -Window Type=Modulart +Margins (Inches)=Ränder (Zoll) +Module Name=Modulname Module=Modul -"Mult Word","Phrase","Regular Expression"="Mehrere Worte","Ausdruck","Regulärer Ausdruck" -&New Search Window=&Neues Suchfenster... +O&ff=A&us OK=OK OkBtn=OK Options=&Optionen Original Language Support - Default Modules=Standardmodule für Ursprachenunterstützung +P&review...=&Vorschau... +P&review=&Vorschau +P&rint...=&Drucken... +Page Setup=Seite einrichten +Paragraph Format=Absatzformat Parsing=Syntaxanalyse +Personal Bookmarks=Eigene Lesezeichen Personalize=Personalisieren +Postfixed ...(John 1:1 KJV)=Hinten ...(Johannes 1,1 KJV) Preferences=Voreinstellungen -&Preferences...=&Voreinstellungen... -Preview...=Vorschau... +Prefixed (John 1:1 KJV)...=Vorne (Johannes 1,1 KJV)... +Preview...=Vorschau Preview=Vorschau +Print All Entries=Alle Einträge drucken +Print Footer=Fußzeile drucken +Print Header=Kopfzeile drucken +Print Range=Druckbereich +Print Selection=Druckauswahl +Print Source=Quelle +Print...=Drucken... +Print=Drucken +Printer&s...=D&rucker... Range Name=Name für diesen Bereich Range Text=Bibeltext Reference=Bibelstelle -&Remove=&Entfernen -&Save=&Speichern +Remove Highlighted Entry From List=Ausgewählten Eintrag löschen +Right:=Rechts: S&ave Layout=Anordnung s&peichern -Autosave Other Bookmarks=Andere Lesezeichen speichern -Autosave Personal Bookmarks=Eigene Lesezeichen speichern -Autosave Screen Layout=Bildschirmanordnung speichern +Sample Text=Beispieltext +Save Verse List To File=Versliste speichern Scheme=Schema Scope=Bereich -&Search=&Suche Search Options=Sucheinstellungen Search Type=Suchart Search...=Suche... Search=Suche Select Color...=Farbe... Select Font...=Schriftart... +Show &All Installed=&Alle installierten Schriften +Show &Unicode Only=Nur &Unicode-Schriften Show Devotional at Startup=Tageslese beim Programmstart anzeigen Show Devotional Splash Screen on Startup=Tageslese beim Programmstart anzeigen Show Devotionals as Dictionaries=Tageslese als Wörterbucher anzeigen +Show Font Faces=Schriftvorschau anzeigen +Show Glossaries as Dictionaries=Glossare als Wörterbücher anzeigen +Show Glossary Lookup Over Words (CTRL-W)=Wörter im Wörterbuch nachschlagen (Strg+W) Show Hint Over Strongs Numbers=Erklärung über Strongs-Nummern anzeigen -Show Hint Pop-ups=Tipps anzeigen +Show Hint Pop-ups=Popupfenster anzeigen +Show Lexicon Lookup Over Strongs Numbers=Strongs-Nummern im Lexikon nachschlagen +Show Preview Over Verse Lists=Vorschau für Verslisten anzeigen Special Modules=Besondere Module Strong's Numbered Text=Text mit Strongs-Nummern -Text Styles and Colors=Schriftart für den Text -&Tools=&Tools +Strong's Numbers <...>=Strongs-Nummer <...> +Strong's Tense (...)=Strongs-Zeitform (...) +Superscripted=Hochgestellt +Text Styles and Colors=Schriftstile und -farben +The SWORD Project=Das SWORD Projekt +Top:=Oben: Type Verse=Vers eintippen User Verse List=Eigene Versliste +Versbereich oder -liste: Verse List=Versliste Verse Number Color=Farbe für Versnummern -&New Bookmark File=&Neue Lesezeichendatei -P&rint...=&Drucken... -The SWORD Project=Das SWORD Projekt -&Footnotes=&Fußnoten -&On=&An -O&ff=A&us -&Hebrew Cantillation=Hebräische Kantillation -H&ebrew Vowel Points=Hebräische Vokalmarkierungen -&Strong's Numbers=Strongs-Nummern -&Morphological Tags=Wortformenanzeige -He&adings=Ü&berschriften -&Transliteration=&Umschrift -&Latin=Lateinische Buchstaben -&Basic Latin=Lateinische Buchstaben ohne Akzente -B&eta=B&eta -B&Greek=B&Greek -Print Selection=Druckauswahl -Print Source=Quelle -Bible Text=Bibeltext -Commentary Text=Kommentartext -Lexicon/Dictionary Text=Lexikon-/Wörterbuchtext -Module Name=Modulname -Print Range=Druckbereich -Versbereich oder -liste: -&Print=&Drucken -Print=Drucken -Print...=Drucken... -&Print...=&Drucken... -P&review=&Vorschau -P&review...=&Vorschau... -Printer&s...=D&rucker... -Margins (Inches)=Ränder (Zoll) -Top:=Oben: -Left:=Links: -Right:=Rechts: -Bottom:=Unten: -Header/Footer=Kopf-/Fußzeile -Print Header=Kopfzeile drucken -Header Text:=Kopfzeilentext: -Print Footer=Fußzeile drucken -Footer Text:=Fußzeilentext: -Formatting Options=Formatierung -Font and Size=Schriftart und -größe -Chapter Heading:=Kapitelüberschrift: -Body Text:=Text: Verse Numbers:=Versnummern: -Font:=Schriftart: -Book Name=Buchname -Chapter Headings=Kapitelüberschriften -Paragraph Format=Absatzformat Verse Numbers=Versnummern -Superscripted=Hochgestellt -Prefixed (John 1:1 KJV)...=Vorne (Johannes 1,1 KJV)... -Postfixed ...(John 1:1 KJV)=Hinten ...(Johannes 1,1 KJV) -"English (US)","Czech","Danish","German","French","Norwegian","Polish","Portuguese","Slovak"="Englisch (USA)","Tschechisch","Dänisch","Deutsch","Französisch","Norwegisch","Polnisch","Portugiesisch","Slovakisch" -Glossaries=Glossare -Show Glossaries as Dictionaries=Glossare als Wörterbücher anzeigen -Default=Standard -"All Modules","Bible Modules","Commentary Modules","Lexicon/Dictionary Modules","Pop-Up Windows","Search Results"="Alle Module","Bibelmodule","Kommentarmodule","Lexikon-/Wörterbuchmodule","Pop-Up Windows","Search Results" -&Save Scheme=Schema &speichern -&Delete Scheme=Schema &löschen -&Import Scheme=Schema &importieren -&Export Scheme=Schema &exportieren -Personal Bookmarks=Eigene Lesezeichen -Words To Live By...Worte zum Leben... -Go Back To Previous Location=Zurück -Bring Up Search Window=Suchfenster anzeigen -Biblical Texts=Biblische Texte -Commentaries=Kommentare -Lexicons / Dictionaries=Lexika / Wörterbücher -Lookup Entry=Nach Eintrag suchen Verse Range or List=Versbereich oder -liste -Page Setup=Seite einrichten -Strong's Numbers <...>=Strongs Nummer <...> -Strong's Tense (...)=Strongs Zeitform (...) -"All Windows"="All Windows" -"Bible Window"="Bible Window" -"Commentary Window"="Commentary Window" -"Lexicon/Dictionary Window"="Lexicon/Dictionary Window" -"Pop-Up Windows"="Pop-Up Windows" -"Search Results"="Search Results" \ No newline at end of file +Window Type=Fensterart +Words To Live By...=Worte zum Leben... \ No newline at end of file diff --git a/apps/windoze/CBuilder5/BibleCS/sword.bpr b/apps/windoze/CBuilder5/BibleCS/sword.bpr index d9468d8..d801535 100644 --- a/apps/windoze/CBuilder5/BibleCS/sword.bpr +++ b/apps/windoze/CBuilder5/BibleCS/sword.bpr @@ -43,7 +43,7 @@ - + @@ -73,7 +73,7 @@ AutoIncBuild=1 MajorVer=1 MinorVer=5 Release=4 -Build=121 +Build=125 Debug=0 PreRelease=0 Special=0 @@ -85,7 +85,7 @@ CodePage=1252 [Version Info Keys] CompanyName=CrossWire Software & Bible Society FileDescription=Windows 32bit User Interface to The SWORD Project -FileVersion=1.5.4.121 +FileVersion=1.5.4.125 InternalName=biblecs LegalCopyright=(c) 2002 CrossWire Bible Society under the terms of the GNU General Public License LegalTrademarks= @@ -124,12 +124,14 @@ Count=1 Item0=$(BCB)\source\vcl [HistoryLists\hlConditionals] -Count=5 -Item0=_ICU_;_ICUSWORD_ -Item1=_ICU_;_ICUSWORD_;_DEBUG -Item2=_ICU_ -Item3=_ICU_;_DEBUG -Item4=_DEBUG +Count=7 +Item0=_ICU_;_ICUSWORD_;USBINARY +Item1=_ICU_;_ICUSWORD_;_DEBUG;USBINARY +Item2=_ICU_;_ICUSWORD_;_DEBUG +Item3=_ICU_;_ICUSWORD_ +Item4=_ICU_ +Item5=_ICU_;_DEBUG +Item6=_DEBUG [HistoryLists\hlIntOutputDir] Count=2 diff --git a/apps/windoze/CBuilder5/BibleCS/sword.cpp b/apps/windoze/CBuilder5/BibleCS/sword.cpp index 0bdf69a..13a52d3 100644 --- a/apps/windoze/CBuilder5/BibleCS/sword.cpp +++ b/apps/windoze/CBuilder5/BibleCS/sword.cpp @@ -49,6 +49,9 @@ USE("..\..\..\..\..\icu-sword\as_is\borland\http:\www.crosswire.org\sword\images USELIB("..\..\..\..\..\icu-sword\as_is\borland\icucommon.lib"); USELIB("..\..\..\..\..\icu-sword\as_is\borland\icui18n.lib"); //--------------------------------------------------------------------------- + +AnsiString startVerse = ""; + WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { LONG result; @@ -93,6 +96,8 @@ WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, in delete [] buf; return 0; } + startVerse = buf; + // TODO 5: if we have a cmdline argument, figure we have to change directories. BAD, FIX. result = Application->ExeName.Length(); @@ -176,7 +181,6 @@ WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, in Application->CreateForm(__classid(TPreviewForm), &PreviewForm); Application->CreateForm(__classid(TPrintForm), &PrintForm); Application->Run(); - delete SplashPg; } catch (Exception &exception) { Application->ShowException(&exception); @@ -185,3 +189,6 @@ WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, in } //--------------------------------------------------------------------------- + + + diff --git a/apps/windoze/CBuilder5/BibleCS/sword.h b/apps/windoze/CBuilder5/BibleCS/sword.h index 5bfa702..b4ff149 100644 --- a/apps/windoze/CBuilder5/BibleCS/sword.h +++ b/apps/windoze/CBuilder5/BibleCS/sword.h @@ -1 +1,2 @@ #define WM_VERSE (WM_APP + 1995) +extern AnsiString startVerse; diff --git a/apps/windoze/CBuilder5/BibleCS/sword.res b/apps/windoze/CBuilder5/BibleCS/sword.res index 935ce20..3e9ab0d 100644 Binary files a/apps/windoze/CBuilder5/BibleCS/sword.res and b/apps/windoze/CBuilder5/BibleCS/sword.res differ diff --git a/apps/windoze/CBuilder5/BibleCS/swordlib.bpr b/apps/windoze/CBuilder5/BibleCS/swordlib.bpr index c192a31..ece7bec 100644 --- a/apps/windoze/CBuilder5/BibleCS/swordlib.bpr +++ b/apps/windoze/CBuilder5/BibleCS/swordlib.bpr @@ -79,7 +79,7 @@ - + @@ -163,12 +163,14 @@ Item4=..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook Item5=..\..\..\..\src\modules\lexdict\zld;..\..;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys [HistoryLists\hlConditionals] -Count=5 -Item0=_ICU_;_ICUSWORD_ -Item1=_ICU_;_ICUSWORD_;_DEBUG -Item2=_ICU_ -Item3=_ICU_;_DEBUG -Item4=_DEBUG +Count=7 +Item0=_ICU_;_ICUSWORD_;USBINARY +Item1=_ICU_;_ICUSWORD_;_DEBUG;USBINARY +Item2=_ICU_;_ICUSWORD_;_DEBUG +Item3=_ICU_;_ICUSWORD_ +Item4=_ICU_ +Item5=_ICU_;_DEBUG +Item6=_DEBUG [HistoryLists\hlIntOutputDir] Count=2 diff --git a/apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpr b/apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpr index 2eccedd..79d6226 100644 --- a/apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpr +++ b/apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpr @@ -28,7 +28,7 @@ - + @@ -102,15 +102,16 @@ Count=1 Item0=$(BCB)\source\vcl [HistoryLists\hlConditionals] -Count=8 -Item0=VCL -Item1=VCL;_DEBUG -Item2=VCL;__STDC__ true -Item3=VCL;__STDC__ -Item4=VCL;_MSC_VER -Item5=VCL __STDC__ -Item6=_DEBUG;VCL -Item7=_DEBUG +Count=9 +Item0=VCL;_ICU_;_ICUSWORD_;USBINARY +Item1=VCL +Item2=VCL;_DEBUG +Item3=VCL;__STDC__ true +Item4=VCL;__STDC__ +Item5=VCL;_MSC_VER +Item6=VCL __STDC__ +Item7=_DEBUG;VCL +Item8=_DEBUG [HistoryLists\hlRunParameters] Count=1 diff --git a/include/swmodule.h b/include/swmodule.h index 0a9c447..cb82860 100644 --- a/include/swmodule.h +++ b/include/swmodule.h @@ -3,7 +3,7 @@ * types of modules (e.g. texts, commentaries, maps, lexicons, * etc.) * -* $Id: swmodule.h,v 1.51 2002/08/28 13:02:57 scribe Exp $ +* $Id: swmodule.h,v 1.52 2002/09/25 22:14:58 scribe Exp $ * * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org) * CrossWire Bible Society @@ -503,7 +503,6 @@ protected: * @return *this */ virtual void rawFilter(char *buf, long size, SWKey *key) { - buf[size] = 0; filterBuffer(rawFilters, buf, size, key); } /** Adds an OptionFilter to this module's @ref optionfilters queue diff --git a/include/zcom.h b/include/zcom.h index 96844fe..5c3038d 100644 --- a/include/zcom.h +++ b/include/zcom.h @@ -2,7 +2,7 @@ * zcom.h - code for class 'zCom'- a module that reads compressed text * files: ot and nt using indexs ??.vss * - * $Id: zcom.h,v 1.15 2002/07/28 01:48:38 scribe Exp $ + * $Id: zcom.h,v 1.16 2002/09/25 21:22:03 scribe Exp $ * * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org) * CrossWire Bible Society @@ -58,6 +58,8 @@ public: virtual void deleteEntry(); // Delete current module entry // end write interface ------------------------ + virtual void rawZFilter(char *buf, long size, char direction = 0) { rawFilter(buf, size, (SWKey *)(long)direction); }// hack, use key as direction for enciphering + // swcacher interface ---------------------- virtual void flush() { flushCache(); } // end swcacher interface ---------------------- diff --git a/include/zld.h b/include/zld.h index f059597..8c142d9 100644 --- a/include/zld.h +++ b/include/zld.h @@ -2,7 +2,7 @@ * zld.cpp - code for class 'zLD'- a module that reads compressed lexicon and * dictionary files. * - * $Id: zld.h,v 1.5 2002/07/28 01:48:38 scribe Exp $ + * $Id: zld.h,v 1.6 2002/09/25 21:22:03 scribe Exp $ * * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org) * CrossWire Bible Society @@ -56,6 +56,8 @@ public: virtual void linkEntry(const SWKey *linkKey); // Link current module entry to other module entry virtual void deleteEntry(); // Delete current module entry // end write interface ------------------------ + + virtual void rawZFilter(char *buf, long size, char direction = 0) { rawFilter(buf, size, (SWKey *)(long)direction); }// hack, use key as direction for enciphering // swcacher interface ---------------------- virtual void flush() { flushCache(); } diff --git a/include/zstr.h b/include/zstr.h index efcdf07..fc314e4 100644 --- a/include/zstr.h +++ b/include/zstr.h @@ -4,7 +4,7 @@ * and provides lookup and parsing functions based on * class StrKey * - * $Id: zstr.h,v 1.4 2002/07/28 01:48:38 scribe Exp $ + * $Id: zstr.h,v 1.5 2002/09/25 21:22:03 scribe Exp $ * * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org) * CrossWire Bible Society @@ -66,6 +66,7 @@ public: void getText(long index, char **idxbuf, char **buf); void setText(const char *ikey, const char *buf, long len = -1); void linkEntry(const char *destkey, const char *srckey); + virtual void rawZFilter(char *buf, long size, char direction = 0) {} static signed char createModule (const char *path); }; diff --git a/include/ztext.h b/include/ztext.h index 917d0d3..9e02622 100644 --- a/include/ztext.h +++ b/include/ztext.h @@ -2,7 +2,7 @@ * ztext.h - code for class 'zText'- a module that reads compressed text * files: ot and nt using indexs ??.vss * - * $Id: ztext.h,v 1.23 2002/07/28 01:48:38 scribe Exp $ + * $Id: ztext.h,v 1.25 2002/09/25 21:22:03 scribe Exp $ * * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org) * CrossWire Bible Society @@ -63,6 +63,8 @@ public: virtual void deleteEntry(); // Delete current module entry // end write interface ------------------------ + virtual void rawZFilter(char *buf, long size, char direction = 0) { rawFilter(buf, size, (SWKey *)(long)direction); }// hack, use key as direction for enciphering + // swcacher interface ---------------------- virtual void flush() { flushCache(); } // end swcacher interface ---------------------- diff --git a/include/zverse.h b/include/zverse.h index 02eec46..55aeea3 100644 --- a/include/zverse.h +++ b/include/zverse.h @@ -48,6 +48,7 @@ public: virtual ~zVerse(); void findoffset(char testmt, long idxoff, long *start, unsigned short *end); void zreadtext(char testmt, long start, unsigned short size, char *buf); + virtual void rawZFilter(char *buf, long size, char direction = 0) {} static char createModule(const char *path, int blockBound); }; diff --git a/locales.d/id.conf b/locales.d/id.conf index 1b9bfac..f0021ec 100644 --- a/locales.d/id.conf +++ b/locales.d/id.conf @@ -85,7 +85,7 @@ Revelation of John=Wahyu 1 PETRUS=60 1 PTR=60 1 RA=11 -1 RAJA=11 +1 RAJA-RAJA=11 1 SA=9 1 SAMUEL=9 1 TA=13 @@ -133,7 +133,7 @@ Revelation of John=Wahyu 2 PETRUS=61 2 PTR=61 2 RA=12 -2 RAJA=12 +2 RAJA-RAJA=12 2 SA=10 2 SAMUEL=10 2 TA=14 diff --git a/src/modules/comments/rawcom/rawcom.cpp b/src/modules/comments/rawcom/rawcom.cpp index f71b6ec..0f5396b 100644 --- a/src/modules/comments/rawcom/rawcom.cpp +++ b/src/modules/comments/rawcom/rawcom.cpp @@ -76,7 +76,9 @@ char *RawCom::getRawEntry() { *entrybuf = 0; readtext(key->Testament(), start, (size + 2), entrybuf); + entrybuf[size] = 0; + rawFilter(entrybuf, size, 0); // hack, decipher rawFilter(entrybuf, size, key); if (!isUnicode()) diff --git a/src/modules/common/rawverse.cpp b/src/modules/common/rawverse.cpp index f77fbe5..60b050b 100644 --- a/src/modules/common/rawverse.cpp +++ b/src/modules/common/rawverse.cpp @@ -199,7 +199,7 @@ void RawVerse::preptext(char *buf) */ void RawVerse::readtext(char testmt, long start, unsigned short size, char *buf) { - memset(buf, 0, size+1); + memset(buf, 0, size); if (!testmt) testmt = ((idxfp[1]) ? 1:2); if (size) { diff --git a/src/modules/common/zstr.cpp b/src/modules/common/zstr.cpp index cd1add5..972bc50 100644 --- a/src/modules/common/zstr.cpp +++ b/src/modules/common/zstr.cpp @@ -426,6 +426,9 @@ void zStr::getCompressedText(long block, long entry, char **buf) { flushCache(); unsigned long len = size; + + rawZFilter(*buf, len, 0); // 0 = decipher + compressor->zBuf(&len, *buf); char * rawBuf = compressor->Buf(0, &len); cacheBlock = new EntriesBlock(rawBuf, len); @@ -610,6 +613,10 @@ void zStr::flushCache() { compressor->Buf(rawBuf, &size); compressor->zBuf(&size); + char *buf = new char [ size * 2 ]; + memcpy(buf, compressor->zBuf(&size), size); // 1 = encipher + rawZFilter(buf, size, 1); // 1 = encipher + long zdxSize = lseek(zdxfd->getFd(), 0, SEEK_END); long zdtSize = lseek(zdtfd->getFd(), 0, SEEK_END); @@ -640,8 +647,7 @@ void zStr::flushCache() { lseek(zdxfd->getFd(), cacheBlockIndex * ZDXENTRYSIZE, SEEK_SET); lseek(zdtfd->getFd(), start, SEEK_SET); - rawBuf = compressor->zBuf(&size); - write(zdtfd->getFd(), rawBuf, size); + write(zdtfd->getFd(), buf, size); // add a new line to make data file easier to read in an editor write(zdtfd->getFd(), &nl, 2); diff --git a/src/modules/common/zverse.cpp b/src/modules/common/zverse.cpp index 600a317..e4c04cf 100644 --- a/src/modules/common/zverse.cpp +++ b/src/modules/common/zverse.cpp @@ -228,6 +228,9 @@ void zVerse::findoffset(char testmt, long idxoff, long *start, unsigned short *s printf ("Error reading compressed text\n"); return; } + + rawZFilter(pcCompText, ulCompSize, 0); // 0 = decipher + compressor->zBuf(&ulCompSize, pcCompText); if (cacheBuf) { @@ -326,28 +329,38 @@ void zVerse::flushCache() { unsigned long zsize, outzsize; idxoff = cacheBufIdx * 12; - size = outsize = zsize = outzsize = strlen(cacheBuf); - if (size) { -// if (compressor) { -// delete compressor; -// compressor = new LZSSCompress(); -// } - compressor->Buf(cacheBuf); - compressor->zBuf(&zsize); - outzsize = zsize; - - start = outstart = lseek(textfp[cacheTestament-1]->getFd(), 0, SEEK_END); - - outstart = archtosword32(start); - outsize = archtosword32(size); - outzsize = archtosword32(zsize); - - write(textfp[cacheTestament-1]->getFd(), compressor->zBuf(&zsize), zsize); - - lseek(idxfp[cacheTestament-1]->getFd(), idxoff, SEEK_SET); - write(idxfp[cacheTestament-1]->getFd(), &outstart, 4); - write(idxfp[cacheTestament-1]->getFd(), &outzsize, 4); - write(idxfp[cacheTestament-1]->getFd(), &outsize, 4); + if (cacheBuf) { + size = outsize = zsize = outzsize = strlen(cacheBuf); + if (size) { + // if (compressor) { + // delete compressor; + // compressor = new LZSSCompress(); + // } + compressor->Buf(cacheBuf); + compressor->zBuf(&zsize); + outzsize = zsize; + + char *buf = new char [ zsize * 2 ]; + memcpy(buf, compressor->zBuf(&zsize), zsize); + rawZFilter(buf, zsize, 1); // 1 = encipher + + start = outstart = lseek(textfp[cacheTestament-1]->getFd(), 0, SEEK_END); + + outstart = archtosword32(start); + outsize = archtosword32(size); + outzsize = archtosword32(zsize); + + write(textfp[cacheTestament-1]->getFd(), buf, zsize); + + delete [] buf; + + lseek(idxfp[cacheTestament-1]->getFd(), idxoff, SEEK_SET); + write(idxfp[cacheTestament-1]->getFd(), &outstart, 4); + write(idxfp[cacheTestament-1]->getFd(), &outzsize, 4); + write(idxfp[cacheTestament-1]->getFd(), &outsize, 4); + } + free(cacheBuf); + cacheBuf = 0; } dirtyCache = false; } diff --git a/src/modules/filters/cipherfil.cpp b/src/modules/filters/cipherfil.cpp index ad55396..ddb97b1 100644 --- a/src/modules/filters/cipherfil.cpp +++ b/src/modules/filters/cipherfil.cpp @@ -28,11 +28,17 @@ char CipherFilter::ProcessText(char *text, int maxlen, const SWKey *key, const S unsigned int len; // len = strlen(text); len = maxlen; - if (len > 0) { - cipher->cipherBuf(&len, text); - strncpy(text, cipher->Buf(), (len < (unsigned int)maxlen) ? len : maxlen); - } - text[maxlen] = 0; - text[maxlen+1] = 0; + if (len > 0) { + if (!key) { // hack, using key to determine encipher, or decipher + cipher->cipherBuf(&len, text); + memcpy(text, cipher->Buf(), (len < (unsigned int)(maxlen)) ? len : maxlen); + } + else if ((unsigned long)key == 1) { + cipher->Buf(text, len); + cipher->cipherBuf(&len); + memcpy(text, cipher->cipherBuf(&len), (len < (unsigned int)(maxlen)) ? len : maxlen); + } + } +// text[maxlen] = 0; return 0; } diff --git a/src/modules/filters/latin1utf16.cpp b/src/modules/filters/latin1utf16.cpp index 75ee998..7bbcafb 100644 --- a/src/modules/filters/latin1utf16.cpp +++ b/src/modules/filters/latin1utf16.cpp @@ -18,7 +18,9 @@ char Latin1UTF16::ProcessText(char *text, int maxlen, const SWKey *key, const SW unsigned char *from; unsigned short *to; int len; - + if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering + return -1; + len = strlen(text) + 1; // shift string to right of buffer if (len < maxlen) { memmove(&text[maxlen - len], text, len); diff --git a/src/modules/filters/latin1utf8.cpp b/src/modules/filters/latin1utf8.cpp index 91af8dc..2a76306 100644 --- a/src/modules/filters/latin1utf8.cpp +++ b/src/modules/filters/latin1utf8.cpp @@ -18,7 +18,8 @@ char Latin1UTF8::ProcessText(char *text, int maxlen, const SWKey *key, const SWM { unsigned char *to, *from; int len; - + if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering + return -1; len = strlen(text) + 1; if (len == maxlen + 1) maxlen = (maxlen + 1) * FILTERPAD; diff --git a/src/modules/filters/scsuutf8.cpp b/src/modules/filters/scsuutf8.cpp index d0d5ceb..15fd015 100644 --- a/src/modules/filters/scsuutf8.cpp +++ b/src/modules/filters/scsuutf8.cpp @@ -64,6 +64,8 @@ char SCSUUTF8::ProcessText(char *text, int len, const SWKey *key, const SWModule unsigned char *to, *from; unsigned long buflen = len * FILTERPAD; char active = 0, mode = 0; + if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering + return -1; static unsigned short start[8] = {0x0000,0x0080,0x0100,0x0300,0x2000,0x2080,0x2100,0x3000}; static unsigned short slide[8] = {0x0080,0x00C0,0x0400,0x0600,0x0900,0x3040,0x30A0,0xFF00}; diff --git a/src/modules/filters/utf16utf8.cpp b/src/modules/filters/utf16utf8.cpp index 5a7719f..aa4215b 100644 --- a/src/modules/filters/utf16utf8.cpp +++ b/src/modules/filters/utf16utf8.cpp @@ -21,6 +21,8 @@ char UTF16UTF8::ProcessText(char *text, int maxlen, const SWKey *key, const SWMo int len; unsigned long uchar; unsigned short schar; + if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering + return -1; len = 0; from = (unsigned short*) text; diff --git a/src/modules/filters/utf8arshaping.cpp b/src/modules/filters/utf8arshaping.cpp index 5121f48..4427e62 100644 --- a/src/modules/filters/utf8arshaping.cpp +++ b/src/modules/filters/utf8arshaping.cpp @@ -28,6 +28,8 @@ UTF8arShaping::~UTF8arShaping() { char UTF8arShaping::ProcessText(char *text, int maxlen, const SWKey *key, const SWModule *module) { UChar *ustr, *ustr2; + if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering + return -1; int32_t len = strlen(text); ustr = new UChar[len]; diff --git a/src/modules/filters/utf8bidireorder.cpp b/src/modules/filters/utf8bidireorder.cpp index 8fa7280..bdaae52 100644 --- a/src/modules/filters/utf8bidireorder.cpp +++ b/src/modules/filters/utf8bidireorder.cpp @@ -28,6 +28,8 @@ UTF8BiDiReorder::~UTF8BiDiReorder() { char UTF8BiDiReorder::ProcessText(char *text, int maxlen, const SWKey *key, const SWModule *module) { UChar *ustr, *ustr2; + if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering + return -1; int32_t len = strlen(text); ustr = new UChar[len]; //each char could become a surrogate pair diff --git a/src/modules/filters/utf8html.cpp b/src/modules/filters/utf8html.cpp index 7487815..f337698 100644 --- a/src/modules/filters/utf8html.cpp +++ b/src/modules/filters/utf8html.cpp @@ -19,6 +19,8 @@ char UTF8HTML::ProcessText(char *text, int maxlen, const SWKey *key, const SWMod int len; char digit[10]; unsigned long ch; + if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering + return -1; len = strlenw(text) + 2; // shift string to right of buffer if (len < maxlen) { diff --git a/src/modules/filters/utf8latin1.cpp b/src/modules/filters/utf8latin1.cpp index 6cc1acd..07299fe 100644 --- a/src/modules/filters/utf8latin1.cpp +++ b/src/modules/filters/utf8latin1.cpp @@ -22,6 +22,8 @@ char UTF8Latin1::ProcessText(char *text, int maxlen, const SWKey *key, const SWM unsigned long uchar; unsigned char significantFirstBits, subsequent; + if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering + return -1; len = strlen(text) + 1; // shift string to right of buffer if (len < maxlen) { memmove(&text[maxlen - len], text, len); diff --git a/src/modules/filters/utf8nfc.cpp b/src/modules/filters/utf8nfc.cpp index df9e090..861a291 100644 --- a/src/modules/filters/utf8nfc.cpp +++ b/src/modules/filters/utf8nfc.cpp @@ -25,6 +25,8 @@ UTF8NFC::~UTF8NFC() { char UTF8NFC::ProcessText(char *text, int maxlen, const SWKey *key, const SWModule *module) { + if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering + return -1; int32_t len = strlen(text) * 2; source = new UChar[len + 1]; //each char could become a surrogate pair diff --git a/src/modules/filters/utf8nfkd.cpp b/src/modules/filters/utf8nfkd.cpp index 450cbbf..d790266 100644 --- a/src/modules/filters/utf8nfkd.cpp +++ b/src/modules/filters/utf8nfkd.cpp @@ -25,6 +25,8 @@ UTF8NFKD::~UTF8NFKD() { char UTF8NFKD::ProcessText(char *text, int maxlen, const SWKey *key, const SWModule *module) { + if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering + return -1; int32_t len = strlen(text) * 2; source = new UChar[len + 1]; //each char could become a surrogate pair diff --git a/src/modules/filters/utf8utf16.cpp b/src/modules/filters/utf8utf16.cpp index 9aea6fe..33248a9 100644 --- a/src/modules/filters/utf8utf16.cpp +++ b/src/modules/filters/utf8utf16.cpp @@ -23,6 +23,8 @@ char UTF8UTF16::ProcessText(char *text, int maxlen, const SWKey *key, const SWMo unsigned char significantFirstBits, subsequent; unsigned short schar; + if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering + return -1; len = strlen(text) + 1; // shift string to right of buffer if (len < maxlen) { memmove(&text[maxlen - len], text, len); diff --git a/src/modules/genbook/rawgenbook/rawgenbook.cpp b/src/modules/genbook/rawgenbook/rawgenbook.cpp index e22532a..89367b5 100644 --- a/src/modules/genbook/rawgenbook/rawgenbook.cpp +++ b/src/modules/genbook/rawgenbook/rawgenbook.cpp @@ -112,7 +112,9 @@ char *RawGenBook::getRawEntry() { *entryBuf = 0; lseek(bdtfd->getFd(), offset, SEEK_SET); read(bdtfd->getFd(), entryBuf, size); + entryBuf[size] = 0; + rawFilter(entryBuf, size, 0); // hack, decipher rawFilter(entryBuf, size, key); if (!isUnicode()) diff --git a/src/modules/lexdict/rawld/rawld.cpp b/src/modules/lexdict/rawld/rawld.cpp index 058679a..2e5c90a 100644 --- a/src/modules/lexdict/rawld/rawld.cpp +++ b/src/modules/lexdict/rawld/rawld.cpp @@ -90,6 +90,8 @@ char RawLD::getEntry(long away) if (!(retval = findoffset(buf, &start, &size, away))) { readtext(start, &size, &idxbuf, &entrybuf); + rawFilter(entrybuf, size, 0); // hack, decipher + rawFilter(entrybuf, size, key); entrySize = size; // support getEntrySize call if (!key->Persist()) // If we have our own key *key = idxbuf; // reset it to entry index buffer diff --git a/src/modules/lexdict/rawld4/rawld4.cpp b/src/modules/lexdict/rawld4/rawld4.cpp index 1bdf22f..435767d 100644 --- a/src/modules/lexdict/rawld4/rawld4.cpp +++ b/src/modules/lexdict/rawld4/rawld4.cpp @@ -91,6 +91,8 @@ char RawLD4::getEntry(long away) *entrybuf = 0; if (!(retval = findoffset(buf, &start, &size, away))) { readtext(start, &size, &idxbuf, &entrybuf); + rawFilter(entrybuf, size, 0); // hack, decipher + rawFilter(entrybuf, size, key); entrySize = size; // support getEntrySize call if (!key->Persist()) // If we have our own key *key = idxbuf; // reset it to entry index buffer diff --git a/src/modules/lexdict/zld/zld.cpp b/src/modules/lexdict/zld/zld.cpp index 047effa..f444f61 100644 --- a/src/modules/lexdict/zld/zld.cpp +++ b/src/modules/lexdict/zld/zld.cpp @@ -93,6 +93,8 @@ char zLD::getEntry(long away) { entrybuf = new char [ size * FILTERPAD ]; strcpy(entrybuf, ebuf); + rawFilter(entrybuf, size, key); + entrySize = size; // support getEntrySize call if (!key->Persist()) // If we have our own key *key = idxbuf; // reset it to entry index buffer diff --git a/src/modules/texts/rawtext/rawtext.cpp b/src/modules/texts/rawtext/rawtext.cpp index cfaaa37..489ea1c 100644 --- a/src/modules/texts/rawtext/rawtext.cpp +++ b/src/modules/texts/rawtext/rawtext.cpp @@ -105,10 +105,12 @@ char *RawText::getRawEntry() { *entrybuf = 0; readtext(key->Testament(), start, (size + 2), entrybuf); + entrybuf[size] = 0; + rawFilter(entrybuf, size, 0); // hack, decipher rawFilter(entrybuf, size, key); - if (!isUnicode()) + if (!isUnicode()) preptext(entrybuf); if (this->key != key) // free our key if we created a VerseKey diff --git a/src/modules/texts/ztext/ztext.cpp b/src/modules/texts/ztext/ztext.cpp index c774693..77a45b1 100644 --- a/src/modules/texts/ztext/ztext.cpp +++ b/src/modules/texts/ztext/ztext.cpp @@ -60,50 +60,10 @@ zText::~zText() char *zText::getRawEntry() { -/* - long start; - unsigned long size; - unsigned long destsize; - char *tmpbuf; - char *dest; - VerseKey *lkey = (VerseKey *) SWModule::key; - char sizebuf[3]; - - lkey->Verse(0); - if (chapcache != lkey->Index()) { - findoffset(lkey->Testament(), lkey->Index(), &start, &((unsigned short) size)); - readtext(lkey->Testament(), start, 3, sizebuf); - memcpy(&size, sizebuf, 2); - tmpbuf = new char [ size + 1 ]; - readtext(lkey->Testament(), start + 2, size + 1 , tmpbuf); - //zBuf(&size, tmpbuf); - dest = new char [ (size*4) + 1 ]; - uncompress((Bytef *)dest, &destsize, (Bytef *) tmpbuf, size); - chapcache = lkey->Index(); - delete [] tmpbuf; - } - - //findoffset(key->Testament(), key->Index(), &start, &size); - findoffset(lkey->Testament(), lkey->Index(), &start, &((unsigned short) size)); - - if (versebuf) - delete [] versebuf; - versebuf = new char [ size + 1 ]; - //memcpy(versebuf, Buf(), size); - memcpy(versebuf, dest, destsize); - delete [] dest; - - preptext(versebuf); - - return versebuf; -*/ - long start = 0; unsigned short size = 0; VerseKey *key = 0; - //printf ("zText char *\n"); - // see if we have a VerseKey * or decendant try { key = SWDYNAMIC_CAST(VerseKey, this->key); @@ -113,12 +73,9 @@ char *zText::getRawEntry() if (!key) key = new VerseKey(this->key); - //printf ("checking cache\n"); - //printf ("finding offset\n"); findoffset(key->Testament(), key->Index(), &start, &size); entrySize = size; // support getEntrySize call - //printf ("deleting previous buffer\n"); unsigned long newsize = (size + 2) * FILTERPAD; if (newsize > entrybufallocsize) { if (entrybuf) @@ -128,22 +85,17 @@ char *zText::getRawEntry() } *entrybuf = 0; - //printf ("getting text\n"); zreadtext(key->Testament(), start, (size + 2), entrybuf); - //printf ("got text\n"); rawFilter(entrybuf, size, key); - //printf ("preparing text\n"); - if (!isUnicode()) + if (!isUnicode()) preptext(entrybuf); if (this->key != key) // free our key if we created a VerseKey delete key; - //printf ("returning text\n"); return entrybuf; - } diff --git a/usrinst.sh b/usrinst.sh index e050616..81680e2 100755 --- a/usrinst.sh +++ b/usrinst.sh @@ -1,6 +1,6 @@ #!/bin/sh -./configure --prefix=/usr \ +CPPFLAGS=-DUSBINARY ./configure --prefix=/usr \ --disable-shared --enable-debug --without-conf --sysconfdir=/etc --with-vcl \ $* diff --git a/utilities/bcppmake/cipherraw.bpr b/utilities/bcppmake/cipherraw.bpr index b2e0df9..f2587c2 100644 --- a/utilities/bcppmake/cipherraw.bpr +++ b/utilities/bcppmake/cipherraw.bpr @@ -26,7 +26,7 @@ - + @@ -91,9 +91,10 @@ Count=1 Item0=$(BCB)\source\vcl [HistoryLists\hlConditionals] -Count=2 -Item0=_ICU_;_ICUSWORD_ -Item1=_DEBUG +Count=3 +Item0=_ICU_;_ICUSWORD_;USBINARY +Item1=_ICU_;_ICUSWORD_ +Item2=_DEBUG [Debugging] DebugSourceDirs=$(BCB)\source\vcl diff --git a/utilities/bcppmake/libsword.bpr b/utilities/bcppmake/libsword.bpr index 4fad418..22a1d97 100644 --- a/utilities/bcppmake/libsword.bpr +++ b/utilities/bcppmake/libsword.bpr @@ -99,7 +99,7 @@ - + @@ -108,10 +108,9 @@ - - - + + + @@ -168,10 +167,11 @@ Count=1 Item0=$(BCB)\source\vcl [HistoryLists\hlConditionals] -Count=3 -Item0=_ICU_;_ICUSWORD_;_DEBUG +Count=4 +Item0=_ICU_;_ICUSWORD_;USBINARY Item1=_ICU_;_ICUSWORD_ -Item2=_DEBUG +Item2=_ICU_;_ICUSWORD_;_DEBUG +Item3=_DEBUG [HistoryLists\hlTlibPageSize] Count=5 @@ -194,7 +194,7 @@ RemoteDebug=0 [Compiler] ShowInfoMsgs=0 LinkDebugVcl=0 -LinkCGLIB=1 +LinkCGLIB=0 [Language] ActiveLang= diff --git a/utilities/bcppmake/mkfastmod.bpr b/utilities/bcppmake/mkfastmod.bpr index 2bfe89f..cef648d 100644 --- a/utilities/bcppmake/mkfastmod.bpr +++ b/utilities/bcppmake/mkfastmod.bpr @@ -74,15 +74,17 @@ ProductVersion=1.0.0.0 Comments= [HistoryLists\hlIncludePath] -Count=3 -Item0=..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl -Item1=..;..\..\include;$(BCB)\include;$(BCB)\include\vcl -Item2=..;$(BCB)\include;$(BCB)\include\vcl +Count=4 +Item0=..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl +Item1=..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl +Item2=..;..\..\include;$(BCB)\include;$(BCB)\include\vcl +Item3=..;$(BCB)\include;$(BCB)\include\vcl [HistoryLists\hlLibraryPath] -Count=2 -Item0=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib -Item1=..;$(BCB)\lib\obj;$(BCB)\lib +Count=3 +Item0=..\;..;$(BCB)\lib\obj;$(BCB)\lib +Item1=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib +Item2=..;$(BCB)\lib\obj;$(BCB)\lib [HistoryLists\hlDebugSourcePath] Count=1 diff --git a/utilities/bcppmake/mod2vpl.bpr b/utilities/bcppmake/mod2vpl.bpr index fe6c102..b6981df 100644 --- a/utilities/bcppmake/mod2vpl.bpr +++ b/utilities/bcppmake/mod2vpl.bpr @@ -74,15 +74,17 @@ ProductVersion=1.0.0.0 Comments= [HistoryLists\hlIncludePath] -Count=3 -Item0=..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl -Item1=..;..\..\include;$(BCB)\include;$(BCB)\include\vcl -Item2=..;$(BCB)\include;$(BCB)\include\vcl +Count=4 +Item0=..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl +Item1=..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl +Item2=..;..\..\include;$(BCB)\include;$(BCB)\include\vcl +Item3=..;$(BCB)\include;$(BCB)\include\vcl [HistoryLists\hlLibraryPath] -Count=2 -Item0=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib -Item1=..;$(BCB)\lib\obj;$(BCB)\lib +Count=3 +Item0=..\;..;$(BCB)\lib\obj;$(BCB)\lib +Item1=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib +Item2=..;$(BCB)\lib\obj;$(BCB)\lib [HistoryLists\hlDebugSourcePath] Count=1 @@ -97,7 +99,7 @@ Item1=_DEBUG DebugSourceDirs=$(BCB)\source\vcl [Parameters] -RunParams= +RunParams=RWP ./ 3 2 abc HostApplication= RemoteHost= RemotePath= diff --git a/utilities/bcppmake/mod2zmod.bpr b/utilities/bcppmake/mod2zmod.bpr index f388f91..de1a8f7 100644 --- a/utilities/bcppmake/mod2zmod.bpr +++ b/utilities/bcppmake/mod2zmod.bpr @@ -26,7 +26,7 @@ - + @@ -91,15 +91,17 @@ Count=1 Item0=$(BCB)\source\vcl [HistoryLists\hlConditionals] -Count=2 -Item0=_ICU_;_ICUSWORD_ -Item1=_DEBUG +Count=4 +Item0=_ICU_;_ICUSWORD_;USBINARY +Item1=_ICU_;_ICUSWORD_ +Item2=_ICU_;_ICUSWORD_;_DEBUG +Item3=_DEBUG [Debugging] DebugSourceDirs=$(BCB)\source\vcl [Parameters] -RunParams= +RunParams=RWP ./ 3 2 abc HostApplication= RemoteHost= RemotePath= diff --git a/utilities/bcppmake/thml2gbs.bpr b/utilities/bcppmake/thml2gbs.bpr index 0447081..3ba21c6 100644 --- a/utilities/bcppmake/thml2gbs.bpr +++ b/utilities/bcppmake/thml2gbs.bpr @@ -26,7 +26,7 @@ - + @@ -36,12 +36,11 @@ - - + + - - + + @@ -96,8 +95,8 @@ Item0=$(BCB)\source\vcl [HistoryLists\hlConditionals] Count=3 -Item0=_ICU_;_ICUSWORD_;_DEBUG -Item1=_ICU_;_ICUSWORD_ +Item0=_ICU_;_ICUSWORD_ +Item1=_ICU_;_ICUSWORD_;_DEBUG Item2=_DEBUG [Debugging] @@ -115,11 +114,6 @@ ShowInfoMsgs=0 LinkDebugVcl=0 LinkCGLIB=0 -[CORBA] -AddServerUnit=1 -AddClientUnit=1 -PrecompiledHeaders=1 - [Language] ActiveLang= ProjectLang= diff --git a/utilities/bcppmake/utilities.bpg b/utilities/bcppmake/utilities.bpg index 1fcc1c1..b68ef5e 100644 --- a/utilities/bcppmake/utilities.bpg +++ b/utilities/bcppmake/utilities.bpg @@ -9,8 +9,8 @@ MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** DCC = $(ROOT)\bin\dcc32.exe $** BRCC = $(ROOT)\bin\brcc32.exe $** #------------------------------------------------------------------------------ -PROJECTS = libsword.lib mod2vpl.exe vpl2mod.exe mkfastmod.exe imp2gbs.exe \ - imp2ld.exe imp2vs.exe thml2gbs.exe mod2zmod.exe mod2imp.exe cipherraw.exe \ +PROJECTS = libsword.lib mod2zmod.exe mod2vpl.exe vpl2mod.exe mkfastmod.exe \ + imp2gbs.exe imp2ld.exe imp2vs.exe thml2gbs.exe mod2imp.exe cipherraw.exe \ stepdump.exe step2vpl.exe mod2osis.exe #------------------------------------------------------------------------------ default: $(PROJECTS) diff --git a/utilities/bcppmake/vpl2mod.bpr b/utilities/bcppmake/vpl2mod.bpr index 54810be..4cb048a 100644 --- a/utilities/bcppmake/vpl2mod.bpr +++ b/utilities/bcppmake/vpl2mod.bpr @@ -74,15 +74,16 @@ ProductVersion=1.0.0.0 Comments= [HistoryLists\hlIncludePath] -Count=3 -Item0=..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl -Item1=..;..\..\include;$(BCB)\include;$(BCB)\include\vcl -Item2=..\..\utilities;$(BCB)\include;$(BCB)\include\vcl +Count=4 +Item0=..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl +Item1=..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl +Item2=..;..\..\include;$(BCB)\include;$(BCB)\include\vcl +Item3=..\..\utilities;$(BCB)\include;$(BCB)\include\vcl [HistoryLists\hlLibraryPath] Count=3 -Item0=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib -Item1=..\;..;$(BCB)\lib\obj;$(BCB)\lib +Item0=..\;..;$(BCB)\lib\obj;$(BCB)\lib +Item1=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib Item2=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib [HistoryLists\hlDebugSourcePath] diff --git a/utilities/mod2zmod.cpp b/utilities/mod2zmod.cpp index 7d64b54..de7a3e3 100644 --- a/utilities/mod2zmod.cpp +++ b/utilities/mod2zmod.cpp @@ -19,11 +19,12 @@ #include #include #include +#include void errorOutHelp(char *appName) { cerr << appName << " - a tool to create compressed Sword modules\n"; cerr << "version 0.1\n\n"; - cerr << "usage: "<< appName << " [blockType [compressType]]\n\n"; + cerr << "usage: "<< appName << " [blockType [compressType [cipherKey]]]\n\n"; cerr << "datapath: the directory in which to write the zModule\n"; cerr << "blockType : (default 4)\n\t2 - verses\n\t3 - chapters\n\t4 - books\n"; cerr << "compressType: (default 1):\n\t1 - LZSS\n\t2 - Zip\n"; @@ -36,12 +37,13 @@ int main(int argc, char **argv) { int iType = 4; int compType = 1; + string cipherKey = ""; SWCompress *compressor = 0; SWModule *inModule = 0; SWModule *outModule = 0; - if ((argc < 3) || (argc > 5)) { + if ((argc < 3) || (argc > 6)) { errorOutHelp(argv[0]); } @@ -49,6 +51,9 @@ int main(int argc, char **argv) iType = atoi(argv[3]); if (argc > 4) { compType = atoi(argv[4]); + if (argc > 5) { + cipherKey = argv[5]; + } } } @@ -115,6 +120,11 @@ int main(int argc, char **argv) break; } + if (!cipherKey.empty()) { + SWFilter *cipherFilter = new CipherFilter(cipherKey.c_str()); + outModule->AddRawFilter(cipherFilter); + } + string lastBuffer = "Something that would never be first module entry"; SWKey bufferKey; SWKey lastBufferKey; @@ -153,7 +163,7 @@ int main(int argc, char **argv) } (*inModule)++; } - delete outModuleKey; delete outModule; + delete outModuleKey; } -- cgit