API ChangeLog (see the ChangeLog in each 'apps' directory for app specific changes 28-Sep-2002 Troy A. Griffitts Added SWModule::Index and SWCom and SWText impls * Release 1.5.4 * 25-Sep-2002 Troy A. Griffitts Fixed zverse zstr zcom ztext zld to work with cipher Added cipher key to mod2zmod 27-Aug-2002 Troy A. Griffitts Added Nikolay Igotti's logic for improved non-western locale functionality Fixed mod2zmod to work properly with headings Fixed cheatah to allow heading texts like 'Mat 0:0' 08-Aug-2002 Troy A. Griffitts Added support for new entry in /etc/sword.conf [Install] AugmentPath=/where/ever multiple entries can exist. 31-Jul-2002 Daniel Glassey Minor change to use iostream not iostream.h (more gcc3) 31-Jul-2002 Troy A. Griffitts Fixed FileMgr::trunc if trunc should be empty was leaving a 1 byte (null) file, instead of empty. 30-Jul-2002 Troy A. Griffitts Fixed zLD link bug where resolving incorrectly skipped IDXENTRYSIZE instead of 6 ("@LINK "). Fixed RawLD link errors. Allocate buffer for RawStr* drivers in readtext to allow realloc if link 29-Jul-2002 Victor Porton Fixed RawLD and RawLD4 drivers not reporting errors in getRawEntry() 28-Jul-2002 Troy A. Griffitts Added Gregor Anzelj's Slovenian (sl.conf) locale. 27-Jul-2002 Troy A. Griffitts lex/dict drivers use new toupperstr_utf8 to allow keys to be encoded in utf8 (hopefully will allow cedict to be built/work correctly. Added toupperstr_utf8 to utilstr.cpp Make all operators have real name methods Isolated SWModule operators in define Fixed RawLD and RawLD4 drivers where there was a blank entry created at the beginning Added test lextest Consolidated setPosition for lexicons in SWLD 16-Jul-2002 Daniel Glassey utf8transliterator now loads translators from local sword ICU data on demand SWMgr loads a UTF8Transliterator filter along with other filters on Load 11-Jul-2002 Daniel Glassey simple fixes to allow compiling with gcc 3.1 rename gettext to readtext as unobtrusively as possible. fix BGreek_Greek trans to work with icu2.1 add SWMgr::isICU for apps to check if ICU stuff is available 10-Jul-2002 Daniel Glassey Initial support for using sword transliterators with offical ICU 24-Jun-2002 Troy A. Griffitts Added a few english abbrevs to better parse BW exported texts. Added Error() raised on improperly parsed VerseKey text. 22-Jun-2002 Daniel Glassey Fixes to allow compiling with gcc3 add configure support to libVCL and change X!/installmgr to build it automatically remove --enable-vcl from core sword 13-Jun-2002 Troy A. Griffitts Fixed Module heading bug Fixed SWConfig += bug again Fixed SWModule size logic when getEntrySize returns -1 06-Jun-2002 Troy A. Griffitts Fixed SWConfig += bug Added Efata's Indonesian locale 09-Jun-2002 Joachim Ansorg Added Perl bindings by J. Kaiser to the CVS 06-Jun-2002 Troy A. Griffitts Added Dominique Corbex' fr locale updates Added new resultBuffer protected member to SWBasicFilter 04-Apr-2002 Troy A. Griffitts Added VerseKey::getOSISRef() Added the beginnings of ThMLOSIS filter 02-Apr-2002 Troy A. Griffitts Added gsoap bindings and test client. Added gbfstrongs parsing of entry attributes 30-Mar-2002 Troy A. Griffitts Added mod2imp to export a sword module in 'imp' format Better entry attribute parsing in greekdef* and thmlstrongs* 22-Mar-2002 Troy A. Griffitts Added Saulo Rodrigues e Silva's locale for pt_BR Added entry attributes for Thayer and ThMLStrongs (which includes morph also) * Release 1.5.3 * 22-Mar-2002 Troy A. Griffitts Updated make system to display better user output Updated 'readme'-type files Added make install_config 21-Mar-2002 Troy A. Griffitts Changed SWMgr::Load ONE MORE TIME (blame Osk) to return signed char for mac ppc to work correctly 19-Mar-2002 Troy A. Griffitts Changed SWMgr::Load to return char status to be more consistent with rest of api. Sorry guys. Added Daniel Glassey's patch to build diatheke Added new entryAttributes mechanism to SWModule Added new LocalOptionFilter GreekLexAttribs 18-Mar-2002 Troy A. Griffitts Added ChrisLit's Diatheke, BibleCS, and InstallMgr updates Fixed Joachim's bug report about TreeKeyIdx segfaulting if no data at DataPath Added Joachim's patch to remove throw in SWMgr::Load 16-Mar-2002 Troy A. Griffitts Added Martin Gruner's suggestion to swmgr to look for global configuration in multiple location. Set default to: /etc/sword.conf:/usr/local/etc/sword.conf Added ChrisLit's msvc and diatheke patches 15-Mar-2002 Troy A. Griffitts Added SWCacher to lib and made SWModule impl it Added SWModule::setSkipConsecutiveLinks Fixed mod2zmod to catch links Fixed TOP to position to first entry, not say Gen1:1 Fixed bug in rawverse in logic when index is out of bnds. Added DTrotz' fix for CBuilder6 14-Mar-2002 Troy A. Griffitts Changed all make system files to dglassey's ./configure autotool system Applied ChrisLit's patch for macosx 12-Mar-2002 Troy A. Griffitts Added new option to filemgr open to allow downgrade of access from rdwr to rdonly. Removed code that actually opens files from most driver's constructors. Changed isWritable to actually return true only if the user has write permission to the files. 11-Mar-2002 Troy A. Griffitts Added David White's recommendation to cache strlen in stdstr to improve performance. Added Helmer Krämer's fix for case insensitive code in SWBasicFilter 04-Mar-2002 Troy A. Griffitts Added new multimapwithdefault::has(K, V) method to allow a call like module->getConfig().has("Feature", "HebrewDefs") Fixed VerseKey parse bug that didn't work with a locale other than the sysLocaleMgr locale. Added VerseKey::getLocale() Changed SWText subclasses to work like SWCom subclasses, in that they increment to next valid entry on ++ 03-Mar-2002 Troy A. Griffitts Added image support to thmlhtml and thmlhtmlhref filters Added dynamic entry "AbsoluteDataPath" to module config information Fixed an error in the new SWModule::getConfig* methods that tbiggs pointed out with .sword 01-Mar-2002 Troy A. Griffitts Added Helmer Krämer's speed improvements to SWModule for multiword searches Fixed RawGenBook memory bugs Isolated all byte swapping logic to sysdata.h Changed BIGENDIAN to SWBIGENDIAN 27-Feb-2002 Troy A. Griffitts Commited tbiggs' update to thmlhtmlhref.cpp Commited dglassey's update to make system Fixed SWModule to allow setting it's own key back to itself 26-Feb-2002 Troy A. Griffitts Added chrislit's update imp2gbs and new imp2vs and new imp2ld Make mod2zmod work with modules other than verse keyed modules Fixed zLD Added SWModule::getConfig and SWModule::getConfigEntry and made SWMgr call new SWModlue::setConfig 25-Feb-2002 Troy A. Griffitts Added chrislit's new gbs tools: utilities/thml2gbs utilities/imp2gbs 18-Feb-2002 Troy A. Griffitts Added dglassey's conditional reallocation of entrybuf to drivers Added dglassey's update to makesystem for icu Added other optimizations for prep of 1.5.3 16-Feb-2002 Troy A. Griffitts Added getBookName and getBookAbbrev to VerseKey along with struct book :: prefAbbrev member and data 24-Jan-2002 Troy A. Griffitts Added TreeKey and TreeKeyIdx decendants Added SWGenBook, and RawGenBook general book support and test programs 04-Jan-2002 Troy A. Griffitts Happy B-Day MOM! Added new property in Makefile.cfg: globalconfdir defaulted to /etc 20-Dec-2001 Troy A. Griffitts Added first cut of zLD 13-Dec-2001 Troy A. Griffitts Added __u16, __u32, and __u64 raw data types Added byte swapping macros Added standard swordtoarch and archtosword macros in 16, 32, and 64 bit versions Added remove to entriesblk Added tests for byte swapping 08-Dec-2001 Troy A. Griffitts Added new SWInputMethod class for keyboard mapping support. Added null input method which returns what it gets Added Hebrew Michigan-Claremont input method 02-Sep-2001 Troy A. Griffitts Added new swbasicfilter.cpp that provides many common method needed to make an swfilter implementation. Changed ThMLHTML filter to extend SWBasicFilter to take advantage of the new class. Added new utilstr.cpp method toupperstr to convert a c_str to all uppercase. Added new methods to the key classes to provide non-operator methods to access features to which there were non previously. Makes other language bindings much easier to produce. * Release 1.5.2 * 26-Jul-2001 Troy A. Griffitts Applied Tom Wildsmith's patches to cheatah: cleaned up displaying of marked up texts; added nice about box with module about info; handled errors better on startup 27-Jun-2001 Troy A. Griffitts Added roman numeral support in VerseKey parsing Fixed a number of memory bugs 20-Jun-2001 Troy A. Griffitts Packaging up for 1.5.2 Fixed mod2zmod linking bug 11-Jun-2001 Troy A. Griffitts Added limited unicode support Added French locale from Dominique Corbex 02-Jun-2001 Chris Little Added GBFMorph OptionFilter to handle tags and adjusted GBFStrongs & other filters to not handle as a Strong's number 20-May-2001 Joachim Ansorg Updated the Czech translation of booknames (cs.conf) 18-May-2001 Joachim Ansorg Added polish translation of the booknames. It was created by Robert Kolatzek. 06-May-2001 Chris Little Added GBFHeadings OptionFilter & support for tags to all GBF filters Added emptyvss utility to list empty verses in a module Added warning to vpl2mod for cases where a verse is being overwritten 23-Mar-2001 Joachim Ansorg Made some changes to the API documentation in the headers (documented new classes). 11-Mar-2001 Troy A. Griffitts Added multimapwithdefault template and changed swconfig to use Added operator [] to SWConfig Added configtest 25-Feb-2001 Chris Little Added roman.c for Roman Numeral conversion and made GBF to ThML filter produce XML compliant text 09-Feb-2001 Joachim Ansorg Added beginnings of API documentation in doc/api-documemtation. Formats are HTML and man 08-Feb-2001 Chris Little Added embedded Visual C++ project to build DLL in apps/windoze/wince/sword but it requires undistributable libraries to build it currently. MIPS, SH3, and ARM processors are supported. 08-Feb-2001 Chris Little Added Visual C++ 6.0 project to build DLL in apps/windoze/vc/Sword 18-Jan-2001 Joachim Ansorg RawText::Search: Do not check for a valid key if we don't use a scope, this speeds up the normal search of indexed modules (IMHO a lot for large result sets) Updated examples/cmdline/threaded_search.cpp 14-Jan-2001 Joachim Ansorg Updated sk.conf 13-Jan-2001 Chris Little Added arg to vpl2mod to work with NT-only translations 30-Dec-2000 Chris Little Fixed prn2sword so that it should work with new OLBs 22-Dec-2000 Troy A. Griffitts Added 'micros' a mini GUI for PDAs 20-Dec-2000 Troy A. Griffitts Added new compile target architecture: arm Changed the simple lookup cmdline example to work with any module. Tested on iPaq SA1110. Need to optimize size/speed! 15-Dec-2000 Troy A. Griffitts zText compess driver working Fixed ZipCompress Optimized SWCompress mod2zmod conversion utility working Added support for zText modules in SWMgr with 2 new parameters: BlockType=[VERSE|CHAPTER|BOOK] CompressType=[LZSS|ZIP] 10-Dec-2000 Chris Little Added addld utility for adding single entries to LD modules 09-Dec-2000 Chris Little Added addvs utility for adding single verses to modules Added Diatheke (and CGI/Tcl/PQA frontends to it) to source tree ThML filters (all) fixed to support longer tag lengths and decode HTML ampersand codes (e.g.  ) ThMLRTF filter fixed to avoid printing extra '>'s 02-Dec-2000 Troy A. Griffitts Added write support for RawLD Added new utility modwrite to call a write interface 30-Nov-2000 Troy A. Griffitts Fixed memory leak in write methods of RawText Added some initial support for writing to zText Added a 'not working yet' mod2zmod utility 20-Nov-2000 Troy A. Griffitts Added new utility, step2vpl, for dumping BSISG STEP module in vpl format. Added new make target: install_config to put a basic install on a box. Added a QUICKSTART section to INSTALL file 17-Nov-2000 Troy A. Griffitts Added new utility, stepdump, for dumping BSISG STEP modules. 11-Nov-2000 Joachim Ansorg Commited new version of the sk locale file. * Release 1.5.1a * 06-Nov-2000 Troy A. Griffitts Added more debug for tests/mgrtest.cpp Hardcoded VerseKey::NewIndex to KJV max index 01-Nov-2000 Joachim Ansorg Added test program for indexes using VerseKey::NewIndex() 31-Oct-2000 Joachim Ansorg Fixed vpl2mod to work correctly with headers and files without references. 30-Oct-2000 Troy A. Griffitts Hacked SWModule::Search to hardcode high index always to 32300 for now until we get NewIndex working properly. This will be inaccurate for range searches but will always return a value between 0-100 Made rawverse.cpp utility functions to not be so picky about trailing '/' or '\' on path names. Made vpl2mod work better when 'prepend verse ref' option is turned on. There seems to be no sense in outputting blank entries in this scenerio. 29-Oct-2000 Joachim Ansorg Reverted the patch from 23-Oct-2000 gbfhtml.cpp: Changed the HTML tag for new paragraph from

to
because it's bad HTML without a closing

tag. 23-Oct-2000 Joachim Ansorg Changed the private section of versekey.h into a protected one because we need the change for current BibleTime! 15-Oct-2000 Troy A. Griffitts Normalized Writable interface to SWModule. Fixed RawVerse settext to correctly append a dos nl. Fixed vpl2mod to correctly strip 10s and 13s from input. Added verse ref parsing functionality to vpl2mod. Added new 'getRawEntry()' pure virtual to each driver. Changed from operator char *(). Moved operator char * to SWModule. Created define FILTERPAD to replace hard coded padding in each driver. Added write link support in RawText. Added new test introtest to test module intros. Fixed abbrev parsing to see Phil as Php. 05-Sep-2000 Joachim Ansorg Fixed a problem in Makefile.cfg with profiler support and non-debugging lib (-s removes the profiler support, changed it) 30-Aug-2000 Troy A. Griffitts Fixed mod2vpl to strip any existing \n's from data before writing the data. Added new utility which reads a verse per line (vpl) file and creates a new module. Fixed RawVerse::CreateModule. Implimented write functionality in RawText with a call to RawVerse::settext. Changed write functionality in RawVerse driver which appends the new entry to the end of the data file and resets the index to this new location. 28-Aug-2000 Troy A. Griffitts Added new utility to output a verse module one line per verse (utilities/mod2vpl) 22-Aug-2000 Joachim Ansorg Added Slovak translation of booknames made by Zdeno 16-Aug-2000 Joachim Ansorg Fixed utilities/mkfastmod.cpp Added a template for translations of international booknames (doc/translation-template.conf). 14-Aug-2000 Troy A. Griffitts Added beginnings of search framework support. Added some optimized searches for RawText driver 07-Apr-2000 Joachim Ansorg Added the THML filters (thmlrtf,thmlplain,thmlhtml and thmlgbf) to the Makefile. 15-Mar-2000 Added buildvcl option to Makefile.cfg to allow exclusion of the VCL libraries from the build. Changed the install for the include directory to OBTAIN the file list instead of specifying each include file Included cs Czech locale submitted by Kri¹tof Petr Included da Dutch locale submitted by Birger Langkjer 13-Mar-2000 Added SWLocale and LocaleMgr classes to support localization Made GBFPlain filter support plain text parsing of strongs numbers to allow searching for such. Added VCL library port to support porting of InstallMgr to gtk Added basic InstallMgr gtk port. Included Chris Little's initial cut of ThML filters Added Torsten's Uhlmann's plainfootnotes, an option filter for footnotes in plain format Biblical texts. Added Torsten's rtfhtml filter (at the moment only usable for the About comment) 19-Jan-2000 Added zText, zVerse, etc. code utilizing Daniel Glassey's comp drivers Fixed alloc bug in RawLD 25-Nov-1999 Fixed double // bug in swmgr Fixed /./ bug in swmgr Applied Joachim's patch to fix UpperBound bug Fixed Makefile bugs 17-Oct-1999 Fixed bug in rawstr.cpp that would overwrite buffer size if idxkey info was larger than buffer size Added sparc support Enhanced and debugged build and install system added spec file for building RPMs Added updated GBFHTML and PLAINHTML filters from bibletime team Fixed bug in SWMgr on exit when can't find any config info 15-Oct-1999 Changed sig of ProcessText to include SWKey *, and calls approp. Changed SWMgr::optionFilters security to protected 05-Sep-1999 Why is it always the 5th? Added RawFilters to facilitate on-the-fly deciphering of entries Added SWCipher which uses Michael Paul Johnson's SapphireII cipher Added CipherFilter which uses SWCipher and .conf CipherKey= entry 05-Jul-1999 Added MAXCHAPTER and MAXVERSE as POSITIONs in VerseKey Added Key() method for setting / getting key on SWModule Added kludge to UpperBound for setting verse and chapter to max values if not specified Fixed bugs where error was not being set correctly for some traversals of SWModule 05-Jun-1999 Sorry for not keeping the ChangeLog current Lots of other stuff I'm sure I forgot New mods.d configuration Begin phase out of RawGBF. Move to RawText with SourceType=GBF Added OptionFilters Added scoped searches More bug fixes, as always Profiling to speed up some sections of code 09-Jan-1999 Various API bug fixes. Added navigation support for all module types Added search support for all module types Added standard mods.conf location lookups to SWMgr 15-Dec-1999 Added cheatah, a simple lookup and search gtk GUI 12-Nov-1998 1.3.1 release. Started making entries in ChangeLog again! :) Moved directory structure. Added Luis Cortes' wxSword frontend to apps tree. GREAT START! Fixed bug in canon.h that incorrectly assumed static structures were allocated on the heap sequential if they were in the source sequentially. Changed SWModule::Search(char *... to SWModule::Search(const char * Removed -Werror from Makefile.cfg to avoid problems with different warnings that get displayed with different versions of egcs 12-Dec-1997 Fixed typo in about box of BibleCS Changed font copyright notice in n27u4 09-Dec-1997 Fixed Search window in BibleCS to search currently focused Bible Text module and report such in the title bar. Added ALPHA website to the CD Loader Added a full report of the About section of a module when installing. (BibleCS) Renamed module n26u4 to n27u4. 04-Dec-1997 Added DDE to BibleCS frontend. Thanx to Franklin Bratcher for the idea. Service = sword; Topic = Bible; Item = [Lookup|Search]; Data = " ". E.g.: sword Bible Lookup MHC "Matthew 1:1" sword Bible Search WEB knee[ls] WARNING: case sensitive module names See ddetest program under BibleCS directory 29-Nov-1997 Added SWFilter and modified appropriate modules to use these. Added RawGBF class that automatically adds a GBFPlain filter to strip GBF tags before searching. Added sword/frontend/windoze/cbuilder/biblecs frontend. To build, use cmdline compiler: make -fsword DO NOT OPEN sword.mak WITH C++BUILDER Added sword/frontend/windoze/cbuilder/biblecs/cdstartup for autorun CDROMs. Made some functions const. Added sword/install/complete for install. Added module 'rwp' (Robertson's Word Pictures) Added module 'kjv' (King James 1611 with some RTF) Added module 'n26u4' (Nestle Aland 26th ed. / UBS 4th. ed. Greek NT) Added module 'orthjbc' (Orthodox Jewish Brit Chadasha) Added module 'sve' (Swedish Bible 1917 New Testament) Added module 'vnt' (Valera 1858 Spanish New Testament Text) Added module 'web' (The World English Bible) Added swmgr class for module management. Added swconfig class for .conf file manipulation. 05-Oct-1997 Added regular expression functionality to SWModule.Search() Used GNU regex.h and regex.c with slight modifications to #define's 13-Jul-1996 Added .Search() method to SWModule Added SWListKey key type to facilitate lists of verses (used by .Search) Added .Headings() boolean method to VerseKey to allow incrementor to work including or excluding headers (e.g. chapter/book/testm/mod) Started z series of modules for compression access using the compression algorithms in the STEP specs. (These are either not done or extremely unstable, be warned ;) Added .Index() method to VerseKey Changed VerseKey incrementors to use Index(Index() [+-] val) instead of counting on Normalize(); Added checks and output appropriate in VerseKey.freshtext() for headings. This also fixed some bugs when trying to display VerseKey when indexed to a heading. Added frontend/widoze/Delphi20/swtxtdsp: the beginings of a Delphi RTF control. Changed Makefiles slightly for more logical compiles. Added search test program (currently at ./) Added keytest test program (currently ./tests) Various Delphi component changes. once again.. probably many other things I forgot to list, but I'm getting better! ;) Sorry for the time lapse. 8-Apr-1996 Fixed bug in VerseKey for old testament references! Fixed VerseKey from crashing when set with text that it cannot parse. Removed the need for Keys data files. Added information instead to canon.h Added procedural API (frontend/windoze/bcowl25/swordapi) and 16 & 32 bit DLLs for windoze (sword16.dll; sword32.dll). Added Delphi components (frontend/windoze/delphi20/swordvc) and examples (examples/windoze/delphi/multimo[1-3]) 14-Mar-1996 Renamed RawDrv to RawVerse Moved RawVerse common index files and Index() to VerseKey Added StrKey, a VerseKey counterpart that accepts a string for its key information (for words, cities, people, etc.) Added RawStr, a RawVerse counterpart that operates on a StrKey Added SWLD- a lexicon/dictionary base class Added raw lexicon/dictionary support with class RawLD and utilities (modules/lexdict/rawld/rawld.cpp) Added module 'eastons' (Easton's Bible Dictionary) Added module 'vines' (Vine's Bible Dictionary) Added executable demo 'lookup' that used RawLD and the 'eastons'and 'vines' modules to lookup argv[1] (module decided by argv[2]) Moved sword/frontend/windows/bcowl25 to examples/windoze/bcowl25/multimod and added lexicon/dictionary support to demo. (Highligh a word and right-click for menu) Fixed VerseKey post-increment bug (operator ++(int)) ... once again: probably more that I forgot ... 15-Feb-1996 Many small changes. Moved raw file support to RawDrv class (modules/common/rawdrv.cpp) Added Module/Testament/Book/Chapter intro entries in RawDrv index files. This means that YOU WILL NEED TO DOWNLOAD NEW VERSIONS OF THE RAW MODULES (or at least run the new 'makeidx' programs against your old texts to re-index them (new versions save some space so ideally the new copies are recommended). Added size field into .vss RawDrv index files Added logical comparison operators to VerseKey Added Error() method to SWKey and return value KEYERR_OUTOFBOUNDS This is set when VerseKey tries to increment or decrement past valid canonical bounds (when Normalize() is attempted). Added raw commentary support with class RawCom and utilities (modules/comments/rawcom/rawcom.cpp) Added module 'mhc' (Matthew Henry's Commentary on the Entire Bible) Added AutoNormalize() method for toggling the automatic normalization feature and moved normalize() to Normalize() (public). Modified existing 'makeidx' utilities to support new format. Removed ^M (0x0d) from RawDrv text files (sorry DOS users if this is an inconvenience but it saves bandwidth for download time. If you really feel the need to have them in your files, you can always resave with most nonprogramming editors and it will replace them, but be sure to run makeidx on 'ot' and 'nt' again or your index files will be off. Almost useful .exe in frontend/windoze/bcowl25/ (at least it shows an example of coding direction for use of the API) ... probably more that I forgot ... 22-Jan-1996 Added chapmax and versemax information (canon.h) Made sword.cpp test program accept parameters: usage: sword ["Book CH:VS"] [number of verses to display] enabled normalize function (try sword "Matthew 1:-7" 12)