summaryrefslogtreecommitdiff
path: root/utilities
diff options
context:
space:
mode:
Diffstat (limited to 'utilities')
-rw-r--r--utilities/.cvsignore31
-rw-r--r--utilities/Makefile.am76
-rw-r--r--utilities/Makefile.in949
-rw-r--r--utilities/addcomment.cpp39
-rw-r--r--utilities/addgb.cpp117
-rw-r--r--utilities/addld.cpp200
-rw-r--r--utilities/addvs.cpp186
-rw-r--r--utilities/bcpp6make/cipherraw.bpf3
-rw-r--r--utilities/bcpp6make/cipherraw.bpr145
-rw-r--r--utilities/bcpp6make/diatheke.bpf6
-rw-r--r--utilities/bcpp6make/diatheke.bpr159
-rw-r--r--utilities/bcpp6make/imp2gbs.bpf3
-rw-r--r--utilities/bcpp6make/imp2gbs.bpr145
-rw-r--r--utilities/bcpp6make/imp2ld.bpf3
-rw-r--r--utilities/bcpp6make/imp2ld.bpr145
-rw-r--r--utilities/bcpp6make/imp2vs.bpf3
-rw-r--r--utilities/bcpp6make/imp2vs.bpr145
-rw-r--r--utilities/bcpp6make/mkfastmod.bpf3
-rw-r--r--utilities/bcpp6make/mkfastmod.bpr145
-rw-r--r--utilities/bcpp6make/mod2imp.bpf3
-rw-r--r--utilities/bcpp6make/mod2imp.bpr145
-rw-r--r--utilities/bcpp6make/mod2osis.bpf3
-rw-r--r--utilities/bcpp6make/mod2osis.bpr145
-rw-r--r--utilities/bcpp6make/mod2vpl.bpf3
-rw-r--r--utilities/bcpp6make/mod2vpl.bpr145
-rw-r--r--utilities/bcpp6make/mod2zmod.bpf6
-rw-r--r--utilities/bcpp6make/mod2zmod.bpr145
-rw-r--r--utilities/bcpp6make/obj/dummy0
-rw-r--r--utilities/bcpp6make/osis2mod.bpf6
-rw-r--r--utilities/bcpp6make/osis2mod.bpr146
-rw-r--r--utilities/bcpp6make/stage/dummy0
-rw-r--r--utilities/bcpp6make/step2vpl.bpf6
-rw-r--r--utilities/bcpp6make/step2vpl.bpr145
-rw-r--r--utilities/bcpp6make/stepdump.bpf6
-rw-r--r--utilities/bcpp6make/stepdump.bpr145
-rw-r--r--utilities/bcpp6make/utils.bpg89
-rw-r--r--utilities/bcpp6make/vpl2mod.bpf6
-rw-r--r--utilities/bcpp6make/vpl2mod.bpr145
-rw-r--r--utilities/bcpp6make/vs2osisref.bpf6
-rw-r--r--utilities/bcpp6make/vs2osisref.bpr145
-rw-r--r--utilities/bcpp6make/xml2gbs.bpf6
-rw-r--r--utilities/bcpp6make/xml2gbs.bpr145
-rw-r--r--utilities/bcppmake/Makefile.am37
-rw-r--r--utilities/bcppmake/cipherraw.bdsproj322
-rw-r--r--utilities/bcppmake/cipherraw.bpf11
-rw-r--r--utilities/bcppmake/cipherraw.bpr124
-rw-r--r--utilities/bcppmake/diatheke.bdsproj306
-rw-r--r--utilities/bcppmake/diatheke.bpf17
-rw-r--r--utilities/bcppmake/diatheke.bpr120
-rw-r--r--utilities/bcppmake/imp2gbs.bdsproj323
-rw-r--r--utilities/bcppmake/imp2gbs.bpf11
-rw-r--r--utilities/bcppmake/imp2gbs.bpr130
-rw-r--r--utilities/bcppmake/imp2ld.bdsproj314
-rw-r--r--utilities/bcppmake/imp2ld.bpf11
-rw-r--r--utilities/bcppmake/imp2ld.bpr128
-rw-r--r--utilities/bcppmake/imp2vs.bdsproj314
-rw-r--r--utilities/bcppmake/imp2vs.bpf11
-rw-r--r--utilities/bcppmake/imp2vs.bpr128
-rw-r--r--utilities/bcppmake/installmgr.bdsproj327
-rw-r--r--utilities/bcppmake/installmgr.bpf12
-rw-r--r--utilities/bcppmake/installmgr.bpr124
-rw-r--r--utilities/bcppmake/libsword.bpf118
-rw-r--r--utilities/bcppmake/libsword.bpr204
-rw-r--r--utilities/bcppmake/mkfastmod.bdsproj320
-rw-r--r--utilities/bcppmake/mkfastmod.bpf11
-rw-r--r--utilities/bcppmake/mkfastmod.bpr125
-rw-r--r--utilities/bcppmake/mod2imp.bdsproj311
-rw-r--r--utilities/bcppmake/mod2imp.bpf11
-rw-r--r--utilities/bcppmake/mod2imp.bpr123
-rw-r--r--utilities/bcppmake/mod2osis.bdsproj296
-rw-r--r--utilities/bcppmake/mod2osis.bpf11
-rw-r--r--utilities/bcppmake/mod2osis.bpr122
-rw-r--r--utilities/bcppmake/mod2vpl.bdsproj311
-rw-r--r--utilities/bcppmake/mod2vpl.bpf11
-rw-r--r--utilities/bcppmake/mod2vpl.bpr123
-rw-r--r--utilities/bcppmake/mod2zmod.bdsproj318
-rw-r--r--utilities/bcppmake/mod2zmod.bpf11
-rw-r--r--utilities/bcppmake/mod2zmod.bpr126
-rw-r--r--utilities/bcppmake/osis2mod.bdsproj306
-rw-r--r--utilities/bcppmake/osis2mod.bpf11
-rw-r--r--utilities/bcppmake/osis2mod.bpr123
-rw-r--r--utilities/bcppmake/step2vpl.bdsproj311
-rw-r--r--utilities/bcppmake/step2vpl.bpf11
-rw-r--r--utilities/bcppmake/step2vpl.bpr123
-rw-r--r--utilities/bcppmake/stepdump.bdsproj311
-rw-r--r--utilities/bcppmake/stepdump.bpf11
-rw-r--r--utilities/bcppmake/stepdump.bpr123
-rw-r--r--utilities/bcppmake/tei2mod.bpf11
-rw-r--r--utilities/bcppmake/tei2mod.bpr123
-rw-r--r--utilities/bcppmake/utilities.bdsgroup40
-rw-r--r--utilities/bcppmake/utilities.bpg113
-rw-r--r--utilities/bcppmake/vpl2mod.bdsproj311
-rw-r--r--utilities/bcppmake/vpl2mod.bpf11
-rw-r--r--utilities/bcppmake/vpl2mod.bpr123
-rw-r--r--utilities/bcppmake/vs2osisref.bdsproj296
-rw-r--r--utilities/bcppmake/vs2osisref.bpf11
-rw-r--r--utilities/bcppmake/vs2osisref.bpr122
-rw-r--r--utilities/bcppmake/xml2gbs.bdsproj319
-rw-r--r--utilities/bcppmake/xml2gbs.bpf11
-rw-r--r--utilities/bcppmake/xml2gbs.bpr124
-rw-r--r--utilities/cipherraw.cpp104
-rw-r--r--utilities/diatheke/.cvsignore5
-rw-r--r--utilities/diatheke/Makefile.am24
-rw-r--r--utilities/diatheke/Makefile.in521
-rw-r--r--utilities/diatheke/README76
-rw-r--r--utilities/diatheke/cgi/Makefile.am6
-rwxr-xr-xutilities/diatheke/cgi/dia-def.pl41
-rwxr-xr-xutilities/diatheke/cgi/diatheke.pl509
-rw-r--r--utilities/diatheke/cgi/index-private.html1264
-rw-r--r--utilities/diatheke/cgi/index-public.html883
-rw-r--r--utilities/diatheke/corediatheke.cpp449
-rw-r--r--utilities/diatheke/corediatheke.h43
-rw-r--r--utilities/diatheke/diafiltmgr.cpp228
-rw-r--r--utilities/diatheke/diafiltmgr.h47
-rw-r--r--utilities/diatheke/diatheke.cpp225
-rw-r--r--utilities/diatheke/diatheke.dsp204
-rw-r--r--utilities/diatheke/diatheke.dsw44
-rw-r--r--utilities/diatheke/diathekemgr.cpp109
-rw-r--r--utilities/diatheke/diathekemgr.h35
-rw-r--r--utilities/diatheke/gbfcgi.cpp138
-rw-r--r--utilities/diatheke/gbfcgi.h38
-rw-r--r--utilities/diatheke/osiscgi.cpp325
-rw-r--r--utilities/diatheke/osiscgi.h48
-rw-r--r--utilities/diatheke/pqa/Diatheke.pqabin0 -> 662 bytes
-rw-r--r--utilities/diatheke/pqa/src/README1
-rw-r--r--utilities/diatheke/pqa/src/all.html170
-rw-r--r--utilities/diatheke/pqa/src/ancient.html32
-rw-r--r--utilities/diatheke/pqa/src/dict.html32
-rw-r--r--utilities/diatheke/pqa/src/english.html68
-rw-r--r--utilities/diatheke/pqa/src/french.html26
-rw-r--r--utilities/diatheke/pqa/src/german.html35
-rw-r--r--utilities/diatheke/pqa/src/index.html43
-rw-r--r--utilities/diatheke/pqa/src/lex.html29
-rw-r--r--utilities/diatheke/pqa/src/other.html57
-rw-r--r--utilities/diatheke/pqa/src/spanish.html29
-rwxr-xr-xutilities/diatheke/soap/sapouni.cgi97
-rwxr-xr-xutilities/diatheke/soap/soapatheke.pl16
-rw-r--r--utilities/diatheke/tcl/biblebot-diatheke.tcl2131
-rw-r--r--utilities/diatheke/thmlcgi.cpp193
-rw-r--r--utilities/diatheke/thmlcgi.h38
-rw-r--r--utilities/emptyvss.cpp54
-rw-r--r--utilities/gbfidx.cpp288
-rw-r--r--utilities/genbookutil.cpp201
-rw-r--r--utilities/imp2gbs.cpp254
-rw-r--r--utilities/imp2ld.cpp175
-rw-r--r--utilities/imp2vs.cpp182
-rw-r--r--utilities/installmgr.cpp287
-rw-r--r--utilities/kylixmake/Makefile.am8
-rw-r--r--utilities/kylixmake/libsword.bpf8
-rw-r--r--utilities/kylixmake/libsword.bpr238
-rw-r--r--utilities/kylixmake/mod2zmod.bpf5
-rw-r--r--utilities/kylixmake/mod2zmod.bpr84
-rw-r--r--utilities/kylixmake/mod2zmod.resbin0 -> 32 bytes
-rw-r--r--utilities/kylixmake/utilities.bpg24
-rw-r--r--utilities/lexdump.c52
-rw-r--r--utilities/mkfastmod.cpp72
-rw-r--r--utilities/mod2imp.cpp75
-rw-r--r--utilities/mod2osis.cpp200
-rw-r--r--utilities/mod2vpl.cpp85
-rw-r--r--utilities/mod2zmod.cpp189
-rw-r--r--utilities/mod2zmod2.cpp205
-rw-r--r--utilities/modwrite.cpp63
-rw-r--r--utilities/no13.c34
-rw-r--r--utilities/osis2mod.cpp1090
-rw-r--r--utilities/perl/Makefile.am6
-rwxr-xr-xutilities/perl/cipherkeygen.pl24
-rwxr-xr-xutilities/perl/linkvers.pl44
-rwxr-xr-xutilities/perl/localecap.pl23
-rwxr-xr-xutilities/perl/mkvsmod.pl21
-rw-r--r--utilities/step2vpl.cpp429
-rw-r--r--utilities/stepdump.cpp253
-rw-r--r--utilities/tei2mod.cpp531
-rw-r--r--utilities/treeidxutil.cpp145
-rw-r--r--utilities/vpl2mod.cpp263
-rw-r--r--utilities/vpl2zmod2.cpp293
-rw-r--r--utilities/vs2osisref.cpp57
-rw-r--r--utilities/xml2gbs.cpp363
177 files changed, 27049 insertions, 0 deletions
diff --git a/utilities/.cvsignore b/utilities/.cvsignore
new file mode 100644
index 0000000..941045f
--- /dev/null
+++ b/utilities/.cvsignore
@@ -0,0 +1,31 @@
+.deps
+.libs
+Makefile
+Makefile.in
+addgb
+addld
+addvs
+cipherraw
+ciphertest
+ciphertest2
+emptyvss
+gbfidx
+imp2gbs
+imp2ld
+imp2vs
+installmgr
+lexdump
+mkfastmod
+mod2imp
+mod2osis
+mod2vpl
+mod2zmod
+modwrite
+osis2mod
+step2vpl
+stepdump
+thml2gbs
+txt2sword
+vpl2mod
+vs2osisref
+xml2gbs
diff --git a/utilities/Makefile.am b/utilities/Makefile.am
new file mode 100644
index 0000000..c453f80
--- /dev/null
+++ b/utilities/Makefile.am
@@ -0,0 +1,76 @@
+AUTOMAKE_OPTIONS = 1.6
+SUBDIRS = diatheke
+INCLUDES = -I $(top_srcdir)/include
+LDADD = $(top_builddir)/lib/libsword.la
+noinst_PROGRAMS = cipherraw lexdump \
+stepdump step2vpl gbfidx modwrite addvs emptyvss \
+addgb genbookutil treeidxutil
+
+bin_PROGRAMS = mod2imp mod2osis osis2mod tei2mod vs2osisref mod2vpl \
+ mkfastmod vpl2mod imp2vs installmgr xml2gbs imp2gbs
+
+#if INSTALLMGR
+#IMGRPROG =
+#else
+#IMGRPROG =
+#endif
+
+
+#if ICU
+#ICUPROG =
+#else
+#ICUPROG =
+#endif
+
+if ZLIB
+ZLIBPROG = mod2zmod addld imp2ld
+else
+ZLIBPROG =
+endif
+
+
+
+#noinst_PROGRAMS += $(ICUPROG)
+bin_PROGRAMS += $(ZLIBPROG)
+#$(IMGRPROG)
+
+if ICU
+endif
+
+cipherraw_SOURCES = cipherraw.cpp
+lexdump_SOURCES = lexdump.c
+lexdump_LDADD = -lstdc++
+mkfastmod_SOURCES = mkfastmod.cpp
+mod2vpl_SOURCES = mod2vpl.cpp
+vpl2mod_SOURCES = vpl2mod.cpp
+stepdump_SOURCES = stepdump.cpp
+step2vpl_SOURCES = step2vpl.cpp
+gbfidx_SOURCES = gbfidx.cpp
+modwrite_SOURCES = modwrite.cpp
+addvs_SOURCES = addvs.cpp
+emptyvss_SOURCES = emptyvss.cpp
+addgb_SOURCES = addgb.cpp
+imp2gbs_SOURCES = imp2gbs.cpp
+imp2vs_SOURCES = imp2vs.cpp
+mod2imp_SOURCES = mod2imp.cpp
+mod2osis_SOURCES = mod2osis.cpp
+xml2gbs_SOURCES = xml2gbs.cpp
+osis2mod_SOURCES = osis2mod.cpp
+tei2mod_SOURCES = tei2mod.cpp
+vs2osisref_SOURCES = vs2osisref.cpp
+genbookutil_SOURCES = genbookutil.cpp
+treeidxutil_SOURCES = treeidxutil.cpp
+
+installmgr_SOURCES = installmgr.cpp
+#installmgr_LDADD = -lcurl $(CURL_LIBS) $(LDADD)
+
+if ZLIB
+mod2zmod_SOURCES = mod2zmod.cpp
+addld_SOURCES = addld.cpp
+imp2ld_SOURCES = imp2ld.cpp
+endif
+
+EXTRA_DIST =
+include bcppmake/Makefile.am
+include kylixmake/Makefile.am
+include perl/Makefile.am
diff --git a/utilities/Makefile.in b/utilities/Makefile.in
new file mode 100644
index 0000000..d27987e
--- /dev/null
+++ b/utilities/Makefile.in
@@ -0,0 +1,949 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+noinst_PROGRAMS = cipherraw$(EXEEXT) lexdump$(EXEEXT) \
+ stepdump$(EXEEXT) step2vpl$(EXEEXT) gbfidx$(EXEEXT) \
+ modwrite$(EXEEXT) addvs$(EXEEXT) emptyvss$(EXEEXT) \
+ addgb$(EXEEXT) genbookutil$(EXEEXT) treeidxutil$(EXEEXT)
+bin_PROGRAMS = mod2imp$(EXEEXT) mod2osis$(EXEEXT) osis2mod$(EXEEXT) \
+ tei2mod$(EXEEXT) vs2osisref$(EXEEXT) mod2vpl$(EXEEXT) \
+ mkfastmod$(EXEEXT) vpl2mod$(EXEEXT) imp2vs$(EXEEXT) \
+ installmgr$(EXEEXT) xml2gbs$(EXEEXT) imp2gbs$(EXEEXT) \
+ $(am__EXEEXT_1)
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/bcppmake/Makefile.am $(srcdir)/kylixmake/Makefile.am \
+ $(srcdir)/perl/Makefile.am
+subdir = utilities
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/acx_clucene.m4 \
+ $(top_srcdir)/m4/cppunit.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/config.h
+CONFIG_CLEAN_FILES =
+@ZLIB_TRUE@am__EXEEXT_1 = mod2zmod$(EXEEXT) addld$(EXEEXT) \
+@ZLIB_TRUE@ imp2ld$(EXEEXT)
+am__installdirs = "$(DESTDIR)$(bindir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+am_addgb_OBJECTS = addgb.$(OBJEXT)
+addgb_OBJECTS = $(am_addgb_OBJECTS)
+addgb_LDADD = $(LDADD)
+addgb_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am__addld_SOURCES_DIST = addld.cpp
+@ZLIB_TRUE@am_addld_OBJECTS = addld.$(OBJEXT)
+addld_OBJECTS = $(am_addld_OBJECTS)
+addld_LDADD = $(LDADD)
+addld_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_addvs_OBJECTS = addvs.$(OBJEXT)
+addvs_OBJECTS = $(am_addvs_OBJECTS)
+addvs_LDADD = $(LDADD)
+addvs_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_cipherraw_OBJECTS = cipherraw.$(OBJEXT)
+cipherraw_OBJECTS = $(am_cipherraw_OBJECTS)
+cipherraw_LDADD = $(LDADD)
+cipherraw_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_emptyvss_OBJECTS = emptyvss.$(OBJEXT)
+emptyvss_OBJECTS = $(am_emptyvss_OBJECTS)
+emptyvss_LDADD = $(LDADD)
+emptyvss_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_gbfidx_OBJECTS = gbfidx.$(OBJEXT)
+gbfidx_OBJECTS = $(am_gbfidx_OBJECTS)
+gbfidx_LDADD = $(LDADD)
+gbfidx_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_genbookutil_OBJECTS = genbookutil.$(OBJEXT)
+genbookutil_OBJECTS = $(am_genbookutil_OBJECTS)
+genbookutil_LDADD = $(LDADD)
+genbookutil_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_imp2gbs_OBJECTS = imp2gbs.$(OBJEXT)
+imp2gbs_OBJECTS = $(am_imp2gbs_OBJECTS)
+imp2gbs_LDADD = $(LDADD)
+imp2gbs_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am__imp2ld_SOURCES_DIST = imp2ld.cpp
+@ZLIB_TRUE@am_imp2ld_OBJECTS = imp2ld.$(OBJEXT)
+imp2ld_OBJECTS = $(am_imp2ld_OBJECTS)
+imp2ld_LDADD = $(LDADD)
+imp2ld_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_imp2vs_OBJECTS = imp2vs.$(OBJEXT)
+imp2vs_OBJECTS = $(am_imp2vs_OBJECTS)
+imp2vs_LDADD = $(LDADD)
+imp2vs_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_installmgr_OBJECTS = installmgr.$(OBJEXT)
+installmgr_OBJECTS = $(am_installmgr_OBJECTS)
+installmgr_LDADD = $(LDADD)
+installmgr_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_lexdump_OBJECTS = lexdump.$(OBJEXT)
+lexdump_OBJECTS = $(am_lexdump_OBJECTS)
+lexdump_DEPENDENCIES =
+am_mkfastmod_OBJECTS = mkfastmod.$(OBJEXT)
+mkfastmod_OBJECTS = $(am_mkfastmod_OBJECTS)
+mkfastmod_LDADD = $(LDADD)
+mkfastmod_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_mod2imp_OBJECTS = mod2imp.$(OBJEXT)
+mod2imp_OBJECTS = $(am_mod2imp_OBJECTS)
+mod2imp_LDADD = $(LDADD)
+mod2imp_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_mod2osis_OBJECTS = mod2osis.$(OBJEXT)
+mod2osis_OBJECTS = $(am_mod2osis_OBJECTS)
+mod2osis_LDADD = $(LDADD)
+mod2osis_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_mod2vpl_OBJECTS = mod2vpl.$(OBJEXT)
+mod2vpl_OBJECTS = $(am_mod2vpl_OBJECTS)
+mod2vpl_LDADD = $(LDADD)
+mod2vpl_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am__mod2zmod_SOURCES_DIST = mod2zmod.cpp
+@ZLIB_TRUE@am_mod2zmod_OBJECTS = mod2zmod.$(OBJEXT)
+mod2zmod_OBJECTS = $(am_mod2zmod_OBJECTS)
+mod2zmod_LDADD = $(LDADD)
+mod2zmod_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_modwrite_OBJECTS = modwrite.$(OBJEXT)
+modwrite_OBJECTS = $(am_modwrite_OBJECTS)
+modwrite_LDADD = $(LDADD)
+modwrite_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_osis2mod_OBJECTS = osis2mod.$(OBJEXT)
+osis2mod_OBJECTS = $(am_osis2mod_OBJECTS)
+osis2mod_LDADD = $(LDADD)
+osis2mod_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_step2vpl_OBJECTS = step2vpl.$(OBJEXT)
+step2vpl_OBJECTS = $(am_step2vpl_OBJECTS)
+step2vpl_LDADD = $(LDADD)
+step2vpl_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_stepdump_OBJECTS = stepdump.$(OBJEXT)
+stepdump_OBJECTS = $(am_stepdump_OBJECTS)
+stepdump_LDADD = $(LDADD)
+stepdump_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_tei2mod_OBJECTS = tei2mod.$(OBJEXT)
+tei2mod_OBJECTS = $(am_tei2mod_OBJECTS)
+tei2mod_LDADD = $(LDADD)
+tei2mod_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_treeidxutil_OBJECTS = treeidxutil.$(OBJEXT)
+treeidxutil_OBJECTS = $(am_treeidxutil_OBJECTS)
+treeidxutil_LDADD = $(LDADD)
+treeidxutil_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_vpl2mod_OBJECTS = vpl2mod.$(OBJEXT)
+vpl2mod_OBJECTS = $(am_vpl2mod_OBJECTS)
+vpl2mod_LDADD = $(LDADD)
+vpl2mod_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_vs2osisref_OBJECTS = vs2osisref.$(OBJEXT)
+vs2osisref_OBJECTS = $(am_vs2osisref_OBJECTS)
+vs2osisref_LDADD = $(LDADD)
+vs2osisref_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+am_xml2gbs_OBJECTS = xml2gbs.$(OBJEXT)
+xml2gbs_OBJECTS = $(am_xml2gbs_OBJECTS)
+xml2gbs_LDADD = $(LDADD)
+xml2gbs_DEPENDENCIES = $(top_builddir)/lib/libsword.la
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/include@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(addgb_SOURCES) $(addld_SOURCES) $(addvs_SOURCES) \
+ $(cipherraw_SOURCES) $(emptyvss_SOURCES) $(gbfidx_SOURCES) \
+ $(genbookutil_SOURCES) $(imp2gbs_SOURCES) $(imp2ld_SOURCES) \
+ $(imp2vs_SOURCES) $(installmgr_SOURCES) $(lexdump_SOURCES) \
+ $(mkfastmod_SOURCES) $(mod2imp_SOURCES) $(mod2osis_SOURCES) \
+ $(mod2vpl_SOURCES) $(mod2zmod_SOURCES) $(modwrite_SOURCES) \
+ $(osis2mod_SOURCES) $(step2vpl_SOURCES) $(stepdump_SOURCES) \
+ $(tei2mod_SOURCES) $(treeidxutil_SOURCES) $(vpl2mod_SOURCES) \
+ $(vs2osisref_SOURCES) $(xml2gbs_SOURCES)
+DIST_SOURCES = $(addgb_SOURCES) $(am__addld_SOURCES_DIST) \
+ $(addvs_SOURCES) $(cipherraw_SOURCES) $(emptyvss_SOURCES) \
+ $(gbfidx_SOURCES) $(genbookutil_SOURCES) $(imp2gbs_SOURCES) \
+ $(am__imp2ld_SOURCES_DIST) $(imp2vs_SOURCES) \
+ $(installmgr_SOURCES) $(lexdump_SOURCES) $(mkfastmod_SOURCES) \
+ $(mod2imp_SOURCES) $(mod2osis_SOURCES) $(mod2vpl_SOURCES) \
+ $(am__mod2zmod_SOURCES_DIST) $(modwrite_SOURCES) \
+ $(osis2mod_SOURCES) $(step2vpl_SOURCES) $(stepdump_SOURCES) \
+ $(tei2mod_SOURCES) $(treeidxutil_SOURCES) $(vpl2mod_SOURCES) \
+ $(vs2osisref_SOURCES) $(xml2gbs_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_CXXFLAGS = @AM_CXXFLAGS@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CLUCENE_CXXFLAGS = @CLUCENE_CXXFLAGS@
+CLUCENE_LIBS = @CLUCENE_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@
+CPPUNIT_CONFIG = @CPPUNIT_CONFIG@
+CPPUNIT_LIBS = @CPPUNIT_LIBS@
+CURL_AM_CFLAGS = @CURL_AM_CFLAGS@
+CURL_CONFIG = @CURL_CONFIG@
+CURL_LIBS = @CURL_LIBS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GENCCODE = @GENCCODE@
+GENCMN = @GENCMN@
+GENRB = @GENRB@
+GREP = @GREP@
+ICU_CONFIG = @ICU_CONFIG@
+ICU_IOLIBS = @ICU_IOLIBS@
+ICU_LIBS = @ICU_LIBS@
+ICU_VER = @ICU_VER@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGDATA = @PKGDATA@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+XML_LIBS = @XML_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+dir_confdef = @dir_confdef@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_debug = @enable_debug@
+enable_profile = @enable_profile@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_mingw32 = @target_mingw32@
+target_os = @target_os@
+target_system = @target_system@
+target_vendor = @target_vendor@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_conf = @with_conf@
+with_icu = @with_icu@
+with_zlib = @with_zlib@
+AUTOMAKE_OPTIONS = 1.6
+SUBDIRS = diatheke
+INCLUDES = -I $(top_srcdir)/include
+LDADD = $(top_builddir)/lib/libsword.la
+@ZLIB_FALSE@ZLIBPROG =
+
+#if INSTALLMGR
+#IMGRPROG =
+#else
+#IMGRPROG =
+#endif
+
+#if ICU
+#ICUPROG =
+#else
+#ICUPROG =
+#endif
+@ZLIB_TRUE@ZLIBPROG = mod2zmod addld imp2ld
+#$(IMGRPROG)
+cipherraw_SOURCES = cipherraw.cpp
+lexdump_SOURCES = lexdump.c
+lexdump_LDADD = -lstdc++
+mkfastmod_SOURCES = mkfastmod.cpp
+mod2vpl_SOURCES = mod2vpl.cpp
+vpl2mod_SOURCES = vpl2mod.cpp
+stepdump_SOURCES = stepdump.cpp
+step2vpl_SOURCES = step2vpl.cpp
+gbfidx_SOURCES = gbfidx.cpp
+modwrite_SOURCES = modwrite.cpp
+addvs_SOURCES = addvs.cpp
+emptyvss_SOURCES = emptyvss.cpp
+addgb_SOURCES = addgb.cpp
+imp2gbs_SOURCES = imp2gbs.cpp
+imp2vs_SOURCES = imp2vs.cpp
+mod2imp_SOURCES = mod2imp.cpp
+mod2osis_SOURCES = mod2osis.cpp
+xml2gbs_SOURCES = xml2gbs.cpp
+osis2mod_SOURCES = osis2mod.cpp
+tei2mod_SOURCES = tei2mod.cpp
+vs2osisref_SOURCES = vs2osisref.cpp
+genbookutil_SOURCES = genbookutil.cpp
+treeidxutil_SOURCES = treeidxutil.cpp
+installmgr_SOURCES = installmgr.cpp
+#installmgr_LDADD = -lcurl $(CURL_LIBS) $(LDADD)
+@ZLIB_TRUE@mod2zmod_SOURCES = mod2zmod.cpp
+@ZLIB_TRUE@addld_SOURCES = addld.cpp
+@ZLIB_TRUE@imp2ld_SOURCES = imp2ld.cpp
+EXTRA_DIST = $(swbcppmakedir)/imp2ld.bpf $(swbcppmakedir)/mod2imp.bpf \
+ $(swbcppmakedir)/osis2mod.bpf $(swbcppmakedir)/utilities.bpg \
+ $(swbcppmakedir)/imp2ld.bpr $(swbcppmakedir)/mod2imp.bpr \
+ $(swbcppmakedir)/osis2mod.bpr $(swbcppmakedir)/vpl2mod.bpf \
+ $(swbcppmakedir)/cipherraw.bpf $(swbcppmakedir)/imp2vs.bpf \
+ $(swbcppmakedir)/mod2osis.bpf $(swbcppmakedir)/step2vpl.bpf \
+ $(swbcppmakedir)/vpl2mod.bpr $(swbcppmakedir)/cipherraw.bpr \
+ $(swbcppmakedir)/imp2vs.bpr $(swbcppmakedir)/mod2osis.bpr \
+ $(swbcppmakedir)/step2vpl.bpr $(swbcppmakedir)/vs2osisref.bpf \
+ $(swbcppmakedir)/diatheke.bpf $(swbcppmakedir)/libsword.bpf \
+ $(swbcppmakedir)/mod2vpl.bpf $(swbcppmakedir)/stepdump.bpf \
+ $(swbcppmakedir)/vs2osisref.bpr $(swbcppmakedir)/diatheke.bpr \
+ $(swbcppmakedir)/libsword.bpr $(swbcppmakedir)/mod2vpl.bpr \
+ $(swbcppmakedir)/stepdump.bpr $(swbcppmakedir)/xml2gbs.bpf \
+ $(swbcppmakedir)/imp2gbs.bpf $(swbcppmakedir)/mkfastmod.bpf \
+ $(swbcppmakedir)/mod2zmod.bpf $(swbcppmakedir)/xml2gbs.bpr \
+ $(swbcppmakedir)/imp2gbs.bpr $(swbcppmakedir)/mkfastmod.bpr \
+ $(swbcppmakedir)/mod2zmod.bpr $(swkylixmakedir)/libsword.bpf \
+ $(swkylixmakedir)/mod2zmod.bpf $(swkylixmakedir)/mod2zmod.res \
+ $(swkylixmakedir)/libsword.bpr $(swkylixmakedir)/mod2zmod.bpr \
+ $(swkylixmakedir)/utilities.bpg \
+ $(swperlutildir)/cipherkeygen.pl $(swperlutildir)/linkvers.pl \
+ $(swperlutildir)/localecap.pl $(swperlutildir)/mkvsmod.pl
+swbcppmakedir = $(top_srcdir)/utilities/bcppmake
+swkylixmakedir = $(top_srcdir)/utilities/kylixmake
+swperlutildir = $(top_srcdir)/utilities/perl
+all: all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .c .cpp .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/bcppmake/Makefile.am $(srcdir)/kylixmake/Makefile.am $(srcdir)/perl/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign utilities/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign utilities/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ || test -f $$p1 \
+ ; then \
+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ done
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+addgb$(EXEEXT): $(addgb_OBJECTS) $(addgb_DEPENDENCIES)
+ @rm -f addgb$(EXEEXT)
+ $(CXXLINK) $(addgb_OBJECTS) $(addgb_LDADD) $(LIBS)
+addld$(EXEEXT): $(addld_OBJECTS) $(addld_DEPENDENCIES)
+ @rm -f addld$(EXEEXT)
+ $(CXXLINK) $(addld_OBJECTS) $(addld_LDADD) $(LIBS)
+addvs$(EXEEXT): $(addvs_OBJECTS) $(addvs_DEPENDENCIES)
+ @rm -f addvs$(EXEEXT)
+ $(CXXLINK) $(addvs_OBJECTS) $(addvs_LDADD) $(LIBS)
+cipherraw$(EXEEXT): $(cipherraw_OBJECTS) $(cipherraw_DEPENDENCIES)
+ @rm -f cipherraw$(EXEEXT)
+ $(CXXLINK) $(cipherraw_OBJECTS) $(cipherraw_LDADD) $(LIBS)
+emptyvss$(EXEEXT): $(emptyvss_OBJECTS) $(emptyvss_DEPENDENCIES)
+ @rm -f emptyvss$(EXEEXT)
+ $(CXXLINK) $(emptyvss_OBJECTS) $(emptyvss_LDADD) $(LIBS)
+gbfidx$(EXEEXT): $(gbfidx_OBJECTS) $(gbfidx_DEPENDENCIES)
+ @rm -f gbfidx$(EXEEXT)
+ $(CXXLINK) $(gbfidx_OBJECTS) $(gbfidx_LDADD) $(LIBS)
+genbookutil$(EXEEXT): $(genbookutil_OBJECTS) $(genbookutil_DEPENDENCIES)
+ @rm -f genbookutil$(EXEEXT)
+ $(CXXLINK) $(genbookutil_OBJECTS) $(genbookutil_LDADD) $(LIBS)
+imp2gbs$(EXEEXT): $(imp2gbs_OBJECTS) $(imp2gbs_DEPENDENCIES)
+ @rm -f imp2gbs$(EXEEXT)
+ $(CXXLINK) $(imp2gbs_OBJECTS) $(imp2gbs_LDADD) $(LIBS)
+imp2ld$(EXEEXT): $(imp2ld_OBJECTS) $(imp2ld_DEPENDENCIES)
+ @rm -f imp2ld$(EXEEXT)
+ $(CXXLINK) $(imp2ld_OBJECTS) $(imp2ld_LDADD) $(LIBS)
+imp2vs$(EXEEXT): $(imp2vs_OBJECTS) $(imp2vs_DEPENDENCIES)
+ @rm -f imp2vs$(EXEEXT)
+ $(CXXLINK) $(imp2vs_OBJECTS) $(imp2vs_LDADD) $(LIBS)
+installmgr$(EXEEXT): $(installmgr_OBJECTS) $(installmgr_DEPENDENCIES)
+ @rm -f installmgr$(EXEEXT)
+ $(CXXLINK) $(installmgr_OBJECTS) $(installmgr_LDADD) $(LIBS)
+lexdump$(EXEEXT): $(lexdump_OBJECTS) $(lexdump_DEPENDENCIES)
+ @rm -f lexdump$(EXEEXT)
+ $(LINK) $(lexdump_OBJECTS) $(lexdump_LDADD) $(LIBS)
+mkfastmod$(EXEEXT): $(mkfastmod_OBJECTS) $(mkfastmod_DEPENDENCIES)
+ @rm -f mkfastmod$(EXEEXT)
+ $(CXXLINK) $(mkfastmod_OBJECTS) $(mkfastmod_LDADD) $(LIBS)
+mod2imp$(EXEEXT): $(mod2imp_OBJECTS) $(mod2imp_DEPENDENCIES)
+ @rm -f mod2imp$(EXEEXT)
+ $(CXXLINK) $(mod2imp_OBJECTS) $(mod2imp_LDADD) $(LIBS)
+mod2osis$(EXEEXT): $(mod2osis_OBJECTS) $(mod2osis_DEPENDENCIES)
+ @rm -f mod2osis$(EXEEXT)
+ $(CXXLINK) $(mod2osis_OBJECTS) $(mod2osis_LDADD) $(LIBS)
+mod2vpl$(EXEEXT): $(mod2vpl_OBJECTS) $(mod2vpl_DEPENDENCIES)
+ @rm -f mod2vpl$(EXEEXT)
+ $(CXXLINK) $(mod2vpl_OBJECTS) $(mod2vpl_LDADD) $(LIBS)
+mod2zmod$(EXEEXT): $(mod2zmod_OBJECTS) $(mod2zmod_DEPENDENCIES)
+ @rm -f mod2zmod$(EXEEXT)
+ $(CXXLINK) $(mod2zmod_OBJECTS) $(mod2zmod_LDADD) $(LIBS)
+modwrite$(EXEEXT): $(modwrite_OBJECTS) $(modwrite_DEPENDENCIES)
+ @rm -f modwrite$(EXEEXT)
+ $(CXXLINK) $(modwrite_OBJECTS) $(modwrite_LDADD) $(LIBS)
+osis2mod$(EXEEXT): $(osis2mod_OBJECTS) $(osis2mod_DEPENDENCIES)
+ @rm -f osis2mod$(EXEEXT)
+ $(CXXLINK) $(osis2mod_OBJECTS) $(osis2mod_LDADD) $(LIBS)
+step2vpl$(EXEEXT): $(step2vpl_OBJECTS) $(step2vpl_DEPENDENCIES)
+ @rm -f step2vpl$(EXEEXT)
+ $(CXXLINK) $(step2vpl_OBJECTS) $(step2vpl_LDADD) $(LIBS)
+stepdump$(EXEEXT): $(stepdump_OBJECTS) $(stepdump_DEPENDENCIES)
+ @rm -f stepdump$(EXEEXT)
+ $(CXXLINK) $(stepdump_OBJECTS) $(stepdump_LDADD) $(LIBS)
+tei2mod$(EXEEXT): $(tei2mod_OBJECTS) $(tei2mod_DEPENDENCIES)
+ @rm -f tei2mod$(EXEEXT)
+ $(CXXLINK) $(tei2mod_OBJECTS) $(tei2mod_LDADD) $(LIBS)
+treeidxutil$(EXEEXT): $(treeidxutil_OBJECTS) $(treeidxutil_DEPENDENCIES)
+ @rm -f treeidxutil$(EXEEXT)
+ $(CXXLINK) $(treeidxutil_OBJECTS) $(treeidxutil_LDADD) $(LIBS)
+vpl2mod$(EXEEXT): $(vpl2mod_OBJECTS) $(vpl2mod_DEPENDENCIES)
+ @rm -f vpl2mod$(EXEEXT)
+ $(CXXLINK) $(vpl2mod_OBJECTS) $(vpl2mod_LDADD) $(LIBS)
+vs2osisref$(EXEEXT): $(vs2osisref_OBJECTS) $(vs2osisref_DEPENDENCIES)
+ @rm -f vs2osisref$(EXEEXT)
+ $(CXXLINK) $(vs2osisref_OBJECTS) $(vs2osisref_LDADD) $(LIBS)
+xml2gbs$(EXEEXT): $(xml2gbs_OBJECTS) $(xml2gbs_DEPENDENCIES)
+ @rm -f xml2gbs$(EXEEXT)
+ $(CXXLINK) $(xml2gbs_OBJECTS) $(xml2gbs_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/addgb.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/addld.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/addvs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipherraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emptyvss.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gbfidx.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/genbookutil.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imp2gbs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imp2ld.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imp2vs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/installmgr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lexdump.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkfastmod.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod2imp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod2osis.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod2vpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod2zmod.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modwrite.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osis2mod.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/step2vpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stepdump.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tei2mod.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/treeidxutil.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vpl2mod.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vs2osisref.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml2gbs.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(PROGRAMS)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool \
+ clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+ install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool clean-noinstPROGRAMS ctags \
+ ctags-recursive distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-binPROGRAMS \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs installdirs-am \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+ uninstall-binPROGRAMS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/utilities/addcomment.cpp b/utilities/addcomment.cpp
new file mode 100644
index 0000000..4872dbf
--- /dev/null
+++ b/utilities/addcomment.cpp
@@ -0,0 +1,39 @@
+#include <stdio.h>
+#include <iostream>
+#include <versekey.h>
+#include <rawtext.h>
+#include <zcom.h>
+#include <rawcom.h>
+#include <rawfiles.h>
+#include <stdlib.h>
+
+int main(int argc, char **argv)
+{
+ int loop;
+ int max;
+ RawFiles personal("modules/comments/rawfiles/personal/", "MINE", "Personal Comments");
+ VerseKey mykey;
+
+ if (argc < 3) {
+ fprintf(stderr, "usage: %s <\"comment\"> <\"verse\"> [count] [disable AutoNormalization]\n", argv[0]);
+ exit(-1);
+ }
+
+ if (argc > 4)
+ mykey.AutoNormalize(0); // Turn off autonormalize if 3 args to allow for intros
+ // This is kludgy but at lease you can try it
+ // with something like: sword "Matthew 1:0" 1 1
+
+ mykey = argv[2];
+ mykey.Persist(1);
+ personal.setKey(mykey);
+
+ max = (argc < 4) ? 1 : atoi(argv[3]);
+
+ for (loop = 0; loop < max; loop++) {
+ personal << argv[1];
+ mykey++;
+ }
+ std::cout << "Added Comment" << std::endl;
+ return 0;
+}
diff --git a/utilities/addgb.cpp b/utilities/addgb.cpp
new file mode 100644
index 0000000..c14a0e7
--- /dev/null
+++ b/utilities/addgb.cpp
@@ -0,0 +1,117 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdlib.h>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <entriesblk.h>
+#include <iostream>
+#include <string>
+#include <stdio.h>
+#include <treekeyidx.h>
+#include <rawgenbook.h>
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::TreeKeyIdx;
+using sword::RawGenBook;
+using sword::SWKey;
+#endif
+
+
+void printTree(TreeKeyIdx treeKey, TreeKeyIdx *target = 0, int level = 1) {
+ if (!target)
+ target = &treeKey;
+
+ unsigned long currentOffset = target->getOffset();
+ std::cout << ((currentOffset == treeKey.getOffset()) ? "==>" : "");
+ for (int i = 0; i < level; i++) std::cout << "\t";
+ std::cout << treeKey.getLocalName() << "/\n";
+ if (treeKey.firstChild()) {
+ printTree(treeKey, target, level+1);
+ treeKey.parent();
+ }
+ if (treeKey.nextSibling())
+ printTree(treeKey, target, level);
+
+}
+
+
+int main(int argc, char **argv) {
+
+ const char * helptext ="addgb 1.0 General Book module creation tool for the SWORD Project\nUse -a to add a new leaf entry from standard input or a file\n usage:\n %s -a <filename> <key> [</path/to/file/with/entry>]\n";
+
+ // const char * helptext ="addgb 1.0 General Book module creation tool for the SWORD Project\nUse -a to add a new leaf entry from standard input or a file, -d to delete an\nentry, -l to link two leaf entries.\n usage:\n %s -a <filename> <key> [</path/to/file/with/entry>]\n %s -d <filename> <key>\n %s -l <filename> <first key (already assigned)> <second key>\n";
+
+ char mode;
+ unsigned long entrysize;
+
+ if (argc < 3) {
+ fprintf(stderr, helptext, argv[0]);
+ exit(-1);
+ }
+
+ mode = argv[1][1];
+
+ // Do some initialization stuff
+ TreeKeyIdx *treeKey = new TreeKeyIdx(argv[2]);
+ if (treeKey->Error()) {
+ treeKey->create(argv[2]);
+ delete treeKey;
+ treeKey = new TreeKeyIdx(argv[2]);
+ RawGenBook::createModule(argv[2]);
+ }
+ delete treeKey;
+ RawGenBook *book = new RawGenBook(argv[2]);
+
+ if ((mode == 'a') && (argc == 4 || argc == 5)) {
+ char buffer[1048576]; //this is the max size of any entry
+
+
+ FILE *infile;
+ // case: add from text file
+ //Open our data file and read its contents into the buffer
+ if (argc == 5) infile = fopen(argv[4], "r");
+ // case: add from stdin
+ else infile = stdin;
+
+ entrysize = fread(buffer, sizeof(char), sizeof(buffer), infile);
+ book->setKey(argv[3]);
+ book->setEntry(buffer, entrysize); // save text to module at current position
+ }
+
+ /*
+ // let's pretend these don't exist for the time being
+
+ // Link 2 verses
+ else if ((mode == 'l') && argc == 5) {
+ *key = argv[3];
+ mod.setKey(*key);
+
+ SWKey tmpkey = argv[4];
+ mod << &(tmpkey);
+ }
+
+ // Delete an entry
+ else if ((mode == 'd') && argc == 4) {
+ mod.setKey(argv[3]);
+ mod.deleteEntry();
+ }
+ */
+ // Bad arguments, print usage
+ else {
+ fprintf(stderr, helptext, argv[0]);
+ exit(-1);
+ }
+
+ //DEBUG printTree(root, treeKey);
+
+ delete treeKey;
+ delete book;
+ return 0;
+}
diff --git a/utilities/addld.cpp b/utilities/addld.cpp
new file mode 100644
index 0000000..5b7429e
--- /dev/null
+++ b/utilities/addld.cpp
@@ -0,0 +1,200 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdlib.h>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <swmgr.h>
+#include <rawld.h>
+#include <rawld4.h>
+#include <zld.h>
+#include <zipcomprs.h>
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::SWMgr;
+using sword::ZipCompress;
+using sword::RawLD4;
+using sword::SWKey;
+using sword::zLD;
+using sword::RawLD;
+#endif
+
+
+int main(int argc, char **argv) {
+
+ const char * helptext ="addld 1.0 Lexicon & Dictionary module creation tool for the SWORD Project\nUse -a to add a new LD entry from standard input or a file, -d to delete an\nentry, -l to link two LD entries, -c to create a new module.\n usage:\n %s -a <filename> <key> [</path/to/file/with/entry>]\n %s -d <filename> <key>\n %s -l <filename> <first key (already assigned)> <second key>\n %s -c <filename>\nTo use 4-byte LD instead of 2-byte, insert a 4 immediately after the '-'.\nTo use zLD instead of 2-byte, insert a z immediately after the '-'.\n";
+ long entrysize;
+
+ bool fourbyte = false;
+ bool compress = false;
+ char mode;
+
+ if (argc < 3) {
+ fprintf(stderr, helptext, argv[0], argv[0], argv[0], argv[0]);
+ exit(-1);
+ }
+
+ if (argv[1][1] == '4') {
+ fourbyte = false;
+ mode = argv[1][2];
+ }
+ else if (argv[1][1] == 'z') {
+ compress = true;
+ mode = argv[1][2];
+ }
+ else {
+ mode = argv[1][1];
+ }
+
+ if ((mode == 'a') && (argc == 4 || argc == 5)) {
+
+ // Do some initialization stuff
+ if (fourbyte) {
+ char buffer[1048576]; //this is the max size of any entry
+ RawLD4 mod(argv[2]); // open our datapath with our RawText driver.
+ SWKey* key = mod.CreateKey();
+ key->Persist(1); // the magical setting
+
+ // Set our VerseKey
+ *key = argv[3];
+ mod.setKey(*key);
+ FILE *infile;
+ // case: add from text file
+ //Open our data file and read its contents into the buffer
+ if (argc == 5) infile = fopen(argv[4], "r");
+ // case: add from stdin
+ else infile = stdin;
+
+ entrysize = fread(buffer, sizeof(char), sizeof(buffer), infile);
+ mod.setEntry(buffer, entrysize); // save text to module at current position
+ }
+ else if (compress) {
+ char buffer[1048576]; //this is the max size of any entry
+ zLD mod(argv[2], 0, 0, 200, new ZipCompress()); // open our datapath with our RawText driver.
+ SWKey* key = mod.CreateKey();
+ key->Persist(1); // the magical setting
+
+ // Set our VerseKey
+ *key = argv[3];
+ mod.setKey(*key);
+ FILE *infile;
+ // case: add from text file
+ //Open our data file and read its contents into the buffer
+ if (argc == 5) infile = fopen(argv[4], "r");
+ // case: add from stdin
+ else infile = stdin;
+
+ entrysize = fread(buffer, sizeof(char), sizeof(buffer), infile);
+ mod.setEntry(buffer, entrysize); // save text to module at current position
+ }
+ else {
+ char buffer[65536]; //this is the max size of any entry
+ RawLD mod(argv[2]); // open our datapath with our RawText driver.
+ SWKey* key = mod.CreateKey();
+ key->Persist(1); // the magical setting
+
+ // Set our VerseKey
+ *key = argv[3];
+ mod.setKey(*key);
+ FILE *infile;
+ // case: add from text file
+ //Open our data file and read its contents into the buffer
+ if (argc == 5) infile = fopen(argv[4], "r");
+ // case: add from stdin
+ else infile = stdin;
+
+ entrysize = fread(buffer, sizeof(char), sizeof(buffer), infile);
+ mod.setEntry(buffer, entrysize); // save text to module at current position
+ }
+
+ }
+ // Link 2 verses
+ else if ((mode == 'l') && argc == 5) {
+ // Do some initialization stuff
+ if (fourbyte) {
+ RawLD4 mod(argv[2]); // open our datapath with our RawText driver.
+ SWKey* key = mod.CreateKey();
+ key->Persist(1); // the magical setting
+
+ *key = argv[3];
+ mod.setKey(*key);
+ SWKey tmpkey = argv[4];
+ mod << &(tmpkey);
+ }
+ else if (compress) {
+ zLD mod(argv[2]); // open our datapath with our RawText driver.
+ SWKey* key = mod.CreateKey();
+ key->Persist(1); // the magical setting
+
+ *key = argv[3];
+ mod.setKey(*key);
+
+ SWKey tmpkey = argv[4];
+ mod << &(tmpkey);
+ }
+ else {
+ RawLD mod(argv[2]); // open our datapath with our RawText driver.
+ SWKey* key = mod.CreateKey();
+ key->Persist(1); // the magical setting
+
+ *key = argv[3];
+ mod.setKey(*key);
+
+ SWKey tmpkey = argv[4];
+ mod << &(tmpkey);
+ }
+ }
+ else if ((mode == 'd') && argc == 4) {
+ if (fourbyte) {
+ RawLD4 mod(argv[2]); // open our datapath with our RawText driver.
+ mod.setKey(argv[3]);
+ mod.deleteEntry();
+ }
+ if (compress) {
+ zLD mod(argv[2]); // open our datapath with our RawText driver.
+ mod.setKey(argv[3]);
+ mod.deleteEntry();
+ }
+ else {
+ RawLD mod(argv[2]); // open our datapath with our RawText driver.
+ mod.setKey(argv[3]);
+ mod.deleteEntry();
+ }
+
+ }
+ // Make a new module
+ else if ((mode == 'c') && argc == 3) {
+ // Try to initialize a default set of datafiles and indicies at our
+ // datapath location passed to us from the user.
+ if (fourbyte) {
+ if (RawLD4::createModule(argv[2])) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s \n", argv[0], argv[2]);
+ exit(-2);
+ }
+ }
+ if (compress) {
+ if (zLD::createModule(argv[2])) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s \n", argv[0], argv[2]);
+ exit(-2);
+ }
+ }
+ else {
+ if (RawLD::createModule(argv[2])) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s \n", argv[0], argv[2]);
+ exit(-2);
+ }
+ }
+ }
+
+ // Bad arguments, print usage
+ else {
+ fprintf(stderr, helptext, argv[0], argv[0], argv[0], argv[0]);
+ exit(-1);
+ }
+}
diff --git a/utilities/addvs.cpp b/utilities/addvs.cpp
new file mode 100644
index 0000000..3d73344
--- /dev/null
+++ b/utilities/addvs.cpp
@@ -0,0 +1,186 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdlib.h>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <swmgr.h>
+#include <versekey.h>
+#include <rawtext.h>
+#include <iostream>
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::SWMgr;
+using sword::RawText;
+using sword::SWKey;
+using sword::VerseKey;
+using sword::ListKey;
+using sword::SWModule;
+#endif
+
+int main(int argc, char **argv) {
+
+ const char * helptext = "addvs 1.1 Bible & Commentary module creation tool for the SWORD Project\nUse -a to add a new verse from standard input or a file, -d to delete a verse,\n-l to link two verses, -c to create a new module.\n usage:\n %s -a </path/to/module> <verse> [</path/to/file/with/verse>]\n %s -d </path/to/module> <key>\n %s -l </path/to/module> <first verse (already assigned)> <second verse>\n %s -c </path/to/module>\n";
+ long entrysize;
+
+ if (argc < 3) {
+ fprintf(stderr, helptext, argv[0], argv[0], argv[0], argv[0]);
+ exit(-1);
+ }
+ if (!strcmp(argv[1], "-a") && (argc == 4 || argc == 5)) {
+
+ // Do some initialization stuff
+ char buffer[65536]; //this is the max size of any entry
+ RawText * mod = new RawText(argv[2]); // open our datapath with our RawText driver.
+ VerseKey *vkey = new VerseKey;
+ vkey->Headings(1);
+ vkey->AutoNormalize(0);
+ vkey->Persist(1); // the magical setting
+ *vkey = argv[3];
+ // Set our VerseKey
+ mod->setKey(*vkey);
+ if (!vkey->Chapter()) {
+ // bad hack >>
+ // 0:0 is Book intro
+ // (chapter):0 is Chapter intro
+ //
+ // 0:2 is Module intro
+ // 0:1 is Testament intro
+ int backstep = vkey->Verse();
+ vkey->Verse(0);
+ *mod -= backstep;
+ // << bad hack
+
+ FILE *infile;
+ // case: add from text file
+ //Open our data file and read its contents into the buffer
+ if (argc == 5) infile = fopen(argv[4], "r");
+ // case: add from stdin
+ else infile = stdin;
+
+ entrysize = fread(buffer, sizeof(char), sizeof(buffer), infile);
+
+ mod->setEntry(buffer, entrysize); // save text to module at current position
+ }
+ else {
+ ListKey listkey = vkey->ParseVerseList(argv[3], "Gen1:1", true);
+ int i;
+ bool havefirst = false;
+ VerseKey firstverse;
+ for (i = 0; i < listkey.Count(); i++) {
+ VerseKey *element = SWDYNAMIC_CAST(VerseKey, listkey.GetElement(i));
+ if (element) {
+ mod->Key(element->LowerBound());
+ VerseKey finalkey = element->UpperBound();
+ std::cout << (const char*)mod->Key() << "-" << (const char*)finalkey << std::endl;
+ if (!havefirst) {
+ havefirst = true;
+ firstverse = mod->Key();
+ FILE *infile;
+ // case: add from text file
+ //Open our data file and read its contents into the buffer
+ if (argc == 5) infile = fopen(argv[4], "r");
+ // case: add from stdin
+ else infile = stdin;
+
+ entrysize = fread(buffer, sizeof(char), sizeof(buffer), infile);
+
+ mod->setEntry(buffer, entrysize); // save text to module at current position
+ std::cout << "f" << (const char*)firstverse << std::endl;
+ (*mod)++;
+ }
+ while (mod->Key() <= finalkey) {
+ std::cout << (const char*)mod->Key() << std::endl;
+ *(SWModule*)mod << &firstverse;
+ (*mod)++;
+ }
+ }
+ else {
+ if (havefirst) {
+ mod->Key(*listkey.GetElement(i));
+ *(SWModule*)mod << &firstverse;
+ std::cout << (const char*)mod->Key() << std::endl;
+ }
+ else {
+ mod->Key(*listkey.GetElement(i));
+ havefirst = true;
+ firstverse = mod->Key();
+ FILE *infile;
+ // case: add from text file
+ //Open our data file and read its contents into the buffer
+ if (argc == 5) infile = fopen(argv[4], "r");
+ // case: add from stdin
+ else infile = stdin;
+
+ entrysize = fread(buffer, sizeof(char), sizeof(buffer), infile);
+
+ mod->setEntry(buffer, entrysize); // save text to module at current position
+ std::cout << "f" << (const char*)firstverse << std::endl;
+ }
+ }
+ }
+ }
+ delete vkey;
+ }
+ // Link 2 verses
+ else if (!strcmp(argv[1], "-l") && argc == 5) {
+ // Do some initialization stuff
+ RawText *mod = new RawText(argv[2]); // open our datapath with our RawText driver.
+
+ mod->setKey(argv[4]); // set key from argument
+ SWKey tmpkey = (SWKey) argv[3];
+ *(SWModule*)mod << &(tmpkey);
+ delete mod;
+ }
+
+ else if (!strcmp(argv[1], "-d") && argc == 4) {
+ RawText mod(argv[2]); // open our datapath with our RawText driver.
+ VerseKey *vkey = new VerseKey;
+ vkey->Headings(1);
+ vkey->AutoNormalize(0);
+ vkey->Persist(1); // the magical setting
+
+ // Set our VerseKey
+ mod.setKey(*vkey);
+ *vkey = argv[3];
+
+ if (!vkey->Chapter())
+ {
+ // bad hack >>
+ // 0:0 is Book intro
+ // (chapter):0 is Chapter intro
+ //
+ // 0:2 is Module intro
+ // 0:1 is Testament intro
+ int backstep = vkey->Verse();
+ vkey->Verse(0);
+ mod -= backstep;
+ // << bad hack
+ }
+
+ mod.deleteEntry();
+ delete vkey;
+ }
+
+ // Make a new module
+ else if (!strcmp(argv[1], "-c") && argc == 3) {
+ // Try to initialize a default set of datafiles and indicies at our
+ // datapath location passed to us from the user.
+ if (RawText::createModule(argv[2])) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s \n", argv[0], argv[2]);
+ exit(-2);
+ }
+ }
+
+ // Bad arguments, print usage
+ else {
+ fprintf(stderr, helptext, argv[0], argv[0], argv[0], argv[0]);
+ exit(-1);
+ }
+}
diff --git a/utilities/bcpp6make/cipherraw.bpf b/utilities/bcpp6make/cipherraw.bpf
new file mode 100644
index 0000000..5da8824
--- /dev/null
+++ b/utilities/bcpp6make/cipherraw.bpf
@@ -0,0 +1,3 @@
+This file is used by the project manager only and should be treated like the project file
+
+ main \ No newline at end of file
diff --git a/utilities/bcpp6make/cipherraw.bpr b/utilities/bcpp6make/cipherraw.bpr
new file mode 100644
index 0000000..25e48f3
--- /dev/null
+++ b/utilities/bcpp6make/cipherraw.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\cipherraw.exe"/>
+ <OBJFILES value="obj\cipherraw.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="cipherraw.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="cipherraw.bpf" FORMNAME="" UNITNAME="cipherraw" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\cipherraw.cpp" FORMNAME="" UNITNAME="cipherraw" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/diatheke.bpf b/utilities/bcpp6make/diatheke.bpf
new file mode 100644
index 0000000..4c1e949
--- /dev/null
+++ b/utilities/bcpp6make/diatheke.bpf
@@ -0,0 +1,6 @@
+
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcpp6make/diatheke.bpr b/utilities/bcpp6make/diatheke.bpr
new file mode 100644
index 0000000..d1d25a8
--- /dev/null
+++ b/utilities/bcpp6make/diatheke.bpr
@@ -0,0 +1,159 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\diatheke.exe"/>
+ <OBJFILES value="obj\diatheke.obj obj\thmlcgi.obj obj\corediatheke.obj obj\diafiltmgr.obj
+ obj\diathekemgr.obj obj\gbfcgi.obj obj\osiscgi.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;..\diatheke"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="diatheke.bpf"/>
+ <INCLUDEPATH value="..\diatheke;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl;Z:\Biblie\SRC\icu-sword\source\common;Z:\Biblie\SRC\icu-sword\source\i18n"/>
+ <LIBPATH value="..\diatheke;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\diatheke -I..\. -I.. -I..\..\include -I$(BCB)\include
+ -I$(BCB)\include\vcl -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY
+ -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -s -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="diatheke.bpf" FORMNAME="" UNITNAME="diatheke" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\diatheke\diatheke.cpp" FORMNAME="" UNITNAME="diatheke" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\diatheke\thmlcgi.cpp" FORMNAME="" UNITNAME="thmlcgi" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\diatheke\corediatheke.cpp" FORMNAME="" UNITNAME="corediatheke" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\diatheke\diafiltmgr.cpp" FORMNAME="" UNITNAME="diafiltmgr" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\diatheke\diathekemgr.cpp" FORMNAME="" UNITNAME="diathekemgr" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\diatheke\gbfcgi.cpp" FORMNAME="" UNITNAME="gbfcgi" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\diatheke\osiscgi.cpp" FORMNAME="" UNITNAME="osiscgi" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+Count=8
+Item0=..\diatheke;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl;Z:\Biblie\SRC\icu-sword\source\common;Z:\Biblie\SRC\icu-sword\source\i18n
+Item1=..\diatheke;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl;Z:\Biblie\SRC\icu-sword\source\common
+Item2=..\diatheke;..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl;Z:\Biblie\SRC\icu-sword\source\common
+Item3=..\diatheke;..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item4=..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item5=..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item6=..;..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item7=..\..\utilities;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=7
+Item0=..\diatheke;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..\diatheke;..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item5=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item6=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=-b system -k modulelist
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=Z:\Biblie\SRC\sword\utilities\CBuilder6\stage\diatheke.exe
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/imp2gbs.bpf b/utilities/bcpp6make/imp2gbs.bpf
new file mode 100644
index 0000000..5da8824
--- /dev/null
+++ b/utilities/bcpp6make/imp2gbs.bpf
@@ -0,0 +1,3 @@
+This file is used by the project manager only and should be treated like the project file
+
+ main \ No newline at end of file
diff --git a/utilities/bcpp6make/imp2gbs.bpr b/utilities/bcpp6make/imp2gbs.bpr
new file mode 100644
index 0000000..095e1a8
--- /dev/null
+++ b/utilities/bcpp6make/imp2gbs.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\imp2gbs.exe"/>
+ <OBJFILES value="obj\imp2gbs.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="imp2gbs.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="imp2gbs.bpf" FORMNAME="" UNITNAME="imp2gbs" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\imp2gbs.cpp" FORMNAME="" UNITNAME="imp2gbs" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/imp2ld.bpf b/utilities/bcpp6make/imp2ld.bpf
new file mode 100644
index 0000000..5da8824
--- /dev/null
+++ b/utilities/bcpp6make/imp2ld.bpf
@@ -0,0 +1,3 @@
+This file is used by the project manager only and should be treated like the project file
+
+ main \ No newline at end of file
diff --git a/utilities/bcpp6make/imp2ld.bpr b/utilities/bcpp6make/imp2ld.bpr
new file mode 100644
index 0000000..9d52d2f
--- /dev/null
+++ b/utilities/bcpp6make/imp2ld.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\imp2ld.exe"/>
+ <OBJFILES value="obj\imp2ld.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="imp2ld.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="imp2ld.bpf" FORMNAME="" UNITNAME="imp2ld" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\imp2ld.cpp" FORMNAME="" UNITNAME="imp2ld" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/imp2vs.bpf b/utilities/bcpp6make/imp2vs.bpf
new file mode 100644
index 0000000..5da8824
--- /dev/null
+++ b/utilities/bcpp6make/imp2vs.bpf
@@ -0,0 +1,3 @@
+This file is used by the project manager only and should be treated like the project file
+
+ main \ No newline at end of file
diff --git a/utilities/bcpp6make/imp2vs.bpr b/utilities/bcpp6make/imp2vs.bpr
new file mode 100644
index 0000000..78f3dd8
--- /dev/null
+++ b/utilities/bcpp6make/imp2vs.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\imp2vs.exe"/>
+ <OBJFILES value="obj\imp2vs.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="imp2vs.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="imp2vs.bpf" FORMNAME="" UNITNAME="imp2vs" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\imp2vs.cpp" FORMNAME="" UNITNAME="imp2vs" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/mkfastmod.bpf b/utilities/bcpp6make/mkfastmod.bpf
new file mode 100644
index 0000000..5da8824
--- /dev/null
+++ b/utilities/bcpp6make/mkfastmod.bpf
@@ -0,0 +1,3 @@
+This file is used by the project manager only and should be treated like the project file
+
+ main \ No newline at end of file
diff --git a/utilities/bcpp6make/mkfastmod.bpr b/utilities/bcpp6make/mkfastmod.bpr
new file mode 100644
index 0000000..f91620b
--- /dev/null
+++ b/utilities/bcpp6make/mkfastmod.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\mkfastmod.exe"/>
+ <OBJFILES value="obj\mkfastmod.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="mkfastmod.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="mkfastmod.bpf" FORMNAME="" UNITNAME="mkfastmod" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\mkfastmod.cpp" FORMNAME="" UNITNAME="mkfastmod" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/mod2imp.bpf b/utilities/bcpp6make/mod2imp.bpf
new file mode 100644
index 0000000..5da8824
--- /dev/null
+++ b/utilities/bcpp6make/mod2imp.bpf
@@ -0,0 +1,3 @@
+This file is used by the project manager only and should be treated like the project file
+
+ main \ No newline at end of file
diff --git a/utilities/bcpp6make/mod2imp.bpr b/utilities/bcpp6make/mod2imp.bpr
new file mode 100644
index 0000000..f5a9f9c
--- /dev/null
+++ b/utilities/bcpp6make/mod2imp.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\mod2imp.exe"/>
+ <OBJFILES value="obj\mod2imp.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="mod2imp.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="mod2imp.bpf" FORMNAME="" UNITNAME="mod2imp" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\mod2imp.cpp" FORMNAME="" UNITNAME="mod2imp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/mod2osis.bpf b/utilities/bcpp6make/mod2osis.bpf
new file mode 100644
index 0000000..5da8824
--- /dev/null
+++ b/utilities/bcpp6make/mod2osis.bpf
@@ -0,0 +1,3 @@
+This file is used by the project manager only and should be treated like the project file
+
+ main \ No newline at end of file
diff --git a/utilities/bcpp6make/mod2osis.bpr b/utilities/bcpp6make/mod2osis.bpr
new file mode 100644
index 0000000..9755a8d
--- /dev/null
+++ b/utilities/bcpp6make/mod2osis.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\mod2osis.exe"/>
+ <OBJFILES value="obj\mod2osis.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="mod2osis.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="mod2osis.bpf" FORMNAME="" UNITNAME="mod2osis" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\mod2osis.cpp" FORMNAME="" UNITNAME="mod2osis" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=WHAC
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/mod2vpl.bpf b/utilities/bcpp6make/mod2vpl.bpf
new file mode 100644
index 0000000..5da8824
--- /dev/null
+++ b/utilities/bcpp6make/mod2vpl.bpf
@@ -0,0 +1,3 @@
+This file is used by the project manager only and should be treated like the project file
+
+ main \ No newline at end of file
diff --git a/utilities/bcpp6make/mod2vpl.bpr b/utilities/bcpp6make/mod2vpl.bpr
new file mode 100644
index 0000000..90ca034
--- /dev/null
+++ b/utilities/bcpp6make/mod2vpl.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\mod2vpl.exe"/>
+ <OBJFILES value="obj\mod2vpl.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="mod2vpl.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="mod2vpl.bpf" FORMNAME="" UNITNAME="mod2vpl" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\mod2vpl.cpp" FORMNAME="" UNITNAME="mod2vpl" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/mod2zmod.bpf b/utilities/bcpp6make/mod2zmod.bpf
new file mode 100644
index 0000000..4c1e949
--- /dev/null
+++ b/utilities/bcpp6make/mod2zmod.bpf
@@ -0,0 +1,6 @@
+
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcpp6make/mod2zmod.bpr b/utilities/bcpp6make/mod2zmod.bpr
new file mode 100644
index 0000000..867e102
--- /dev/null
+++ b/utilities/bcpp6make/mod2zmod.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\mod2zmod.exe"/>
+ <OBJFILES value="obj\mod2zmod.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="mod2zmod.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="mod2zmod.bpf" FORMNAME="" UNITNAME="mod2zmod" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\mod2zmod.cpp" FORMNAME="" UNITNAME="mod2zmod" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/obj/dummy b/utilities/bcpp6make/obj/dummy
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/utilities/bcpp6make/obj/dummy
diff --git a/utilities/bcpp6make/osis2mod.bpf b/utilities/bcpp6make/osis2mod.bpf
new file mode 100644
index 0000000..4c1e949
--- /dev/null
+++ b/utilities/bcpp6make/osis2mod.bpf
@@ -0,0 +1,6 @@
+
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcpp6make/osis2mod.bpr b/utilities/bcpp6make/osis2mod.bpr
new file mode 100644
index 0000000..2ba8c78
--- /dev/null
+++ b/utilities/bcpp6make/osis2mod.bpr
@@ -0,0 +1,146 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\osis2mod.exe"/>
+ <OBJFILES value="obj\osis2mod.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="osis2mod.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="osis2mod.bpf" FORMNAME="" UNITNAME="osis2mod" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\osis2mod.cpp" FORMNAME="" UNITNAME="osis2mod" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=3
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0
+Item2=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=WHAC
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/stage/dummy b/utilities/bcpp6make/stage/dummy
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/utilities/bcpp6make/stage/dummy
diff --git a/utilities/bcpp6make/step2vpl.bpf b/utilities/bcpp6make/step2vpl.bpf
new file mode 100644
index 0000000..4c1e949
--- /dev/null
+++ b/utilities/bcpp6make/step2vpl.bpf
@@ -0,0 +1,6 @@
+
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcpp6make/step2vpl.bpr b/utilities/bcpp6make/step2vpl.bpr
new file mode 100644
index 0000000..f29d65e
--- /dev/null
+++ b/utilities/bcpp6make/step2vpl.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\step2vpl.exe"/>
+ <OBJFILES value="obj\step2vpl.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="step2vpl.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="step2vpl.bpf" FORMNAME="" UNITNAME="step2vpl" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\step2vpl.cpp" FORMNAME="" UNITNAME="step2vpl" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/stepdump.bpf b/utilities/bcpp6make/stepdump.bpf
new file mode 100644
index 0000000..4c1e949
--- /dev/null
+++ b/utilities/bcpp6make/stepdump.bpf
@@ -0,0 +1,6 @@
+
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcpp6make/stepdump.bpr b/utilities/bcpp6make/stepdump.bpr
new file mode 100644
index 0000000..b3db81c
--- /dev/null
+++ b/utilities/bcpp6make/stepdump.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\stepdump.exe"/>
+ <OBJFILES value="obj\stepdump.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="stepdump.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="stepdump.bpf" FORMNAME="" UNITNAME="stepdump" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\stepdump.cpp" FORMNAME="" UNITNAME="stepdump" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/utils.bpg b/utilities/bcpp6make/utils.bpg
new file mode 100644
index 0000000..258f6bb
--- /dev/null
+++ b/utilities/bcpp6make/utils.bpg
@@ -0,0 +1,89 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = icuinbcb6.lib icuucbcb6.lib libsword6icu.lib cipherraw.exe imp2gbs.exe imp2ld.exe imp2vs.exe mkfastmod.exe mod2imp.exe mod2osis.exe mod2vpl.exe mod2zmod.exe osis2mod.exe step2vpl.exe stepdump.exe vpl2mod.exe vs2osisref.exe xml2gbs.exe
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+cipherraw.exe: cipherraw.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+imp2gbs.exe: imp2gbs.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+imp2ld.exe: imp2ld.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+imp2vs.exe: imp2vs.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+mkfastmod.exe: mkfastmod.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+mod2imp.exe: mod2imp.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+mod2osis.exe: mod2osis.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+mod2vpl.exe: mod2vpl.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+mod2zmod.exe: mod2zmod.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+osis2mod.exe: osis2mod.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+step2vpl.exe: step2vpl.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+stepdump.exe: stepdump.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+vpl2mod.exe: vpl2mod.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+vs2osisref.exe: vs2osisref.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+xml2gbs.exe: xml2gbs.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+libsword6icu.lib: ..\..\..\sword\lib\bcppmake\libsword6icu.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+icuinbcb6.lib: ..\..\..\icu-sword\as_is\borland\icuinbcb6.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+icuucbcb6.lib: ..\..\..\icu-sword\as_is\borland\icuucbcb6.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+
diff --git a/utilities/bcpp6make/vpl2mod.bpf b/utilities/bcpp6make/vpl2mod.bpf
new file mode 100644
index 0000000..4c1e949
--- /dev/null
+++ b/utilities/bcpp6make/vpl2mod.bpf
@@ -0,0 +1,6 @@
+
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcpp6make/vpl2mod.bpr b/utilities/bcpp6make/vpl2mod.bpr
new file mode 100644
index 0000000..2c135d6
--- /dev/null
+++ b/utilities/bcpp6make/vpl2mod.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\vpl2mod.exe"/>
+ <OBJFILES value="obj\vpl2mod.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="vpl2mod.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="vpl2mod.bpf" FORMNAME="" UNITNAME="vpl2mod" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\vpl2mod.cpp" FORMNAME="" UNITNAME="vpl2mod" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/vs2osisref.bpf b/utilities/bcpp6make/vs2osisref.bpf
new file mode 100644
index 0000000..4c1e949
--- /dev/null
+++ b/utilities/bcpp6make/vs2osisref.bpf
@@ -0,0 +1,6 @@
+
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcpp6make/vs2osisref.bpr b/utilities/bcpp6make/vs2osisref.bpr
new file mode 100644
index 0000000..c2d8334
--- /dev/null
+++ b/utilities/bcpp6make/vs2osisref.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\vs2osisref.exe"/>
+ <OBJFILES value="obj\vs2osisref.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="vs2osisref.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="vs2osisref.bpf" FORMNAME="" UNITNAME="vs2osisref" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\vs2osisref.cpp" FORMNAME="" UNITNAME="vs2osisref" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcpp6make/xml2gbs.bpf b/utilities/bcpp6make/xml2gbs.bpf
new file mode 100644
index 0000000..4c1e949
--- /dev/null
+++ b/utilities/bcpp6make/xml2gbs.bpf
@@ -0,0 +1,6 @@
+
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcpp6make/xml2gbs.bpr b/utilities/bcpp6make/xml2gbs.bpr
new file mode 100644
index 0000000..a15c843
--- /dev/null
+++ b/utilities/bcpp6make/xml2gbs.bpr
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="stage\xml2gbs.exe"/>
+ <OBJFILES value="obj\xml2gbs.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuucbcb6.lib ..\..\lib\libsword6icu.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi qrpt.bpi dbrtl.bpi vcldb.bpi
+ bdertl.bpi ibsmp.bpi vcldbx.bpi teeui.bpi teedb.bpi tee.bpi teeqr.bpi
+ ibxpress.bpi bcbie.bpi vclie.bpi inetdb.bpi inet.bpi nmfast.bpi dclocx.bpi
+ bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="xml2gbs.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~1\lib\vcl60.csm -Vx -Ve -X- -r- -a8 -b-
+ -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -ap -Tpe -GD -x -Gn -M -v /P512"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="xml2gbs.bpf" FORMNAME="" UNITNAME="xml2gbs" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\xml2gbs.cpp" FORMNAME="" UNITNAME="xml2gbs" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuinbcb6.lib" FORMNAME="" UNITNAME="icuin" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" FORMNAME="" UNITNAME="icudatab" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuucbcb6.lib" FORMNAME="" UNITNAME="icuuc" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\lib\libsword6icu.lib" FORMNAME="" UNITNAME="libsword" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_;USBINARY;_USE_OLD_RW_STL;U_HAVE_PLACEMENT_NEW=0;_DEBUG
+Item1=_DEBUG
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=obj\
+
+[HistoryLists\hlFinalOutputDir]
+Count=1
+Item0=stage\
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=test test.osis.xml 0
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/Makefile.am b/utilities/bcppmake/Makefile.am
new file mode 100644
index 0000000..91c34d4
--- /dev/null
+++ b/utilities/bcppmake/Makefile.am
@@ -0,0 +1,37 @@
+swbcppmakedir = $(top_srcdir)/utilities/bcppmake
+
+EXTRA_DIST += $(swbcppmakedir)/imp2ld.bpf
+EXTRA_DIST += $(swbcppmakedir)/mod2imp.bpf
+EXTRA_DIST += $(swbcppmakedir)/osis2mod.bpf
+EXTRA_DIST += $(swbcppmakedir)/utilities.bpg
+EXTRA_DIST += $(swbcppmakedir)/imp2ld.bpr
+EXTRA_DIST += $(swbcppmakedir)/mod2imp.bpr
+EXTRA_DIST += $(swbcppmakedir)/osis2mod.bpr
+EXTRA_DIST += $(swbcppmakedir)/vpl2mod.bpf
+EXTRA_DIST += $(swbcppmakedir)/cipherraw.bpf
+EXTRA_DIST += $(swbcppmakedir)/imp2vs.bpf
+EXTRA_DIST += $(swbcppmakedir)/mod2osis.bpf
+EXTRA_DIST += $(swbcppmakedir)/step2vpl.bpf
+EXTRA_DIST += $(swbcppmakedir)/vpl2mod.bpr
+EXTRA_DIST += $(swbcppmakedir)/cipherraw.bpr
+EXTRA_DIST += $(swbcppmakedir)/imp2vs.bpr
+EXTRA_DIST += $(swbcppmakedir)/mod2osis.bpr
+EXTRA_DIST += $(swbcppmakedir)/step2vpl.bpr
+EXTRA_DIST += $(swbcppmakedir)/vs2osisref.bpf
+EXTRA_DIST += $(swbcppmakedir)/diatheke.bpf
+EXTRA_DIST += $(swbcppmakedir)/libsword.bpf
+EXTRA_DIST += $(swbcppmakedir)/mod2vpl.bpf
+EXTRA_DIST += $(swbcppmakedir)/stepdump.bpf
+EXTRA_DIST += $(swbcppmakedir)/vs2osisref.bpr
+EXTRA_DIST += $(swbcppmakedir)/diatheke.bpr
+EXTRA_DIST += $(swbcppmakedir)/libsword.bpr
+EXTRA_DIST += $(swbcppmakedir)/mod2vpl.bpr
+EXTRA_DIST += $(swbcppmakedir)/stepdump.bpr
+EXTRA_DIST += $(swbcppmakedir)/xml2gbs.bpf
+EXTRA_DIST += $(swbcppmakedir)/imp2gbs.bpf
+EXTRA_DIST += $(swbcppmakedir)/mkfastmod.bpf
+EXTRA_DIST += $(swbcppmakedir)/mod2zmod.bpf
+EXTRA_DIST += $(swbcppmakedir)/xml2gbs.bpr
+EXTRA_DIST += $(swbcppmakedir)/imp2gbs.bpr
+EXTRA_DIST += $(swbcppmakedir)/mkfastmod.bpr
+EXTRA_DIST += $(swbcppmakedir)/mod2zmod.bpr
diff --git a/utilities/bcppmake/cipherraw.bdsproj b/utilities/bcppmake/cipherraw.bdsproj
new file mode 100644
index 0000000..b36d5e5
--- /dev/null
+++ b/utilities/bcppmake/cipherraw.bdsproj
@@ -0,0 +1,322 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{8B701034-E9E3-4B73-9D88-2DC067DF3B34}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="cipherraw.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.3" value="USBINARY"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.3" value="USBINARY"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.3" value="USBINARY"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.arg" value="0x300000"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.arg.merge" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Sc:xxxx.arg" value="0x20000"/>
+ <property category="win32.*.win32b.ilink32" name="option.Sc:xxxx.arg.merge" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.Sc:xxxx.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.3" value="USBINARY"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="cipherraw.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="cipherraw" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\cipherraw.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="cipherraw" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">3</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_;USBINARY</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item2">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams"></Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">cipherraw.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/cipherraw.bpf b/utilities/bcppmake/cipherraw.bpf
new file mode 100644
index 0000000..5d0b116
--- /dev/null
+++ b/utilities/bcppmake/cipherraw.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\cipherraw.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/cipherraw.bpr b/utilities/bcppmake/cipherraw.bpr
new file mode 100644
index 0000000..6a089de
--- /dev/null
+++ b/utilities/bcppmake/cipherraw.bpr
@@ -0,0 +1,124 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="cipherraw.exe"/>
+ <OBJFILES value="..\cipherraw.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="cipherraw.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -S:0x300000 -Sc:0x20000 -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=3
+Item0=_ICU_;_ICUSWORD_;USBINARY
+Item1=_ICU_;_ICUSWORD_
+Item2=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/diatheke.bdsproj b/utilities/bcppmake/diatheke.bdsproj
new file mode 100644
index 0000000..18546e6
--- /dev/null
+++ b/utilities/bcppmake/diatheke.bdsproj
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{06777FCC-BCA9-468B-9054-72709495FE83}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="dontverifylibs" value="0"/>
+ <property category="build.node" name="name" value="diatheke.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="1"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="WIN32"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\diatheke"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\diatheke\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.3" value="_RTLDLL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.4" value="USEPACKAGES"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\diatheke"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\diatheke\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\diatheke"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\diatheke\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\diatheke\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\diatheke"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\diatheke"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\diatheke"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\diatheke"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\diatheke"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\diatheke"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mti.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.2" value="$(PACKAGES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\diatheke"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\diatheke\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="diatheke.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="diatheke" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\diatheke\diatheke.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="diatheke" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\diatheke\thmlcgi.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="thmlcgi" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\diatheke\corediatheke.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="corediatheke" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\diatheke\diafiltmgr.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="diafiltmgr" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\diatheke\diathekemgr.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="diathekemgr" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\diatheke\gbfcgi.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="gbfcgi" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\diatheke\osiscgi.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="osiscgi" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">3</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\diatheke;$(BCB)\include;$(BCB)\include\vcl;..\..\include</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\diatheke;$(BCB)\include;$(BCB)\include\vcl;..\..\include\</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..\diatheke;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">2</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\diatheke;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..\diatheke;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">1</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams"></Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">diatheke.bpf</Source>
+ </Source> <buildevents/>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/diatheke.bpf b/utilities/bcppmake/diatheke.bpf
new file mode 100644
index 0000000..c17d73c
--- /dev/null
+++ b/utilities/bcppmake/diatheke.bpf
@@ -0,0 +1,17 @@
+USEUNIT("..\diatheke\diatheke.cpp");
+USEUNIT("..\diatheke\thmlcgi.cpp");
+USEUNIT("..\diatheke\corediatheke.cpp");
+USEUNIT("..\diatheke\diafiltmgr.cpp");
+USEUNIT("..\diatheke\diathekemgr.cpp");
+USEUNIT("..\diatheke\gbfcgi.cpp");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USEUNIT("..\diatheke\osiscgi.cpp");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/diatheke.bpr b/utilities/bcppmake/diatheke.bpr
new file mode 100644
index 0000000..bd8ad36
--- /dev/null
+++ b/utilities/bcppmake/diatheke.bpr
@@ -0,0 +1,120 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="diatheke.exe"/>
+ <OBJFILES value="..\diatheke\diatheke.obj ..\diatheke\thmlcgi.obj
+ ..\diatheke\corediatheke.obj ..\diatheke\diafiltmgr.obj
+ ..\diatheke\diathekemgr.obj ..\diatheke\gbfcgi.obj ..\diatheke\osiscgi.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\lib\libsword.lib ..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;..\diatheke"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value=""/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL;_RTLDLL;USEPACKAGES"/>
+ <MAINSOURCE value="diatheke.bpf"/>
+ <INCLUDEPATH value="..\diatheke;$(BCB)\include;$(BCB)\include\vcl;..\..\include"/>
+ <LIBPATH value="..\diatheke;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\diatheke -I$(BCB)\include -I$(BCB)\include\vcl -I..\..\include
+ -src_suffix cpp -D_DEBUG -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(PACKAGES) $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mti.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+Count=3
+Item0=..\diatheke;$(BCB)\include;$(BCB)\include\vcl;..\..\include
+Item1=..\diatheke;$(BCB)\include;$(BCB)\include\vcl;..\..\include\
+Item2=..\diatheke;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=2
+Item0=..\diatheke;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..\diatheke;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=1
+Item0=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/imp2gbs.bdsproj b/utilities/bcppmake/imp2gbs.bdsproj
new file mode 100644
index 0000000..0db98c5
--- /dev/null
+++ b/utilities/bcppmake/imp2gbs.bdsproj
@@ -0,0 +1,323 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{C753C90F-6763-4737-A085-8679D216A2FC}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="imp2gbs.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.7" value="..\..\..\icu-sword\source\i18n"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.8" value="..\..\..\icu-sword\source\common"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.arg" value="0x300000"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.arg.merge" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Sc:xxxx.arg" value="0x20000"/>
+ <property category="win32.*.win32b.ilink32" name="option.Sc:xxxx.arg.merge" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.Sc:xxxx.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="imp2gbs.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="imp2gbs" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\imp2gbs.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="imp2gbs" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">2</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams"></Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">imp2gbs.bpf</Source>
+ </Source> <buildevents/>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/imp2gbs.bpf b/utilities/bcppmake/imp2gbs.bpf
new file mode 100644
index 0000000..9bd2a3f
--- /dev/null
+++ b/utilities/bcppmake/imp2gbs.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\imp2gbs.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/imp2gbs.bpr b/utilities/bcppmake/imp2gbs.bpr
new file mode 100644
index 0000000..089b6ad
--- /dev/null
+++ b/utilities/bcppmake/imp2gbs.bpr
@@ -0,0 +1,130 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="imp2gbs.exe"/>
+ <OBJFILES value="..\imp2gbs.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="imp2gbs.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl;..\..\..\icu-sword\source\i18n;..\..\..\icu-sword\source\common"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -I..\..\..\icu-sword\source\i18n -I..\..\..\icu-sword\source\common
+ -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -S:0x300000 -Sc:0x20000 -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+Count=5
+Item0=..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl;..\..\..\icu-sword\source\i18n;..\..\..\icu-sword\source\common
+Item1=..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item2=..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item3=..;..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item4=..\..\utilities;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_
+Item1=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[CORBA]
+AddServerUnit=1
+AddClientUnit=1
+PrecompiledHeaders=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/imp2ld.bdsproj b/utilities/bcppmake/imp2ld.bdsproj
new file mode 100644
index 0000000..b02285d
--- /dev/null
+++ b/utilities/bcppmake/imp2ld.bdsproj
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{C9D9EA10-ED0F-4164-95BF-276685D5FEFC}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="imp2ld.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.arg" value="0x300000"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.arg.merge" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="imp2ld.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="imp2ld" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\imp2ld.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="imp2ld" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">2</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams"></Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">imp2ld.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/imp2ld.bpf b/utilities/bcppmake/imp2ld.bpf
new file mode 100644
index 0000000..e983517
--- /dev/null
+++ b/utilities/bcppmake/imp2ld.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\imp2ld.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/imp2ld.bpr b/utilities/bcppmake/imp2ld.bpr
new file mode 100644
index 0000000..6703191
--- /dev/null
+++ b/utilities/bcppmake/imp2ld.bpr
@@ -0,0 +1,128 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="imp2ld.exe"/>
+ <OBJFILES value="..\imp2ld.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="imp2ld.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -S:0x300000 -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_
+Item1=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[CORBA]
+AddServerUnit=1
+AddClientUnit=1
+PrecompiledHeaders=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/imp2vs.bdsproj b/utilities/bcppmake/imp2vs.bdsproj
new file mode 100644
index 0000000..5eddfb1
--- /dev/null
+++ b/utilities/bcppmake/imp2vs.bdsproj
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{D58B7A37-F286-4252-A3EC-736F261D9021}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="imp2vs.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.arg" value="0x300000"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.arg.merge" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="imp2vs.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="imp2vs" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\imp2vs.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="imp2vs" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">2</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams"></Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">imp2vs.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/imp2vs.bpf b/utilities/bcppmake/imp2vs.bpf
new file mode 100644
index 0000000..d6b81dc
--- /dev/null
+++ b/utilities/bcppmake/imp2vs.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\imp2vs.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/imp2vs.bpr b/utilities/bcppmake/imp2vs.bpr
new file mode 100644
index 0000000..8c4b229
--- /dev/null
+++ b/utilities/bcppmake/imp2vs.bpr
@@ -0,0 +1,128 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="imp2vs.exe"/>
+ <OBJFILES value="..\imp2vs.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="imp2vs.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -S:0x300000 -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_
+Item1=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[CORBA]
+AddServerUnit=1
+AddClientUnit=1
+PrecompiledHeaders=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/installmgr.bdsproj b/utilities/bcppmake/installmgr.bdsproj
new file mode 100644
index 0000000..ef5de9b
--- /dev/null
+++ b/utilities/bcppmake/installmgr.bdsproj
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{1C014927-4D74-41D5-B034-1C5F85DBE9BE}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="installmgr.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="UNICODE"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.3" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.4" value="USBINARY"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.5" value="U_HAVE_PLACEMENT_NEW=0"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.6" value="USELUCENE"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.7" value="_WIN32"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.8" value="_CL_DISABLE_MULTITHREADING"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\..\src\mgr"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.7" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\..\src\mgr"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.7" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\..\src\mgr"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.7" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\..\src\mgr"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.6" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\..\src\mgr"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.7" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="installmgr.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="installmgr" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\installmgr.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="installmgr" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\apps\InstallMgr\libcurl.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libcurl" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">2</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams">RWP ./ 3 2 abc</Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">installmgr.bpf</Source>
+ </Source> <buildevents/>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/installmgr.bpf b/utilities/bcppmake/installmgr.bpf
new file mode 100644
index 0000000..b9a4c05
--- /dev/null
+++ b/utilities/bcppmake/installmgr.bpf
@@ -0,0 +1,12 @@
+USEUNIT("..\installmgr.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+USELIB("..\..\..\biblecs\apps\InstallMgr\libcurl.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/installmgr.bpr b/utilities/bcppmake/installmgr.bpr
new file mode 100644
index 0000000..a4fa19e
--- /dev/null
+++ b/utilities/bcppmake/installmgr.bpr
@@ -0,0 +1,124 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="installmgr.exe"/>
+ <OBJFILES value="..\installmgr.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib
+ ..\..\..\biblecs\apps\InstallMgr\libcurl.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="installmgr.bpf"/>
+ <INCLUDEPATH value="..\..\src\mgr;..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\..\src\mgr;..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\..\src\mgr -I..\. -I.. -I..\..\include -I$(BCB)\include
+ -I$(BCB)\include\vcl -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_
+Item1=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=RWP ./ 3 2 abc
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/libsword.bpf b/utilities/bcppmake/libsword.bpf
new file mode 100644
index 0000000..e4c4667
--- /dev/null
+++ b/utilities/bcppmake/libsword.bpf
@@ -0,0 +1,118 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+USEUNIT("..\..\src\keys\versekey.cpp");
+USEUNIT("..\..\src\keys\strkey.cpp");
+USEUNIT("..\..\src\keys\swkey.cpp");
+USEUNIT("..\..\src\keys\listkey.cpp");
+USEUNIT("..\..\src\mgr\swmgr.cpp");
+USEUNIT("..\..\src\mgr\localemgr.cpp");
+USEUNIT("..\..\src\mgr\swconfig.cpp");
+USEUNIT("..\..\src\mgr\swlocale.cpp");
+USEUNIT("..\..\src\mgr\filemgr.cpp");
+USEUNIT("..\..\src\utilfuns\utilstr.cpp");
+USEUNIT("..\..\src\utilfuns\utilconf.cpp");
+USEUNIT("..\..\src\utilfuns\Greek2Greek.cpp");
+USEUNIT("..\..\src\frontend\swlog.cpp");
+USEUNIT("..\..\src\frontend\swdisp.cpp");
+USEUNIT("..\..\src\modules\swmodule.cpp");
+USEUNIT("..\..\src\modules\comments\swcom.cpp");
+USEUNIT("..\..\src\modules\comments\hrefcom\hrefcom.cpp");
+USEUNIT("..\..\src\modules\comments\rawcom\rawcom.cpp");
+USEUNIT("..\..\src\modules\comments\rawfiles\rawfiles.cpp");
+USEUNIT("..\..\src\modules\common\lzsscomprs.cpp");
+USEUNIT("..\..\src\modules\common\rawstr.cpp");
+USEUNIT("..\..\src\modules\common\rawverse.cpp");
+USEUNIT("..\..\src\modules\common\sapphire.cpp");
+USEUNIT("..\..\src\modules\common\swcipher.cpp");
+USEUNIT("..\..\src\modules\common\swcomprs.cpp");
+USEUNIT("..\..\src\modules\filters\thmlrtf.cpp");
+USEUNIT("..\..\src\modules\filters\gbffootnotes.cpp");
+USEUNIT("..\..\src\modules\filters\gbfhtml.cpp");
+USEUNIT("..\..\src\modules\filters\gbfplain.cpp");
+USEUNIT("..\..\src\modules\filters\gbfrtf.cpp");
+USEUNIT("..\..\src\modules\filters\gbfstrongs.cpp");
+USEUNIT("..\..\src\modules\filters\gbfthml.cpp");
+USEUNIT("..\..\src\modules\filters\plainfootnotes.cpp");
+USEUNIT("..\..\src\modules\filters\plainhtml.cpp");
+USEUNIT("..\..\src\modules\filters\rtfhtml.cpp");
+USEUNIT("..\..\src\modules\filters\rwphtml.cpp");
+USEUNIT("..\..\src\modules\filters\rwprtf.cpp");
+USEUNIT("..\..\src\modules\filters\thmlgbf.cpp");
+USEUNIT("..\..\src\modules\filters\thmlhtml.cpp");
+USEUNIT("..\..\src\modules\filters\thmlplain.cpp");
+USEUNIT("..\..\src\modules\filters\cipherfil.cpp");
+USEUNIT("..\..\src\modules\lexdict\swld.cpp");
+USEUNIT("..\..\src\modules\lexdict\rawld\rawld.cpp");
+USEUNIT("..\..\src\modules\texts\swtext.cpp");
+USEUNIT("..\..\src\modules\texts\rawtext\rawtext.cpp");
+USEUNIT("..\..\src\modules\texts\ztext\ztext.cpp");
+USEUNIT("..\..\src\modules\common\zverse.cpp");
+USEUNIT("..\..\src\keys\treekey.cpp");
+USEUNIT("..\..\src\keys\treekeyidx.cpp");
+USEUNIT("..\..\src\modules\common\rawstr4.cpp");
+USEUNIT("..\..\src\modules\common\zstr.cpp");
+USEUNIT("..\..\src\modules\genbook\swgenbook.cpp");
+USEUNIT("..\..\src\modules\genbook\rawgenbook\rawgenbook.cpp");
+USEUNIT("..\..\src\mgr\swfiltermgr.cpp");
+USEUNIT("..\..\src\modules\filters\utf8utf16.cpp");
+USEUNIT("..\..\src\modules\filters\gbfheadings.cpp");
+USEUNIT("..\..\src\modules\filters\gbfhtmlhref.cpp");
+USEUNIT("..\..\src\modules\filters\gbfmorph.cpp");
+USEUNIT("..\..\src\modules\filters\latin1utf16.cpp");
+USEUNIT("..\..\src\modules\filters\latin1utf8.cpp");
+USEUNIT("..\..\src\modules\filters\scsuutf8.cpp");
+USEUNIT("..\..\src\modules\filters\swbasicfilter.cpp");
+USEUNIT("..\..\src\modules\filters\thmlfootnotes.cpp");
+USEUNIT("..\..\src\modules\filters\thmlheadings.cpp");
+USEUNIT("..\..\src\modules\filters\thmlhtmlhref.cpp");
+USEUNIT("..\..\src\modules\filters\thmllemma.cpp");
+USEUNIT("..\..\src\modules\filters\thmlmorph.cpp");
+USEUNIT("..\..\src\modules\filters\thmlscripref.cpp");
+USEUNIT("..\..\src\modules\filters\thmlstrongs.cpp");
+USEUNIT("..\..\src\modules\filters\thmlvariants.cpp");
+USEUNIT("..\..\src\modules\filters\unicodertf.cpp");
+USEUNIT("..\..\src\modules\filters\utf16utf8.cpp");
+USEUNIT("..\..\src\modules\filters\utf8arshaping.cpp");
+USEUNIT("..\..\src\modules\filters\utf8bidireorder.cpp");
+USEUNIT("..\..\src\modules\filters\utf8cantillation.cpp");
+USEUNIT("..\..\src\modules\filters\utf8greekaccents.cpp");
+USEUNIT("..\..\src\modules\filters\utf8hebrewpoints.cpp");
+USEUNIT("..\..\src\modules\filters\utf8html.cpp");
+USEUNIT("..\..\src\modules\filters\utf8latin1.cpp");
+USEUNIT("..\..\src\modules\filters\utf8nfc.cpp");
+USEUNIT("..\..\src\modules\filters\utf8nfkd.cpp");
+USEUNIT("..\..\src\modules\filters\utf8transliterator.cpp");
+USEUNIT("..\..\src\modules\comments\zcom\zcom.cpp");
+USEUNIT("..\..\src\modules\lexdict\rawld4\rawld4.cpp");
+USEUNIT("..\..\src\modules\common\zipcomprs.cpp");
+USEUNIT("..\..\src\modules\lexdict\zld\zld.cpp");
+USEUNIT("..\..\src\modules\common\entriesblk.cpp");
+USEUNIT("..\..\src\utilfuns\zlib\zutil.c");
+USEUNIT("..\..\src\utilfuns\zlib\compress.c");
+USEUNIT("..\..\src\utilfuns\zlib\crc32.c");
+USEUNIT("..\..\src\utilfuns\zlib\deflate.c");
+USEUNIT("..\..\src\utilfuns\zlib\gzio.c");
+USEUNIT("..\..\src\utilfuns\zlib\infblock.c");
+USEUNIT("..\..\src\utilfuns\zlib\infcodes.c");
+USEUNIT("..\..\src\utilfuns\zlib\inffast.c");
+USEUNIT("..\..\src\utilfuns\zlib\inflate.c");
+USEUNIT("..\..\src\utilfuns\zlib\inftrees.c");
+USEUNIT("..\..\src\utilfuns\zlib\infutil.c");
+USEUNIT("..\..\src\utilfuns\zlib\trees.c");
+USEUNIT("..\..\src\utilfuns\zlib\uncompr.c");
+USEUNIT("..\..\src\utilfuns\zlib\untgz.c");
+USEUNIT("..\..\src\utilfuns\zlib\adler32.c");
+USEUNIT("..\..\src\modules\filters\greeklexattribs.cpp");
+USEUNIT("..\..\src\mgr\swcacher.cpp");
+USEUNIT("..\..\src\modules\filters\gbfosis.cpp");
+USEUNIT("..\..\src\modules\filters\thmlosis.cpp");
+USEUNIT("..\..\src\mgr\encfiltmgr.cpp");
+USEUNIT("..\..\src\mgr\markupfiltmgr.cpp");
+USEUNIT("..\..\src\utilfuns\roman.cpp");
+//---------------------------------------------------------------------------
+#define Library
+
+// To add a file to the library use the Project menu 'Add to Project'.
+
diff --git a/utilities/bcppmake/libsword.bpr b/utilities/bcppmake/libsword.bpr
new file mode 100644
index 0000000..8706c7a
--- /dev/null
+++ b/utilities/bcppmake/libsword.bpr
@@ -0,0 +1,204 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="libsword.lib"/>
+ <OBJFILES value="..\..\src\keys\versekey.obj ..\..\src\keys\strkey.obj
+ ..\..\src\keys\swkey.obj ..\..\src\keys\listkey.obj
+ ..\..\src\mgr\swmgr.obj ..\..\src\mgr\localemgr.obj
+ ..\..\src\mgr\swconfig.obj ..\..\src\mgr\swlocale.obj
+ ..\..\src\mgr\filemgr.obj ..\..\src\utilfuns\utilstr.obj
+ ..\..\src\utilfuns\utilconf.obj ..\..\src\utilfuns\Greek2Greek.obj
+ ..\..\src\frontend\swlog.obj ..\..\src\frontend\swdisp.obj
+ ..\..\src\modules\swmodule.obj ..\..\src\modules\comments\swcom.obj
+ ..\..\src\modules\comments\hrefcom\hrefcom.obj
+ ..\..\src\modules\comments\rawcom\rawcom.obj
+ ..\..\src\modules\comments\rawfiles\rawfiles.obj
+ ..\..\src\modules\common\lzsscomprs.obj
+ ..\..\src\modules\common\rawstr.obj ..\..\src\modules\common\rawverse.obj
+ ..\..\src\modules\common\sapphire.obj
+ ..\..\src\modules\common\swcipher.obj ..\..\src\modules\common\swcomprs.obj
+ ..\..\src\modules\filters\thmlrtf.obj
+ ..\..\src\modules\filters\gbffootnotes.obj
+ ..\..\src\modules\filters\gbfhtml.obj
+ ..\..\src\modules\filters\gbfplain.obj
+ ..\..\src\modules\filters\gbfrtf.obj ..\..\src\modules\filters\gbfstrongs.obj
+ ..\..\src\modules\filters\gbfthml.obj
+ ..\..\src\modules\filters\plainfootnotes.obj
+ ..\..\src\modules\filters\plainhtml.obj
+ ..\..\src\modules\filters\rtfhtml.obj
+ ..\..\src\modules\filters\rwphtml.obj ..\..\src\modules\filters\rwprtf.obj
+ ..\..\src\modules\filters\thmlgbf.obj
+ ..\..\src\modules\filters\thmlhtml.obj
+ ..\..\src\modules\filters\thmlplain.obj
+ ..\..\src\modules\filters\cipherfil.obj ..\..\src\modules\lexdict\swld.obj
+ ..\..\src\modules\lexdict\rawld\rawld.obj
+ ..\..\src\modules\texts\swtext.obj
+ ..\..\src\modules\texts\rawtext\rawtext.obj
+ ..\..\src\modules\texts\ztext\ztext.obj
+ ..\..\src\modules\common\zverse.obj ..\..\src\keys\treekey.obj
+ ..\..\src\keys\treekeyidx.obj ..\..\src\modules\common\rawstr4.obj
+ ..\..\src\modules\common\zstr.obj ..\..\src\modules\genbook\swgenbook.obj
+ ..\..\src\modules\genbook\rawgenbook\rawgenbook.obj
+ ..\..\src\mgr\swfiltermgr.obj ..\..\src\modules\filters\utf8utf16.obj
+ ..\..\src\modules\filters\gbfheadings.obj
+ ..\..\src\modules\filters\gbfhtmlhref.obj
+ ..\..\src\modules\filters\gbfmorph.obj
+ ..\..\src\modules\filters\latin1utf16.obj
+ ..\..\src\modules\filters\latin1utf8.obj
+ ..\..\src\modules\filters\scsuutf8.obj
+ ..\..\src\modules\filters\swbasicfilter.obj
+ ..\..\src\modules\filters\thmlfootnotes.obj
+ ..\..\src\modules\filters\thmlheadings.obj
+ ..\..\src\modules\filters\thmlhtmlhref.obj
+ ..\..\src\modules\filters\thmllemma.obj
+ ..\..\src\modules\filters\thmlmorph.obj
+ ..\..\src\modules\filters\thmlscripref.obj
+ ..\..\src\modules\filters\thmlstrongs.obj
+ ..\..\src\modules\filters\thmlvariants.obj
+ ..\..\src\modules\filters\unicodertf.obj
+ ..\..\src\modules\filters\utf16utf8.obj
+ ..\..\src\modules\filters\utf8arshaping.obj
+ ..\..\src\modules\filters\utf8bidireorder.obj
+ ..\..\src\modules\filters\utf8cantillation.obj
+ ..\..\src\modules\filters\utf8greekaccents.obj
+ ..\..\src\modules\filters\utf8hebrewpoints.obj
+ ..\..\src\modules\filters\utf8html.obj
+ ..\..\src\modules\filters\utf8latin1.obj
+ ..\..\src\modules\filters\utf8nfc.obj
+ ..\..\src\modules\filters\utf8nfkd.obj
+ ..\..\src\modules\filters\utf8transliterator.obj
+ ..\..\src\modules\comments\zcom\zcom.obj
+ ..\..\src\modules\lexdict\rawld4\rawld4.obj
+ ..\..\src\modules\common\zipcomprs.obj
+ ..\..\src\modules\lexdict\zld\zld.obj
+ ..\..\src\modules\common\entriesblk.obj ..\..\src\utilfuns\zlib\zutil.obj
+ ..\..\src\utilfuns\zlib\compress.obj ..\..\src\utilfuns\zlib\crc32.obj
+ ..\..\src\utilfuns\zlib\deflate.obj ..\..\src\utilfuns\zlib\gzio.obj
+ ..\..\src\utilfuns\zlib\infblock.obj ..\..\src\utilfuns\zlib\infcodes.obj
+ ..\..\src\utilfuns\zlib\inffast.obj ..\..\src\utilfuns\zlib\inflate.obj
+ ..\..\src\utilfuns\zlib\inftrees.obj ..\..\src\utilfuns\zlib\infutil.obj
+ ..\..\src\utilfuns\zlib\trees.obj ..\..\src\utilfuns\zlib\uncompr.obj
+ ..\..\src\utilfuns\zlib\untgz.obj ..\..\src\utilfuns\zlib\adler32.obj
+ ..\..\src\modules\filters\greeklexattribs.obj ..\..\src\mgr\swcacher.obj
+ ..\..\src\modules\filters\gbfosis.obj
+ ..\..\src\modules\filters\thmlosis.obj ..\..\src\mgr\encfiltmgr.obj
+ ..\..\src\mgr\markupfiltmgr.obj ..\..\src\utilfuns\roman.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value=""/>
+ <LIBRARIES value=""/>
+ <PACKAGES value=""/>
+ <PATHCPP value=".;..\..\src\keys;..\..\src\mgr;..\..\src\utilfuns;..\..\src\frontend;..\..\src\modules;..\..\src\modules\comments;..\..\src\modules\comments\hrefcom;..\..\src\modules\comments\rawcom;..\..\src\modules\comments\rawfiles;..\..\src\modules\common;..\..\src\modules\filters;..\..\src\modules\lexdict;..\..\src\modules\lexdict\rawld;..\..\src\modules\texts;..\..\src\modules\texts\rawtext;..\..\src\modules\texts\ztext;..\..\src\modules\genbook;..\..\src\modules\genbook\rawgenbook;..\..\src\modules\comments\zcom;..\..\src\modules\lexdict\rawld4;..\..\src\modules\lexdict\zld;..\..\src\utilfuns\zlib"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <LINKER value="TLib"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY"/>
+ <SYSDEFINES value="NO_STRICT"/>
+ <MAINSOURCE value="libsword.bpf"/>
+ <INCLUDEPATH value="..\..\src\utilfuns\zlib;..\..\src\modules\lexdict\zld;..\..\src\modules\lexdict\rawld4;..\..\src\modules\comments\zcom;..\..\src\modules\genbook\rawgenbook;..\..\src\modules\genbook;..\..\src\modules\texts\ztext;..\..\src\modules\texts\rawtext;..\..\src\modules\texts;..\..\src\modules\lexdict\rawld;..\..\src\modules\lexdict;..\..\src\modules\filters;..\..\src\modules\common;..\..\src\modules\comments\rawfiles;..\..\src\modules\comments\rawcom;..\..\src\modules\comments\hrefcom;..\..\src\modules\comments;..\..\src\modules;..\..\src\frontend;..\..\src\utilfuns;..\..\src\mgr;..\..\src\keys;..\..\include;$(BCB)\include;$(BCB)\include\vcl;..\..\..\icu-sword\source\common;..\..\..\icu-sword\source\i18n"/>
+ <LIBPATH value="..\..\src\utilfuns\zlib;..\..\src\modules\lexdict\zld;..\..\src\modules\lexdict\rawld4;..\..\src\modules\comments\zcom;..\..\src\modules\genbook\rawgenbook;..\..\src\modules\genbook;..\..\src\modules\texts\ztext;..\..\src\modules\texts\rawtext;..\..\src\modules\texts;..\..\src\modules\lexdict\rawld;..\..\src\modules\lexdict;..\..\src\modules\filters;..\..\src\modules\common;..\..\src\modules\comments\rawfiles;..\..\src\modules\comments\rawcom;..\..\src\modules\comments\hrefcom;..\..\src\modules\comments;..\..\src\modules;..\..\src\frontend;..\..\src\utilfuns;..\..\src\mgr;..\..\src\keys;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <LISTFILE value=""/>
+ </MACROS>
+ <OPTIONS>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -c -tW -tWM"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="/P512"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="$(OBJFILES)"/>
+ <ALLLIB value="cg32.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+Count=7
+Item0=..\..\src\utilfuns\zlib;..\..\src\modules\lexdict\zld;..\..\src\modules\lexdict\rawld4;..\..\src\modules\comments\zcom;..\..\src\modules\genbook\rawgenbook;..\..\src\modules\genbook;..\..\src\modules\texts\ztext;..\..\src\modules\texts\rawtext;..\..\src\modules\texts;..\..\src\modules\lexdict\rawld;..\..\src\modules\lexdict;..\..\src\modules\filters;..\..\src\modules\common;..\..\src\modules\comments\rawfiles;..\..\src\modules\comments\rawcom;..\..\src\modules\comments\hrefcom;..\..\src\modules\comments;..\..\src\modules;..\..\src\frontend;..\..\src\utilfuns;..\..\src\mgr;..\..\src\keys;..\..\include;$(BCB)\include;$(BCB)\include\vcl;..\..\..\icu-sword\source\common;..\..\..\icu-sword\source\i18n
+Item1=..\..\src\utilfuns\zlib;..\..\src\modules\lexdict\zld;..\..\src\modules\lexdict\rawld4;..\..\src\modules\comments\zcom;..\..\src\modules\genbook\rawgenbook;..\..\src\modules\genbook;..\..\src\modules\texts\ztext;..\..\src\modules\texts\rawtext;..\..\src\modules\texts;..\..\src\modules\lexdict\rawld;..\..\src\modules\lexdict;..\..\src\modules\filters;..\..\src\modules\common;..\..\src\modules\comments\rawfiles;..\..\src\modules\comments\rawcom;..\..\src\modules\comments\hrefcom;..\..\src\modules\comments;..\..\src\modules;..\..\src\frontend;..\..\src\utilfuns;..\..\src\mgr;..\..\src\keys;..\..\include;$(BCB)\include;$(BCB)\include\vcl;..\..\..\icu-sword\source\common
+Item2=..\..\src\utilfuns\zlib;..\..\src\modules\lexdict\zld;..\..\src\modules\lexdict\rawld4;..\..\src\modules\comments\zcom;..\..\src\modules\genbook\rawgenbook;..\..\src\modules\genbook;..\..\src\modules\texts\ztext;..\..\src\modules\texts\rawtext;..\..\src\modules\texts;..\..\src\modules\lexdict\rawld;..\..\src\modules\lexdict;..\..\src\modules\filters;..\..\src\modules\common;..\..\src\modules\comments\rawfiles;..\..\src\modules\comments\rawcom;..\..\src\modules\comments\hrefcom;..\..\src\modules\comments;..\..\src\modules;..\..\src\frontend;..\..\src\utilfuns;..\..\src\mgr;..\..\src\keys;..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item3=..\..\src\modules\texts\ztext;..\..\src\modules\texts\rawtext;..\..\src\modules\texts;..\..\src\modules\lexdict\rawld;..\..\src\modules\lexdict;..\..\src\modules\filters;..\..\src\modules\common;..\..\src\modules\comments\rawfiles;..\..\src\modules\comments\rawcom;..\..\src\modules\comments\hrefcom;..\..\src\modules\comments;..\..\src\modules;..\..\src\frontend;..\..\src\utilfuns;..\..\src\mgr;..\..\src\keys;..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item4=..\..\src\modules\texts\rawtext;..\..\src\modules\texts;..\..\src\modules\lexdict\rawld;..\..\src\modules\lexdict;..\..\src\modules\filters;..\..\src\modules\common;..\..\src\modules\comments\rawfiles;..\..\src\modules\comments\rawcom;..\..\src\modules\comments\hrefcom;..\..\src\modules\comments;..\..\src\modules;..\..\src\frontend;..\..\src\utilfuns;..\..\src\mgr;..\..\src\keys;..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item5=..\include;$(BCB)\include;$(BCB)\include\vcl
+Item6=..\src\modules\texts\rawtext;..\src\modules\texts;..\src\modules\lexdict\rawld;..\src\modules\lexdict;..\src\modules\filters;..\src\modules\common;..\src\modules\comments\rawfiles;..\src\modules\comments\rawcom;..\src\modules\comments\hrefcom;..\src\modules\comments;..\src\modules;..\src\frontend;..\src\utilfuns;..\src\mgr;..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=4
+Item0=..\..\src\utilfuns\zlib;..\..\src\modules\lexdict\zld;..\..\src\modules\lexdict\rawld4;..\..\src\modules\comments\zcom;..\..\src\modules\genbook\rawgenbook;..\..\src\modules\genbook;..\..\src\modules\texts\ztext;..\..\src\modules\texts\rawtext;..\..\src\modules\texts;..\..\src\modules\lexdict\rawld;..\..\src\modules\lexdict;..\..\src\modules\filters;..\..\src\modules\common;..\..\src\modules\comments\rawfiles;..\..\src\modules\comments\rawcom;..\..\src\modules\comments\hrefcom;..\..\src\modules\comments;..\..\src\modules;..\..\src\frontend;..\..\src\utilfuns;..\..\src\mgr;..\..\src\keys;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..\..\src\modules\texts\ztext;..\..\src\modules\texts\rawtext;..\..\src\modules\texts;..\..\src\modules\lexdict\rawld;..\..\src\modules\lexdict;..\..\src\modules\filters;..\..\src\modules\common;..\..\src\modules\comments\rawfiles;..\..\src\modules\comments\rawcom;..\..\src\modules\comments\hrefcom;..\..\src\modules\comments;..\..\src\modules;..\..\src\frontend;..\..\src\utilfuns;..\..\src\mgr;..\..\src\keys;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\..\src\modules\texts\rawtext;..\..\src\modules\texts;..\..\src\modules\lexdict\rawld;..\..\src\modules\lexdict;..\..\src\modules\filters;..\..\src\modules\common;..\..\src\modules\comments\rawfiles;..\..\src\modules\comments\rawcom;..\..\src\modules\comments\hrefcom;..\..\src\modules\comments;..\..\src\modules;..\..\src\frontend;..\..\src\utilfuns;..\..\src\mgr;..\..\src\keys;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\src\modules\texts\rawtext;..\src\modules\texts;..\src\modules\lexdict\rawld;..\src\modules\lexdict;..\src\modules\filters;..\src\modules\common;..\src\modules\comments\rawfiles;..\src\modules\comments\rawcom;..\src\modules\comments\hrefcom;..\src\modules\comments;..\src\modules;..\src\frontend;..\src\utilfuns;..\src\mgr;..\src\keys;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=5
+Item0=_ICU_;_ICUSWORD_;USBINARY
+Item1=_ICU_;_ICUSWORD_;USBINARY;_DEBUG
+Item2=_ICU_;_ICUSWORD_
+Item3=_ICU_;_ICUSWORD_;_DEBUG
+Item4=_DEBUG
+
+[HistoryLists\hlTlibPageSize]
+Count=5
+Item0=0x0200
+Item1=0x0080
+Item2=0x0040
+Item3=0x0020
+Item4=0x0010
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/mkfastmod.bdsproj b/utilities/bcppmake/mkfastmod.bdsproj
new file mode 100644
index 0000000..ffd1675
--- /dev/null
+++ b/utilities/bcppmake/mkfastmod.bdsproj
@@ -0,0 +1,320 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{13757126-9ACE-4CF8-9718-890CAFC2FD05}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="mkfastmod.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.noregistervars.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vGc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vGd.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vGt.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.3" value="_DEBUG"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y+"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.2" value="W"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.v.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="cg32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.4" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.3" value="_DEBUG"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="mkfastmod.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="mkfastmod" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\mkfastmod.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="mkfastmod" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">3</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_;_DEBUG</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item2">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams">KJV</Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">mkfastmod.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/mkfastmod.bpf b/utilities/bcppmake/mkfastmod.bpf
new file mode 100644
index 0000000..59da96b
--- /dev/null
+++ b/utilities/bcppmake/mkfastmod.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\mkfastmod.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/mkfastmod.bpr b/utilities/bcppmake/mkfastmod.bpr
new file mode 100644
index 0000000..455ca6c
--- /dev/null
+++ b/utilities/bcppmake/mkfastmod.bpr
@@ -0,0 +1,125 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="mkfastmod.exe"/>
+ <OBJFILES value="..\mkfastmod.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="mkfastmod.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -boa"/>
+ <CFLAG1 value="-vGc -vGt -vGd -Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k
+ -y -v -vi- -tWC -tWM -c"/>
+ <PFLAGS value="-$Y+ -$W -$O- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn -v"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="cg32.lib $(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=3
+Item0=_ICU_;_ICUSWORD_;_DEBUG
+Item1=_ICU_;_ICUSWORD_
+Item2=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=KJV
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/mod2imp.bdsproj b/utilities/bcppmake/mod2imp.bdsproj
new file mode 100644
index 0000000..d6f811b
--- /dev/null
+++ b/utilities/bcppmake/mod2imp.bdsproj
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{6FCCCABA-912D-4BF4-B104-85847C33E994}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="mod2imp.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="mod2imp.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="mod2imp" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\mod2imp.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="mod2imp" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">2</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams"></Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">mod2imp.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/mod2imp.bpf b/utilities/bcppmake/mod2imp.bpf
new file mode 100644
index 0000000..ee00836
--- /dev/null
+++ b/utilities/bcppmake/mod2imp.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\mod2imp.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/mod2imp.bpr b/utilities/bcppmake/mod2imp.bpr
new file mode 100644
index 0000000..b18da0e
--- /dev/null
+++ b/utilities/bcppmake/mod2imp.bpr
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="mod2imp.exe"/>
+ <OBJFILES value="..\mod2imp.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="mod2imp.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_
+Item1=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/mod2osis.bdsproj b/utilities/bcppmake/mod2osis.bdsproj
new file mode 100644
index 0000000..72c5100
--- /dev/null
+++ b/utilities/bcppmake/mod2osis.bdsproj
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{0699AF27-87FC-42C2-94B7-C5FFBDE04AC9}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="mod2osis.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="mod2osis.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="mod2osis" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\mod2osis.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="mod2osis" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">1</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams">KJV</Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">mod2osis.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/mod2osis.bpf b/utilities/bcppmake/mod2osis.bpf
new file mode 100644
index 0000000..0923831
--- /dev/null
+++ b/utilities/bcppmake/mod2osis.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\mod2osis.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/mod2osis.bpr b/utilities/bcppmake/mod2osis.bpr
new file mode 100644
index 0000000..ef275ef
--- /dev/null
+++ b/utilities/bcppmake/mod2osis.bpr
@@ -0,0 +1,122 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="mod2osis.exe"/>
+ <OBJFILES value="..\mod2osis.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value=""/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="mod2osis.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=1
+Item0=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=KJV
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/mod2vpl.bdsproj b/utilities/bcppmake/mod2vpl.bdsproj
new file mode 100644
index 0000000..446bd36
--- /dev/null
+++ b/utilities/bcppmake/mod2vpl.bdsproj
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{31FAB7FF-0030-4558-84D8-0634F85BCE1F}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="mod2vpl.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="mod2vpl.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="mod2vpl" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\mod2vpl.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="mod2vpl" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">2</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams">RWP ./ 3 2 abc</Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">mod2vpl.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/mod2vpl.bpf b/utilities/bcppmake/mod2vpl.bpf
new file mode 100644
index 0000000..512ae0e
--- /dev/null
+++ b/utilities/bcppmake/mod2vpl.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\mod2vpl.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/mod2vpl.bpr b/utilities/bcppmake/mod2vpl.bpr
new file mode 100644
index 0000000..780c5ba
--- /dev/null
+++ b/utilities/bcppmake/mod2vpl.bpr
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="mod2vpl.exe"/>
+ <OBJFILES value="..\mod2vpl.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="mod2vpl.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_
+Item1=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=RWP ./ 3 2 abc
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/mod2zmod.bdsproj b/utilities/bcppmake/mod2zmod.bdsproj
new file mode 100644
index 0000000..84040df
--- /dev/null
+++ b/utilities/bcppmake/mod2zmod.bdsproj
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{55779991-2EEA-4AC6-8C30-52012FF06C48}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="mod2zmod.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.3" value="USBINARY"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.3" value="USBINARY"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.3" value="USBINARY"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.3" value="USBINARY"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="mod2zmod.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="mod2zmod" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\mod2zmod.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="mod2zmod" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">5</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_;USBINARY</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_ICU_;_ICUSWORD_;USBINARY;_DEBUG</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item2">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item3">_ICU_;_ICUSWORD_;_DEBUG</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item4">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams">KJV ./ 3 2 abc</Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">mod2zmod.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/mod2zmod.bpf b/utilities/bcppmake/mod2zmod.bpf
new file mode 100644
index 0000000..4e5b2f5
--- /dev/null
+++ b/utilities/bcppmake/mod2zmod.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\mod2zmod.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/mod2zmod.bpr b/utilities/bcppmake/mod2zmod.bpr
new file mode 100644
index 0000000..67a52b9
--- /dev/null
+++ b/utilities/bcppmake/mod2zmod.bpr
@@ -0,0 +1,126 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="mod2zmod.exe"/>
+ <OBJFILES value="..\mod2zmod.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="mod2zmod.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -DUSBINARY -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=5
+Item0=_ICU_;_ICUSWORD_;USBINARY
+Item1=_ICU_;_ICUSWORD_;USBINARY;_DEBUG
+Item2=_ICU_;_ICUSWORD_
+Item3=_ICU_;_ICUSWORD_;_DEBUG
+Item4=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=KJV ./ 3 2 abc
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/osis2mod.bdsproj b/utilities/bcppmake/osis2mod.bdsproj
new file mode 100644
index 0000000..33c9e37
--- /dev/null
+++ b/utilities/bcppmake/osis2mod.bdsproj
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{CC392976-EF1E-4C5D-A4A6-FE412E04B145}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="osis2mod.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.noregistervars.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vGc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vGd.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vGt.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y+"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.2" value="W"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.v.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="cg32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.4" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_DEBUG"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="osis2mod.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="osis2mod" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\osis2mod.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="osis2mod" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">1</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams">./nasb nasb.xml</Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">osis2mod.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/osis2mod.bpf b/utilities/bcppmake/osis2mod.bpf
new file mode 100644
index 0000000..c8a2c8f
--- /dev/null
+++ b/utilities/bcppmake/osis2mod.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\osis2mod.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/osis2mod.bpr b/utilities/bcppmake/osis2mod.bpr
new file mode 100644
index 0000000..457a4a9
--- /dev/null
+++ b/utilities/bcppmake/osis2mod.bpr
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="osis2mod.exe"/>
+ <OBJFILES value="..\osis2mod.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="osis2mod.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa"/>
+ <CFLAG1 value="-vGc -vGt -vGd -Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k
+ -y -v -vi- -tWC -tWM -c"/>
+ <PFLAGS value="-$Y+ -$W -$O- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn -v"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="cg32.lib $(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=1
+Item0=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=./nasb nasb.xml
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/step2vpl.bdsproj b/utilities/bcppmake/step2vpl.bdsproj
new file mode 100644
index 0000000..1310329
--- /dev/null
+++ b/utilities/bcppmake/step2vpl.bdsproj
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{847D89F0-DA8A-4F75-AA82-5A9BB2A9D3CD}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="step2vpl.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="step2vpl.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="step2vpl" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\step2vpl.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="step2vpl" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">2</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams"></Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">step2vpl.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/step2vpl.bpf b/utilities/bcppmake/step2vpl.bpf
new file mode 100644
index 0000000..6f6cce3
--- /dev/null
+++ b/utilities/bcppmake/step2vpl.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\step2vpl.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/step2vpl.bpr b/utilities/bcppmake/step2vpl.bpr
new file mode 100644
index 0000000..0c5961c
--- /dev/null
+++ b/utilities/bcppmake/step2vpl.bpr
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="step2vpl.exe"/>
+ <OBJFILES value="..\step2vpl.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="step2vpl.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_
+Item1=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/stepdump.bdsproj b/utilities/bcppmake/stepdump.bdsproj
new file mode 100644
index 0000000..7f74a93
--- /dev/null
+++ b/utilities/bcppmake/stepdump.bdsproj
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{A012F78B-1EC5-4A4B-84C3-1E5E2080E2EB}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="stepdump.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="stepdump.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="stepdump" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\stepdump.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="stepdump" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">2</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams"></Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">stepdump.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/stepdump.bpf b/utilities/bcppmake/stepdump.bpf
new file mode 100644
index 0000000..5ca67a5
--- /dev/null
+++ b/utilities/bcppmake/stepdump.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\stepdump.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/stepdump.bpr b/utilities/bcppmake/stepdump.bpr
new file mode 100644
index 0000000..62c43b3
--- /dev/null
+++ b/utilities/bcppmake/stepdump.bpr
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="stepdump.exe"/>
+ <OBJFILES value="..\stepdump.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="stepdump.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_
+Item1=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/tei2mod.bpf b/utilities/bcppmake/tei2mod.bpf
new file mode 100644
index 0000000..9ce2914
--- /dev/null
+++ b/utilities/bcppmake/tei2mod.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\tei2mod.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/tei2mod.bpr b/utilities/bcppmake/tei2mod.bpr
new file mode 100644
index 0000000..0691824
--- /dev/null
+++ b/utilities/bcppmake/tei2mod.bpr
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="tei2mod.exe"/>
+ <OBJFILES value="..\tei2mod.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="tei2mod.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa"/>
+ <CFLAG1 value="-vGc -vGt -vGd -Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k
+ -y -v -vi- -tWC -tWM -c"/>
+ <PFLAGS value="-$Y+ -$W -$O- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn -v"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="cg32.lib $(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=1
+Item0=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=./nasb nasb.xml
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT>
diff --git a/utilities/bcppmake/utilities.bdsgroup b/utilities/bcppmake/utilities.bdsgroup
new file mode 100644
index 0000000..278a47a
--- /dev/null
+++ b/utilities/bcppmake/utilities.bdsgroup
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">Default.Personality</Option>
+ <Option Name="ProjectType"></Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{9922D349-DBA7-45A7-A547-F2DD34E7E460}</Option>
+ </Option>
+ </PersonalityInfo>
+ <Default.Personality>
+
+ <Projects>
+ <Projects Name="icuuc.lib">..\..\..\icu-sword\as_is\borland\icuuc.bdsproj</Projects>
+ <Projects Name="icuin.lib">..\..\..\icu-sword\as_is\borland\icuin.bdsproj</Projects>
+ <Projects Name="libcurl.lib">..\..\..\biblecs\apps\InstallMgr\libcurl.bdsproj</Projects>
+ <Projects Name="clucene.lib">..\..\..\biblecs\clucene\clucene.bdsproj</Projects>
+ <Projects Name="libsword.lib">..\..\lib\bcppmake\libsword.bdsproj</Projects>
+ <Projects Name="osis2mod.exe">osis2mod.bdsproj</Projects>
+ <Projects Name="mod2zmod.exe">mod2zmod.bdsproj</Projects>
+ <Projects Name="mod2vpl.exe">mod2vpl.bdsproj</Projects>
+ <Projects Name="mkfastmod.exe">mkfastmod.bdsproj</Projects>
+ <Projects Name="imp2gbs.exe">imp2gbs.bdsproj</Projects>
+ <Projects Name="vpl2mod.exe">vpl2mod.bdsproj</Projects>
+ <Projects Name="imp2ld.exe">imp2ld.bdsproj</Projects>
+ <Projects Name="imp2vs.exe">imp2vs.bdsproj</Projects>
+ <Projects Name="mod2imp.exe">mod2imp.bdsproj</Projects>
+ <Projects Name="cipherraw.exe">cipherraw.bdsproj</Projects>
+ <Projects Name="step2vpl.exe">step2vpl.bdsproj</Projects>
+ <Projects Name="stepdump.exe">stepdump.bdsproj</Projects>
+ <Projects Name="mod2osis.exe">mod2osis.bdsproj</Projects>
+ <Projects Name="vs2osisref.exe">vs2osisref.bdsproj</Projects>
+ <Projects Name="diatheke.exe">diatheke.bdsproj</Projects>
+ <Projects Name="xml2gbs.exe">xml2gbs.bdsproj</Projects>
+ <Projects Name="installmgr.exe">installmgr.bdsproj</Projects>
+ <Projects Name="Targets">icuuc.lib icuin.lib libcurl.lib clucene.lib libsword.lib osis2mod.exe mod2zmod.exe mod2vpl.exe mkfastmod.exe imp2gbs.exe vpl2mod.exe imp2ld.exe imp2vs.exe mod2imp.exe cipherraw.exe step2vpl.exe stepdump.exe mod2osis.exe vs2osisref.exe diatheke.exe xml2gbs.exe installmgr.exe</Projects>
+ </Projects>
+ <Dependencies/>
+ </Default.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/utilities.bpg b/utilities/bcppmake/utilities.bpg
new file mode 100644
index 0000000..d5c0db4
--- /dev/null
+++ b/utilities/bcppmake/utilities.bpg
@@ -0,0 +1,113 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = icuuc.lib icuin.lib libcurl.lib clucene.lib libsword.lib \
+ osis2mod.exe mod2zmod.exe mod2vpl.exe mkfastmod.exe imp2gbs.exe vpl2mod.exe \
+ imp2ld.exe imp2vs.exe mod2imp.exe cipherraw.exe step2vpl.exe stepdump.exe \
+ mod2osis.exe vs2osisref.exe xml2gbs.exe diatheke.exe installmgr.exe \
+ tei2mod.exe
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+mod2vpl.exe: mod2vpl.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+vpl2mod.exe: vpl2mod.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+mkfastmod.exe: mkfastmod.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+cipherraw.exe: cipherraw.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+imp2gbs.exe: imp2gbs.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+imp2ld.exe: imp2ld.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+imp2vs.exe: imp2vs.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+mod2zmod.exe: mod2zmod.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+mod2imp.exe: mod2imp.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+stepdump.exe: stepdump.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+step2vpl.exe: step2vpl.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+mod2osis.exe: mod2osis.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+vs2osisref.exe: vs2osisref.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+libsword.lib: ..\..\lib\bcppmake\libsword.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+diatheke.exe: diatheke.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+icuuc.lib: ..\..\..\icu-sword\as_is\borland\icuuc.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+icuin.lib: ..\..\..\icu-sword\as_is\borland\icuin.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+xml2gbs.exe: xml2gbs.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+osis2mod.exe: osis2mod.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+tei2mod.exe: tei2mod.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+installmgr.exe: installmgr.bpr
+ $(ROOT)\bin\bpr2mak $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+clucene.lib: ..\..\..\biblecs\clucene\clucene.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+libcurl.lib: ..\..\..\biblecs\apps\InstallMgr\libcurl.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+
diff --git a/utilities/bcppmake/vpl2mod.bdsproj b/utilities/bcppmake/vpl2mod.bdsproj
new file mode 100644
index 0000000..1c61323
--- /dev/null
+++ b/utilities/bcppmake/vpl2mod.bdsproj
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{DFB41EBE-3AE8-4E04-8037-375F4F5EE782}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="vpl2mod.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="vpl2mod.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="vpl2mod" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\vpl2mod.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="vpl2mod" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">2</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams"></Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">vpl2mod.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/vpl2mod.bpf b/utilities/bcppmake/vpl2mod.bpf
new file mode 100644
index 0000000..0eb123e
--- /dev/null
+++ b/utilities/bcppmake/vpl2mod.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\vpl2mod.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/vpl2mod.bpr b/utilities/bcppmake/vpl2mod.bpr
new file mode 100644
index 0000000..4cde253
--- /dev/null
+++ b/utilities/bcppmake/vpl2mod.bpr
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="vpl2mod.exe"/>
+ <OBJFILES value="..\vpl2mod.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="vpl2mod.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_ICUSWORD_
+Item1=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/vs2osisref.bdsproj b/utilities/bcppmake/vs2osisref.bdsproj
new file mode 100644
index 0000000..e8867d6
--- /dev/null
+++ b/utilities/bcppmake/vs2osisref.bdsproj
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{91C55E1D-B813-477E-A8A5-1C3AFDFDEF95}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="vs2osisref.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="vs2osisref.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="vs2osisref" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\vs2osisref.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="vs2osisref" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">1</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams">Gen1:1</Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">vs2osisref.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/vs2osisref.bpf b/utilities/bcppmake/vs2osisref.bpf
new file mode 100644
index 0000000..24f7f88
--- /dev/null
+++ b/utilities/bcppmake/vs2osisref.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\vs2osisref.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/vs2osisref.bpr b/utilities/bcppmake/vs2osisref.bpr
new file mode 100644
index 0000000..19db71e
--- /dev/null
+++ b/utilities/bcppmake/vs2osisref.bpr
@@ -0,0 +1,122 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="vs2osisref.exe"/>
+ <OBJFILES value="..\vs2osisref.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value=""/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="vs2osisref.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=1
+Item0=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=Gen1:1
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/bcppmake/xml2gbs.bdsproj b/utilities/bcppmake/xml2gbs.bdsproj
new file mode 100644
index 0000000..d2d4ea3
--- /dev/null
+++ b/utilities/bcppmake/xml2gbs.bdsproj
@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">CPlusPlusBuilder.Personality</Option>
+ <Option Name="ProjectType">CppConsoleApplication</Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{EF536EAE-FEDD-49D8-B32A-0EB5C911B107}</Option>
+ </Option>
+ </PersonalityInfo>
+ <CPlusPlusBuilder.Personality>
+ <BCBPROJECT>
+ <project version="10.0">
+ <property category="build.config" name="active" value="0"/>
+ <property category="build.config" name="count" value="1"/>
+ <property category="build.config" name="excludedefaultforzero" value="0"/>
+ <property category="build.config.0" name="builddir" value="Debug"/>
+ <property category="build.config.0" name="key" value="Debug_Build"/>
+ <property category="build.config.0" name="name" value="Debug Build"/>
+ <property category="build.config.0" name="settings.win32b" value="default"/>
+ <property category="build.config.0" name="type" value="Toolset"/>
+ <property category="build.config.0" name="win32.win32b.builddir" value="Debug_Build"/>
+ <property category="build.config.1" name="key" value="Release_Build"/>
+ <property category="build.config.1" name="name" value="Release Build"/>
+ <property category="build.config.1" name="settings.win32b" value="default"/>
+ <property category="build.config.1" name="type" value="Toolset"/>
+ <property category="build.config.1" name="win32.win32b.builddir" value="Release_Build"/>
+ <property category="build.node" name="name" value="xml2gbs.exe"/>
+ <property category="build.node" name="packages" value="rtl;vcl;vclx;bcbsmp;dbrtl;vcldb;bdertl;ibsmp;vcldbx;teeui;teedb;tee;ibxpress;bcbie;vclie;inetdb;inet;bcboffice2k"/>
+ <property category="build.node" name="use_packages" value="0"/>
+ <property category="build.platform" name="active" value="win32"/>
+ <property category="build.platform" name="win32.Debug_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.Release_Build.toolset" value="win32b"/>
+ <property category="build.platform" name="win32.default" value="win32b"/>
+ <property category="build.platform" name="win32.enabled" value="1"/>
+ <property category="build.platform" name="win32.win32b.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.1" value="_DEBUG"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.Od.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.k.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.r.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.v.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.vi.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.bcc32" name="option.y.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.$O.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.1" value="DEBUG"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.dcc32" name="option.V.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\debug"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Debug_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.z.enabled" value="1"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Debug_Build.win32b.tasm32" name="option.zi.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.1" value="NDEBUG"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.bcc32" name="option.r.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.$O.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.dcc32" name="option.V.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.1" value="$(BDS)\lib\release"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.Release_Build.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.z.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zd.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zi.enabled" value="0"/>
+ <property category="win32.Release_Build.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <optionset name="all_configurations">
+ <property category="node" name="displayname" value="All Configurations"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.1" value="$(BDS)\lib\vcl100.csm"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.arg.merge" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.H=.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Hc.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.2" value=".."/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.O2.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Ve.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.Vx.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.X.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.b.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.k.enabled" value="0"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.1" value="..\"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.n.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.1" value="NO_STRICT"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.2" value="_NO_VCL"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.arg.merge" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.sysdefines.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
+ <property category="win32.*.win32b.bcc32" name="option.vi.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.D.enabled" value="0"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.2" value=".."/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.INCLUDEPATH.enabled" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.brcc32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.1" value="Y-"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.$D.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.$L.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.I.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.M.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.N0.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.NO.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.O.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.R.enabled" value="0"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.1" value="..\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.2" value=".\"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.3" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.arg.merge" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="option.U.enabled" value="1"/>
+ <property category="win32.*.win32b.dcc32" name="param.filenames.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.3" value="_DEBUG"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.1" value="..\"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.2" value="..\."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.3" value=".."/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.4" value="..\..\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.5" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.6" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.I.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.boa.enabled" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg" value="cpp"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.arg.merge" value="1"/>
+ <property category="win32.*.win32b.idl2cpp" name="option.srcsuffix.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg" value="&quot;&quot;"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.D.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.2" value=".."/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.3" value="..\..\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.4" value="$(BDS)\lib\obj"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.5" value="$(BDS)\lib"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.L.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.arg" value="0x300000"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.arg.merge" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.S:xxxx.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Sc:xxxx.arg" value="0x20000"/>
+ <property category="win32.*.win32b.ilink32" name="option.Sc:xxxx.arg.merge" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.Sc:xxxx.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.Tpe.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.ap.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.dynamicrtl.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.1" value="..\"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.j.enabled" value="0"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.1" value="."/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.1" value="$(LIBRARIES)"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.2" value="import32.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.3" value="cw32mt.lib"/>
+ <property category="win32.*.win32b.ilink32" name="param.libfiles.merge" value="1"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.1" value="c0x32.obj"/>
+ <property category="win32.*.win32b.ilink32" name="param.objfiles.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.1" value="_ICU_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.2" value="_ICUSWORD_"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.d.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.2" value=".."/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.3" value="..\..\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.4" value="$(BDS)\include"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.5" value="$(BDS)\include\vcl"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.6" value="$(BDS)\include\dinkumware"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.i.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.1" value="..\"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.arg.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.outputdir.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.w2.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="option.zn.enabled" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.listfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.objfile.merge" value="1"/>
+ <property category="win32.*.win32b.tasm32" name="param.xreffile.merge" value="1"/>
+ </optionset>
+ </project>
+ <FILELIST>
+ <FILE FILENAME="xml2gbs.bpf" CONTAINERID="BPF" LOCALCOMMAND="" UNITNAME="xml2gbs" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\xml2gbs.cpp" CONTAINERID="CCompiler" LOCALCOMMAND="" UNITNAME="xml2gbs" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuin.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuin" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icudatab.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icudatab" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\icu-sword\as_is\borland\icuuc.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="icuuc" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\lib\libsword.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="libsword" FORMNAME="" DESIGNCLASS=""/>
+ <FILE FILENAME="..\..\..\biblecs\clucene\clucene.lib" CONTAINERID="LibTool" LOCALCOMMAND="" UNITNAME="clucene" FORMNAME="" DESIGNCLASS=""/>
+ </FILELIST>
+ <IDEOPTIONS>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1033</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Count">4</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item0">..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item1">..\;..\..\utilities;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item2">..;..\..\include;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ <HistoryLists_hlIncludePath Name="Item3">..\..\utilities;$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
+ </HistoryLists_hlIncludePath>
+ <HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Count">5</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item0">..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item1">..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item2">..\;..;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item3">..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ <HistoryLists_hlLibraryPath Name="Item4">..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
+ </HistoryLists_hlLibraryPath>
+ <HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
+ </HistoryLists_hlDebugSourcePath>
+ <HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Count">3</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item0">_ICU_;_ICUSWORD_</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item1">_ICU_;_ICUSWORD_;_DEBUG</HistoryLists_hlConditionals>
+ <HistoryLists_hlConditionals Name="Item2">_DEBUG</HistoryLists_hlConditionals>
+ </HistoryLists_hlConditionals>
+ <Debugging>
+ <Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
+ </Debugging>
+ <Parameters>
+ <Parameters Name="RunParams">summatheologica.xml</Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="RemoteHost"></Parameters>
+ <Parameters Name="RemotePath"></Parameters>
+ <Parameters Name="RemoteParams"></Parameters>
+ <Parameters Name="RemoteLauncher"></Parameters>
+ <Parameters Name="UseRemoteLauncher">False</Parameters>
+ <Parameters Name="RemoteCWD"></Parameters>
+ <Parameters Name="RemoteDebug">False</Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <Linker>
+ <Linker Name="LibPrefix"></Linker>
+ <Linker Name="LibSuffix"></Linker>
+ <Linker Name="LibVersion"></Linker>
+ </Linker>
+ </IDEOPTIONS>
+ </BCBPROJECT>
+ <Source>
+ <Source Name="MainSource">xml2gbs.bpf</Source>
+ </Source>
+ </CPlusPlusBuilder.Personality>
+</BorlandProject>
diff --git a/utilities/bcppmake/xml2gbs.bpf b/utilities/bcppmake/xml2gbs.bpf
new file mode 100644
index 0000000..0f2437d
--- /dev/null
+++ b/utilities/bcppmake/xml2gbs.bpf
@@ -0,0 +1,11 @@
+USEUNIT("..\xml2gbs.cpp");
+USELIB("..\..\..\icu-sword\as_is\borland\icuin.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\icu-sword\as_is\borland\icuuc.lib");
+USELIB("..\..\lib\libsword.lib");
+USELIB("..\..\..\biblecs\clucene\clucene.lib");
+//---------------------------------------------------------------------------
+This file is used by the project manager only and should be treated like the project file
+
+
+main \ No newline at end of file
diff --git a/utilities/bcppmake/xml2gbs.bpr b/utilities/bcppmake/xml2gbs.bpr
new file mode 100644
index 0000000..7ba1477
--- /dev/null
+++ b/utilities/bcppmake/xml2gbs.bpr
@@ -0,0 +1,124 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="xml2gbs.exe"/>
+ <OBJFILES value="..\xml2gbs.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="..\..\..\icu-sword\as_is\borland\icuin.lib
+ ..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\icu-sword\as_is\borland\icuuc.lib ..\..\lib\libsword.lib
+ ..\..\..\biblecs\clucene\clucene.lib"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi QRPT50.bpi VCLDB50.bpi VCLBDE50.bpi
+ ibsmp50.bpi VCLDBX50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi TEEQR50.bpi
+ VCLIB50.bpi bcbie50.bpi VCLIE50.bpi INETDB50.bpi INET50.bpi NMFAST50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="tlink32"/>
+ <USERDEFINES value="_ICU_;_ICUSWORD_"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="xml2gbs.bpf"/>
+ <INCLUDEPATH value="..\;..;..\..\include;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\. -I.. -I..\..\include -I$(BCB)\include -I$(BCB)\include\vcl
+ -src_suffix cpp -D_ICU_ -D_ICUSWORD_ -D_DEBUG -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -tWC -tWM -c"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -S:0x300000 -Sc:0x20000 -ap -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0x32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+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=5
+Item0=..\;..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..;..\..\lib;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\;..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\;..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\utilities;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=3
+Item0=_ICU_;_ICUSWORD_
+Item1=_ICU_;_ICUSWORD_;_DEBUG
+Item2=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=summatheologica.xml
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/cipherraw.cpp b/utilities/cipherraw.cpp
new file mode 100644
index 0000000..16aee18
--- /dev/null
+++ b/utilities/cipherraw.cpp
@@ -0,0 +1,104 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <filemgr.h>
+#include <swcipher.h>
+#include <versekey.h>
+#include <rawverse.h>
+#include <swbuf.h>
+
+#ifndef NO_SWORD_NAMESPACE
+using namespace sword;
+#endif
+
+int main(int argc, char **argv) {
+ SWCipher *zobj;
+ VerseKey key;
+ RawVerse *rawdrv;
+ int ofd[2], oxfd[2];
+ long tmpoff = 0, offset, loffset = 0, lzoffset = 0;
+ unsigned short size, lsize = 0, lzsize;
+ char *tmpbuf;
+
+ if (argc != 3) {
+ fprintf(stderr, "usage: %s <datapath> \"<key>\"\n", argv[0]);
+ exit(1);
+ }
+
+ rawdrv = new RawVerse(argv[1]);
+ zobj = new SWCipher((unsigned char *)argv[2]);
+
+ tmpbuf = new char [ strlen(argv[1]) + 11 ];
+ sprintf(tmpbuf, "%sot.zzz", argv[1]);
+ ofd[0] = FileMgr::createPathAndFile(tmpbuf);
+ sprintf(tmpbuf, "%sot.zzz.vss", argv[1]);
+ oxfd[0] = FileMgr::createPathAndFile(tmpbuf);
+ sprintf(tmpbuf, "%snt.zzz", argv[1]);
+ ofd[1] = FileMgr::createPathAndFile(tmpbuf);
+ sprintf(tmpbuf, "%snt.zzz.vss", argv[1]);
+ oxfd[1] = FileMgr::createPathAndFile(tmpbuf);
+
+ delete [] tmpbuf;
+
+ printf("\n");
+ write(oxfd[0], &lzoffset, 4);
+ write(oxfd[0], &lzsize, 2);
+ write(oxfd[1], &lzoffset, 4);
+ write(oxfd[1], &lzsize, 2);
+
+ key.AutoNormalize(0);
+ key.Headings(1);
+ for (key.Index(0); (!key.Error()); key++) {
+ rawdrv->findOffset(key.Testament(), key.Index(), &offset, &size);
+ printf("%s: OLD offset: %ld; size: %d\n", (const char *)key, offset, size);
+
+ if ((offset == loffset) && (size == lsize)) {
+ printf("using previous offset,size %d\n", size);
+ offset = lseek(oxfd[key.Testament() - 1], 0, SEEK_CUR);
+ printf("%ld %ld %d \n", offset, lzoffset, lzsize);
+ write(oxfd[key.Testament() - 1], &lzoffset, 4);
+ write(oxfd[key.Testament() - 1], &lzsize, 2);
+ }
+ else {
+ lsize = size;
+ loffset = offset;
+
+ if (size) {
+ SWBuf tmpbuf;
+ rawdrv->readText(key.Testament(), offset, size, tmpbuf);
+ zobj->Buf(tmpbuf.c_str(), size);
+ unsigned long ulSize = size;
+ zobj->cipherBuf(&ulSize);
+ size = (unsigned int)ulSize;
+ }
+ offset = lseek(ofd[key.Testament() - 1], 0, SEEK_CUR);
+ tmpoff = lseek(oxfd[key.Testament() - 1], 0, SEEK_CUR);
+ printf("%s: (%ld) NEW offset: %ld; size: %d\n", (const char *)key, tmpoff, offset, size);
+ write(oxfd[key.Testament() - 1], &offset, 4);
+ unsigned long ulSize = size;
+ if (size)
+ write(ofd[key.Testament() - 1], zobj->cipherBuf(&ulSize), size);
+ size = (unsigned int)ulSize;
+ lzoffset = offset;
+ write(oxfd[key.Testament() - 1], &size, 2);
+ lzsize = size;
+ }
+ }
+ delete zobj;
+ close(ofd[0]);
+ close(oxfd[0]);
+ close(ofd[1]);
+ close(oxfd[1]);
+ return 0;
+}
diff --git a/utilities/diatheke/.cvsignore b/utilities/diatheke/.cvsignore
new file mode 100644
index 0000000..f5ce63f
--- /dev/null
+++ b/utilities/diatheke/.cvsignore
@@ -0,0 +1,5 @@
+.deps
+.libs
+Makefile
+Makefile.in
+diatheke
diff --git a/utilities/diatheke/Makefile.am b/utilities/diatheke/Makefile.am
new file mode 100644
index 0000000..51a30c6
--- /dev/null
+++ b/utilities/diatheke/Makefile.am
@@ -0,0 +1,24 @@
+AUTOMAKE_OPTIONS = 1.6
+
+INCLUDES = -I$(top_srcdir)/include
+
+bin_PROGRAMS = diatheke
+
+diatheke_SOURCES = diatheke.cpp corediatheke.cpp diathekemgr.cpp \
+ diafiltmgr.cpp thmlcgi.cpp gbfcgi.cpp osiscgi.cpp
+
+if ICU
+iculibs = -licui18n -licuuc
+endif
+
+if USELUCENE
+lucenelibs = -lclucene
+endif
+
+diatheke_LDADD = $(top_builddir)/lib/libsword.la \
+ $(iculibs) $(lucenelibs)
+
+noinst_HEADERS = corediatheke.h diafiltmgr.h diathekemgr.h gbfcgi.h thmlcgi.h \
+ osiscgi.h
+
+include cgi/Makefile.am
diff --git a/utilities/diatheke/Makefile.in b/utilities/diatheke/Makefile.in
new file mode 100644
index 0000000..36d4273
--- /dev/null
+++ b/utilities/diatheke/Makefile.in
@@ -0,0 +1,521 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+bin_PROGRAMS = diatheke$(EXEEXT)
+DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/cgi/Makefile.am
+subdir = utilities/diatheke
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/acx_clucene.m4 \
+ $(top_srcdir)/m4/cppunit.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/config.h
+CONFIG_CLEAN_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am_diatheke_OBJECTS = diatheke.$(OBJEXT) corediatheke.$(OBJEXT) \
+ diathekemgr.$(OBJEXT) diafiltmgr.$(OBJEXT) thmlcgi.$(OBJEXT) \
+ gbfcgi.$(OBJEXT) osiscgi.$(OBJEXT)
+diatheke_OBJECTS = $(am_diatheke_OBJECTS)
+am__DEPENDENCIES_1 =
+diatheke_DEPENDENCIES = $(top_builddir)/lib/libsword.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/include@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(diatheke_SOURCES)
+DIST_SOURCES = $(diatheke_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_CXXFLAGS = @AM_CXXFLAGS@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CLUCENE_CXXFLAGS = @CLUCENE_CXXFLAGS@
+CLUCENE_LIBS = @CLUCENE_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@
+CPPUNIT_CONFIG = @CPPUNIT_CONFIG@
+CPPUNIT_LIBS = @CPPUNIT_LIBS@
+CURL_AM_CFLAGS = @CURL_AM_CFLAGS@
+CURL_CONFIG = @CURL_CONFIG@
+CURL_LIBS = @CURL_LIBS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GENCCODE = @GENCCODE@
+GENCMN = @GENCMN@
+GENRB = @GENRB@
+GREP = @GREP@
+ICU_CONFIG = @ICU_CONFIG@
+ICU_IOLIBS = @ICU_IOLIBS@
+ICU_LIBS = @ICU_LIBS@
+ICU_VER = @ICU_VER@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGDATA = @PKGDATA@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+XML_LIBS = @XML_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+dir_confdef = @dir_confdef@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_debug = @enable_debug@
+enable_profile = @enable_profile@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_mingw32 = @target_mingw32@
+target_os = @target_os@
+target_system = @target_system@
+target_vendor = @target_vendor@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_conf = @with_conf@
+with_icu = @with_icu@
+with_zlib = @with_zlib@
+AUTOMAKE_OPTIONS = 1.6
+INCLUDES = -I$(top_srcdir)/include
+diatheke_SOURCES = diatheke.cpp corediatheke.cpp diathekemgr.cpp \
+ diafiltmgr.cpp thmlcgi.cpp gbfcgi.cpp osiscgi.cpp
+
+@ICU_TRUE@iculibs = -licui18n -licuuc
+@USELUCENE_TRUE@lucenelibs = -lclucene
+diatheke_LDADD = $(top_builddir)/lib/libsword.la \
+ $(iculibs) $(lucenelibs)
+
+noinst_HEADERS = corediatheke.h diafiltmgr.h diathekemgr.h gbfcgi.h thmlcgi.h \
+ osiscgi.h
+
+swcgidir = $(top_srcdir)/utilities/diatheke/cgi
+EXTRA_DIST = $(swcgidir)/dia-def.pl $(swcgidir)/diatheke.pl \
+ $(swcgidir)/index-private.html $(swcgidir)/index-public.html
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/cgi/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign utilities/diatheke/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign utilities/diatheke/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ || test -f $$p1 \
+ ; then \
+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ done
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+diatheke$(EXEEXT): $(diatheke_OBJECTS) $(diatheke_DEPENDENCIES)
+ @rm -f diatheke$(EXEEXT)
+ $(CXXLINK) $(diatheke_OBJECTS) $(diatheke_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/corediatheke.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diafiltmgr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diatheke.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diathekemgr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gbfcgi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osiscgi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thmlcgi.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-binPROGRAMS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/utilities/diatheke/README b/utilities/diatheke/README
new file mode 100644
index 0000000..5f1a793
--- /dev/null
+++ b/utilities/diatheke/README
@@ -0,0 +1,76 @@
+Diatheke Suite release 4.0
+by Chris Little <chrislit@crosswire.org>
+
+This suite is intended for use with libraries and modules from
+the SWORD Project, available at http://www.crosswire.org/
+
+The latest versions of this suite and its components are available
+at http://www.crosswire.org/sword/diatheke
+
+Version 4.0 of this suite consists of the following components:
+
+Diatheke 4.0 - a command line utility, good for lots of stuff
+Diatheke/CGI 4.0 - a PERL CGI module interface to Diatheke 4.0
+
+--------------------------------------------------------------------
+INSTALLING Diatheke/CGI
+
+To install Diatheke/CGI, first install PERL and a webserver such as
+Apache that is capable of running PERL CGIs. Installing mod_perl is
+recommended for a speed improvement, but is by no means necessary.
+
+Then copy the two .pl files from the ./cgi directory of this
+distribution into your cgi-bin directory. Modify the top of
+diatheke.pl to reflect the correct location of your your diatheke
+command line utility binary and the default font if necessary. The
+CGI is now installed and ready for access.
+
+diatheke.pl is the main lookup script. dia-def.pl is a supplemental
+script used to set a default Bible translation (saved on the
+user's computer as a cookie).
+
+Two sample HTML files are included as sample interfaces for an
+general Web-Bible gateway. index-public.html includes all currently
+available free texts while index-private.html includes all currently
+available texts, including those which are encrypted because
+of copyright and distribution restrictions. In any case, you should
+only use these as a guide, adding and subtracting modules depending
+on which modules you have installed and have permission to publish
+on the internet or your intranet. The bottom section of each file
+includes an example call to the dia-def.pl script to set a default
+Bible version.
+
+You may also direct users directly to your perl script since it will
+present a page with all of your modules. Or you may wish to use this
+default page to create a custom index.html for your users.
+
+----------------------------------------------------------------------
+VERSION HISTORY
+
+4.0 July 8, 2001.
+ Updated to Sword 1.5.2 with innumerable bug fixes.
+ Now builds properly for Win32 using VC++.
+ Diatheke/Tcl and HANDiatheke were omitted, for the moment
+ from this release, but are still available in the CVS.
+
+3.0 March 31, 2001.
+ Self-generating HTML page for the lazy (Diatheke/CGI).
+ Localization support. (Diatheke and Diatheke/CGI).
+
+2.5 Now supports ThML. Numerous bugfixes. December 10, 2000.
+ Includes Diatheke 3.0, Diatheke/CGI 3.0, Diatheke/Tcl 3.0,
+ and HANDiatheke 3.0 (initial version, but version-synced)
+
+2.0 First public release, including Diatheke 2.0, Diatheke/CGI
+ 2.0, and Diatheke/Tcl 2.5. October 23, 1999.
+
+-----------------------------------------------------------------------
+COPYRIGHT
+
+The Diatheke Suite and its components, Diatheke, Diatheke/CGI, and
+Diatheke/Tcl are Copyright 1999, 2000, 2001 by CrossWire Bible Society.
+HANDiatheke is Copyright 2000, 2001 by CrossWire Bible Society.
+The Diatheke Suite and all of its components are licensed through
+the GNU General Public License and are intended for free distribution.
+See http://www.gnu.org/copyleft/gpl.html for details.
+
diff --git a/utilities/diatheke/cgi/Makefile.am b/utilities/diatheke/cgi/Makefile.am
new file mode 100644
index 0000000..237aefd
--- /dev/null
+++ b/utilities/diatheke/cgi/Makefile.am
@@ -0,0 +1,6 @@
+swcgidir = $(top_srcdir)/utilities/diatheke/cgi
+
+EXTRA_DIST = $(swcgidir)/dia-def.pl
+EXTRA_DIST += $(swcgidir)/diatheke.pl
+EXTRA_DIST += $(swcgidir)/index-private.html
+EXTRA_DIST += $(swcgidir)/index-public.html
diff --git a/utilities/diatheke/cgi/dia-def.pl b/utilities/diatheke/cgi/dia-def.pl
new file mode 100755
index 0000000..e2f1d4f
--- /dev/null
+++ b/utilities/diatheke/cgi/dia-def.pl
@@ -0,0 +1,41 @@
+#!/usr/bin/perl
+
+#change this variable to hostname of your server
+@values = split(/\&/,$ENV{'QUERY_STRING'});
+$DOMAIN = $ENV{'REMOTE_ADDR'};
+$EXPIRES = 'Fri Dec 31 23:59:00 GMT 2005';
+
+foreach $i (@values) {
+ ($varname, $mydata) = split(/=/,$i);
+ if ($varname eq "defversion") {
+ $COOKIE = "DEFTRANS=$mydata ; expires=$EXPIRES";
+ }
+ elsif ($varname eq "locale") {
+ $COOKIE = "LOCALE=$mydata ; expires=$EXPIRES";
+ }
+ elsif ($varname eq "settrans") {
+ $COOKIE = "SETTRANS=$mydata ; expires=$EXPIRES";
+ }
+ elsif ($varname eq "setcomm") {
+ $COOKIE = "SETCOMM=$mydata ; expires=$EXPIRES";
+ }
+ elsif ($varname eq "setld") {
+ $COOKIE = "SETLD=$mydata ; expires=$EXPIRES";
+ }
+}
+
+# Set the cookie and send the user the thank you page.
+print "Set-cookie: $COOKIE\n";
+print "Content-type: text/html\n\n"; #Note extra newline to mark
+ #end of header.
+
+print "<html><meta http-equiv=\"refresh\" content=\"0\; URL=$ENV{'HTTP_REFERER'}\"></html>";
+
+
+
+
+
+
+
+
+
diff --git a/utilities/diatheke/cgi/diatheke.pl b/utilities/diatheke/cgi/diatheke.pl
new file mode 100755
index 0000000..ee36f11
--- /dev/null
+++ b/utilities/diatheke/cgi/diatheke.pl
@@ -0,0 +1,509 @@
+#!/usr/bin/perl
+
+# Typical Linux/Unix settings
+$err = "2> /dev/null";
+$sword_path = "/home/sword"; # SWORD_PATH environment variable you want to use
+$diatheke = "nice /usr/bin/diatheke"; # location of diatheke command line program
+
+# Typical Windows settings
+#$err = "";
+#$sword_path = "C:\\Program Files\\CrossWire\\The SWORD Project"; # SWORD_PATH environment variable you want to use
+#$diatheke = "$sword_path\\diatheke.exe"; # location of diatheke command line program
+
+$cgiurl = "http:\/\/www.crosswire.org\/cgi-bin";
+
+$scriptname = "diatheke.pl";
+$defaultfontface = "Times New Roman, Times, Roman, serif"; # default font name
+$maxverses = 50; # maximum number of verses diatheke will return per query (prevents people from asking for Gen1:1-Rev22:21)
+$defaultbook = "KJV"; # book to query when none is selected, but a verse/search is entered
+$deflocale = "abbr"; # this is just the default for cases where user has not selected a locale and his browser does not reveal one -- you can also set locale using locale=<locale> in the GET URL
+
+###############################################################################
+## You should not need to edit anything below this line.
+## Unless you want to modify functionality of course. :)
+###############################################################################
+
+$version = "4.2";
+
+sub shell_escape {
+ my $input = shift;
+ my $result = '';
+
+ foreach my $i (split //, $input) {
+ if ($i eq "'") {
+ $result .= "'\\''";
+ } else {
+ $result .= $i;
+ }
+ }
+ return $result;
+}
+
+
+sub plussifyaddress {
+ ($p_ver = @_[0]) =~ tr/ /+/;
+ $p_newline = "<a href=\"$scriptname?verse=$p_ver&@_[1]=on\">";
+ return $p_newline;
+}
+
+sub urlvers {
+ $u_verse = @_[0];
+ $u_version = @_[1];
+ $u_oldverse = $u_verse;
+ $u_verse =~ tr/ /+/;
+ $u_newline = "<a href=\"$scriptname?verse=$u_verse&$u_version=on\">$u_oldverse</a>";
+ return $u_newline;
+}
+
+$ENV{'SWORD_PATH'} = $sword_path;
+
+print "Content-type: text/html\n\n";
+
+
+if ($ENV{'HTTP_COOKIE'}) {
+
+ $cookie = $ENV{'HTTP_COOKIE'};
+ $cookie =~ s/\; /=/g;
+ %cookiedata = split(/=/, $cookie);
+
+ $defversion = $cookiedata{DEFTRANS};
+ $locale = $cookiedata{LOCALE};
+}
+
+if ($defversion eq "") {
+ $defversion = 'KJV';
+}
+if ($locale eq "") {
+ $locale = $ENV{'HTTP_ACCEPT_LANGUAGE'};
+ $locale =~ s/(..).*/$1/;
+ if ($locale eq "") {
+ $locale = $deflocale;
+ }
+ elsif ($locale eq "en") {
+ $locale = "abbr";
+ }
+}
+
+$locale = shell_escape($locale);
+$hostname = $ENV{'REMOTE_ADDR'};
+@values = split(/\&/,$ENV{'QUERY_STRING'});
+$n = 0;
+$palm = 0;
+
+$latinxlit = "";
+
+$optionfilters = "";
+$debug=1;
+foreach $i (@values) {
+ ($varname, $mydata) = split(/=/,$i);
+ if ($varname ne "Submit" && $varname ne "lookup") {
+ if ($varname eq "verse") {
+ $verse = $mydata;
+ $verse =~ tr/+/ /;
+ $verse =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $verse = shell_escape($verse);
+ }
+ elsif ($varname eq "search" && $mydata ne "" && $mydata ne "off") {
+ $search = "-s '" . shell_escape($mydata) . "'";
+ }
+ elsif ($varname eq "range" && $mydata ne "" && $mydata ne "off") {
+ $range = $mydata;
+ $range =~ tr/+/ /;
+ $range =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $range = "-r \"$range\"";
+ $range = shell_escape($range);
+ }
+
+ elsif ($varname eq "strongs") {
+ $optionfilters .= "n";
+ }
+ elsif ($varname eq "footnotes") {
+ $optionfilters .= "f";
+ }
+ elsif ($varname eq "headings") {
+ $optionfilters .= "h";
+ }
+ elsif ($varname eq "morph") {
+ $optionfilters .= "m";
+ }
+ elsif ($varname eq "hebcant") {
+ $optionfilters .= "c";
+ }
+ elsif ($varname eq "hebvowels") {
+ $optionfilters .= "v";
+ }
+ elsif ($varname eq "grkacc") {
+ $optionfilters .= "a";
+ }
+ elsif ($varname eq "lemmas") {
+ $optionfilters .= "l";
+ }
+ elsif ($varname eq "scriprefs") {
+ $optionfilters .= "s";
+ }
+ elsif ($varname eq "arshape") {
+ $optionfilters .= "r";
+ }
+ elsif ($varname eq "bidi") {
+ $optionfilters .= "b";
+ }
+
+ elsif ($varname eq "latinxlit") {
+ $latinxlit = "-t Latin";
+ }
+
+ elsif ($varname eq "palm") {
+ $palm = 1;
+ }
+ elsif ($varname eq "debug") {
+ $debug = 1;
+ }
+ elsif ($varname eq "locale") {
+ $locale = shell_escape($mydata);
+ }
+ elsif ($varname eq "maxverses") {
+ $maxverses = shell_escape($mydata);
+ }
+ elsif ($mydata eq "on" || $mydata eq "ON") {
+ $versions[$n] = shell_escape($varname);
+ $n++;
+ }
+ }
+}
+if ($optionfilters ne "") {
+ $optionfilters = "-o " . $optionfilters;
+}
+
+
+
+if ($n == 0) {
+ $versions[0] = $defaultbook;
+ $n++;
+}
+
+if ($verse eq "") {
+
+ @versionlist = `$diatheke -b system -k modulelist $err`;
+ @versionlist2 = @versionlist;
+ @localelist = `$diatheke -b system -k localelist $err`;
+
+ print <<DEF1;
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Diatheke Online Bible</title>
+</head>
+
+<body>
+
+<form method="get" action="$scriptname">
+ <p /><input type="radio" name="search" checked value="" /><font face="Arial, Helvetica, sans-serif">Verse/Commentary Lookup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Verse or Search key:</font><input type="text" name="verse" size="20"><input type="submit" name="Submit" value="Submit"><input type="reset" name="Reset" value="Reset"><br />
+ <input type="radio" name="search" value="phrase" /><font face="Arial, Helvetica, sans-serif">Phrase Search</font><br />
+ <input type="radio" name="search" value="multiword" /><font face="Arial, Helvetica, sans-serif">Multiple Word Search</font><br />
+ <input type="radio" name="search" value="regex" /><font face="Arial, Helvetica, sans-serif">Regular Expression Search</font><br />
+<br />
+ <table width="100%" border="0">
+ <tr>
+ <td colspan="2" width="100%">
+
+ <table>
+ <tr>
+ <td>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Custom Range Restriction</font>
+ </td>
+ <td>
+ <input type="text" name="range" size="20">
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="strongs" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Strong's Numbers</font></td>
+ <td width="50%">
+ <input type="checkbox" name="headings" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Section Headings</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="footnotes" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Footnotes</font></td>
+ <td width="50%">
+ <input type="checkbox" name="scriprefs" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Scripture Cross-References</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="morph" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Morphology</font></td>
+ <td width="50%">
+ <input type="checkbox" name="hebvowels" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Hebrew Vowels</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="lemmas" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Lemmas</font></td>
+ <td width="50%">
+ <input type="checkbox" name="hebcant" value="on">
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Hebrew Cantillation
+ Marks </font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="latinxlit" value="on">
+ <font face="Arial, Helvetica, sans-serif" size="-1">Latin Transliterate</font>
+ </td>
+ <td width="50%">
+ <input type="checkbox" name="grkacc" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Greek Accents</font>
+ </td>
+ </tr>
+ </table>
+ <br />
+ <table BORDER="0" WIDTH="100%">
+DEF1
+
+ foreach $line (@versionlist) {
+ chomp($line);
+
+ if ($line eq "Biblical Texts:") {
+ print "<tr><td><font face=$defaultfontface><b>Biblical Texts:</b></font><br /></td></tr>";
+ }
+ elsif ($line eq "Commentaries:") {
+ print "<tr><td><font face=$defaultfontface><b>Commentaries:</b></font></td></tr>";
+ }
+ elsif ($line eq "Dictionaries:") {
+ print "<tr><td><font face=$defaultfontface><b>Dictionaries & Lexica:</b></font></td></tr>";
+ }
+ else {
+ $line =~ s/([^:]+) : (.+)/<tr><td><input type=\"checkbox\" name=\"$1\" value=\"on\"><font size=\"-1\" face=$defaultfontface>$2 ($1)<\/font><\/td><\/tr>/;
+ print "$line\n";
+ }
+
+ }
+
+ print <<DEF2;
+ </table>
+</form>
+
+<form method="get" action="dia-def.pl">
+ Select default Bible version for cross-references:&nbsp;<select name="defversion" size="1">
+
+DEF2
+
+ $biblesflag = 1;
+ foreach $line (@versionlist2) {
+ if ($biblesflag == 1) {
+ chomp ($line);
+ if ($line eq "Biblical Texts:") {
+ }
+ elsif ($line eq "Commentaries:") {
+ $biblesflag = 0;
+ }
+ else {
+ $line =~ s/([^:]+) : (.+)/<option value=\"$1\">$2 ($1)<\/option>/;
+ print "$line\n";
+ }
+ }
+ }
+
+ print <<DEF3;
+</select><input type="submit" name="Submit" value="Submit"></form><br/><form method="get" action="dia-def.pl">Select locale:&nbsp;
+<select name="locale" size="1"><option value="">browser default</option>
+<option value="en">en</option>
+DEF3
+ foreach $line (@localelist) {
+ chomp($line);
+ print "<option value=\"$line\">$line<\/option>";
+ }
+print <<DEF4
+</select>
+<input type="submit" name="Submit" value="Submit">
+</form>
+</body>
+</html>
+DEF4
+
+}
+else {
+
+
+
+if ($palm == 0) {
+print <<END;
+
+<html><head>
+<title>Diatheke Interlinear Bible</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="palmcomputingplatform" content="true">
+<meta name="historylisttext" content="Diatheke">
+<style type="text/css">
+#divBottom{position:absolute; visibility:hidden; font-family:arial,helvetica; height:30; width:100; font-size:10pt; font-weight:bold}
+A:link, A:visited, A:active{text-decoration: none}
+</style>
+<script type="text/javascript" language="JavaScript">
+/********************************************************************************
+Copyright (C) 1999 Thomas Brattli
+This script is made by and copyrighted to Thomas Brattli at www.bratta.com
+Visit for more great scripts. This may be used freely as long as this msg is intact!
+I will also appriciate any links you could give me.
+********************************************************************************/
+//Default browsercheck, added to all scripts!
+function checkBrowser(){
+ this.ver=navigator.appVersion;
+ this.dom=document.getElementById?1:0;
+ this.ie5=( (this.ver.indexOf("MSIE 6")>-1 || this.ver.indexOf("MSIE 5")>-1) && this.dom)?1:0;
+ this.ie4=(document.all && !this.dom)?1:0;
+ this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
+ this.ns4=(document.layers && !this.dom)?1:0;
+ this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5);
+ return this;
+}
+bw=new checkBrowser()
+/********************************************************************************
+Remeber to set the look of the divBottom layer in the stylesheet (if you wan't
+another font or something)
+********************************************************************************/
+/*Set these values, gright for how much from the right you wan't the layer to go
+and gbottom for how much from the bottom you want it*/
+var gright=160
+var gbottom=80
+
+
+
+/********************************************************************************
+Constructing the ChangeText object
+********************************************************************************/
+function makeObj(obj,nest){
+ nest=(!nest) ? '':'document.'+nest+'.';
+ this.css=bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0;
+ this.moveIt=b_moveIt;
+}
+function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x; this.css.top=this.y}
+
+/********************************************************************************
+Initilizing the page, getting height and width to moveto and calls the
+object constructor
+********************************************************************************/
+ function geoInit(){
+ oGeo=new makeObj('divBottom');
+ pageWidth=(bw.ie4 || bw.ie5)?document.body.offsetWidth-4:innerWidth;
+ pageHeight=(bw.ie4 || bw.ie5)?document.body.offsetHeight-2:innerHeight;
+ checkIt();
+ // sets the resize handler.
+ onresize=resized;
+ if(bw.ie4 || bw.ie5) window.onscroll=checkIt;
+ // shows the div
+ oGeo.css.visibility='visible';
+ }
+/********************************************************************************
+This function executes onscroll in ie and every 30 millisecond in ns
+and checks if the user have scrolled, and if it has it moves the layer.
+********************************************************************************/
+function checkIt(){
+ if(bw.ie4 || bw.ie5) oGeo.moveIt(document.body.scrollLeft +pageWidth-gright,document.body.scrollTop+pageHeight-gbottom);
+ else if(bw.ns4){
+ oGeo.moveIt(window.pageXOffset+pageWidth-gright, window.pageYOffset+pageHeight-gbottom);
+ setTimeout('checkIt()',30);
+ }
+}
+
+//Adds a onresize event handler to handle the resizing of the window.
+function resized(){
+ pageWidth=(bw.ie4 || bw.ie5)?document.body.offsetWidth-4:innerWidth;
+ pageHeight=(bw.ie4 || bw.ie5)?document.body.offsetHeight-2:innerHeight;
+ if(bw.ie4 || bw.ie5) checkIt()
+}
+
+
+//Calls the geoInit onload
+if(bw.bw && !bw.ns5) onload=geoInit;
+
+//Here we will write the div out so that lower browser won't see it.'
+if(bw.bw && !bw.ns5) document.write('<div id="divBottom"><table><tr><td align="center">Powered by<br /><img src="http://www.crosswire.org/sword/pbsword.gif"><br /><a href="http://www.crosswire.org/">www.crosswire.org</td></tr></table></div>')
+</script>
+
+</head>
+
+<body bgcolor="#FFFFFF"><font face="$defaultfontface">
+
+END
+}
+else {
+print <<END
+
+<html><head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="palmcomputingplatform" content="true">
+<meta name="historylisttext" content="HANDiatheke">
+</head>
+<body bgcolor="#FFFFFF"><font face="$defaultfontface">
+END
+}
+for ($i = 0; $i < $n; $i++) {
+
+ $line = "$diatheke $search $range $optionfilters $latinxlit -l '$locale' -m '$maxverses' -f cgi -b '$versions[$i]' -k '$verse' $err";
+
+ if ($debug) {
+ print "<br /><i>command line: $line\n</i><br /><br />";
+ }
+ $line = `$line`;
+
+ chomp($line);
+
+ $line =~ s/!DIATHEKE_URL!/$scriptname\?/g;
+
+# Parse and link to Strong's references if present
+
+ $info = `$diatheke -b info -k '$versions[$i]' $err`;
+ $info =~ /([^\;]+)\;([^\;]+)/;
+ $format = $1;
+ $type = $2;
+
+ if ($versions[$i] eq "StrongsHebrew") {
+ $line =~ s/(see HEBREW for )([0-9]+)/<a href=\"$scriptname?verse=$2&StrongsHebrew=on\">$1$2\<\/a\>/g;
+ }
+ elsif($versions[$i] eq "StrongsGreek") {
+ $line =~ s/(see GREEK for )([0-9]+)/<a href=\"$scriptname?verse=$2&StrongsGreek=on\">$1$2\<\/a\>/g;
+ }
+ #case for searches
+ elsif($search ne "") {
+ $line =~ s/<entry>([^<]+)<\/entry>/urlvers($1, $versions[$i])/eg;
+ }
+ #case for non-ThML, non-Bible texts
+ elsif($type ne "Biblical Texts") {
+ $book = $verse;
+ $book =~ s/^([A-Za-z0-9]+) [0-9]+:[0-9]+.*/$1/;
+ $chapter = $verse;
+ $chapter =~ s/[A-Za-z0-9]+ ([0-9]+):[0-9]+.*/$1/;
+ $line =~ s/\#*([1-9]*[A-Z][a-z]+\.*) ([0-9]+):([0-9]+-*,*[0-9]*)\|*/<a href=\"$scriptname?verse=$1+$2%3A$3&$defversion=on\">$1 $2:$3\<\/a\>/g;
+ $line =~ s/\#([0-9]+):([0-9]+-*,*[0-9]*)\|*/<a href=\"$scriptname?verse=$book+$1%3A$2&$defversion=on\">$book $1:$2\<\/a\>/g;
+ $line =~ s/\#([0-9]+-*,*[0-9]*)\|*/<a href=\"$scriptname?verse=$book+$chapter%3A$1&$defversion=on\">$book $chapter:$1\<\/a\>/g;
+ }
+
+ if ($locale ne "abbr") {
+ $line =~ s/href=\"$scriptname([^\"]+)\"/href=\"$scriptname$1&locale=$locale\"/g;
+ }
+ if ($palm == 1) {
+ $line =~ s/href=\"$scriptname([^\"]+)\"/href=\"$cgiurl\/$scriptname$1&palm=on\"/g;
+ }
+
+ print "$line <br /><br />\n";
+}
+
+if ($palm == 1) {
+ print "<hr>Powered by Diatheke (http:\/\/www.gotjesus.org\/sword\/diatheke) and the SWORD Project (http:\/\/www.crosswire.org\/sword).";
+}
+
+print "<br /><br /><br /><br /></font></body></html>";
+
+}
+
+
diff --git a/utilities/diatheke/cgi/index-private.html b/utilities/diatheke/cgi/index-private.html
new file mode 100644
index 0000000..6afbc91
--- /dev/null
+++ b/utilities/diatheke/cgi/index-private.html
@@ -0,0 +1,1264 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Diatheke Online Bible</title>
+</head>
+
+<body>
+
+<form method="get" action="cgi-bin/diatheke.pl">
+ <p /> <font face="Arial, Helvetica, sans-serif">Verse or Search key:</font>
+ <input type="text" name="verse" size="20">
+ <input type="submit" name="Submit" value="Submit">
+ <input type="reset" name="Reset" value="Reset">
+ <br />
+ <br />
+ <input type="radio" name="search" checked value="" />
+ <font face="Arial, Helvetica, sans-serif">Verse/Commentary Lookup</font> <br />
+ <input type="radio" name="search" value="phrase" />
+ <font face="Arial, Helvetica, sans-serif">Phrase Search</font><br />
+ <input type="radio" name="search" value="multiword" />
+ <font face="Arial, Helvetica, sans-serif">Multiple Word Search</font><br />
+ <input type="radio" name="search" value="regex" />
+ <font face="Arial, Helvetica, sans-serif">Regular Expression Search<br>
+ <br>
+ </font>
+ <table width="100%" border="0">
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="strongs" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Strong's Numbers</font></td>
+ <td width="50%">
+ <input type="checkbox" name="headings" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Section Headings</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="footnotes" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Footnotes</font></td>
+ <td width="50%">
+ <input type="checkbox" name="scriprefs" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Scripture Cross-References</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="morph" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Morphology</font></td>
+ <td width="50%">
+ <input type="checkbox" name="hebvowels" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Hebrew Vowels</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="lemmas" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Lemmas</font></td>
+ <td width="50%">
+ <input type="checkbox" name="hebcant" value="on">
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Hebrew Cantillation
+ Marks </font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="latinxlit" value="on">
+ <font face="Arial, Helvetica, sans-serif" size="-1">Latin Transliterate</font>
+ </td>
+ <td width="50%">
+ <input type="checkbox" name="grkacc" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Greek Accents</font>
+ </td>
+ </tr>
+ </table>
+ <br>
+ <table BORDER="0" WIDTH="100%">
+ <tr>
+ <td width="50%"><font face=Times New Roman, Times, serif><b>English Biblical
+ Texts:</b></font><br />
+ </td>
+ <td width="50%"><font face=Times New Roman, Times, serif><b>Non-English
+ Biblical Texts:</b></font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="AKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>American King James
+ Version (AKJV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="ALB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Albanian Bible (ALB)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ALT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Analytical-Literal
+ Translation (ALT)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="Afr1953" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1953 Afrikaans Bybel
+ (Afr1953)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ASV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1901 American Standard
+ Version (ASV)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="Afr1983" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1983 Afrikaans Bybel
+ (Afr1983)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="BBE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1965 Bible in Basic
+ English (BBE)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="AraSVD" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Smith & Van Dyke Arabic
+ Bible (AraSVD)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="BWE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Bible in Worldwide
+ English (BWE)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="ChiGU" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Chinese Glory Union
+ Bible (ChiGU)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Brenton" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Brenton's English Translation
+ of the Septuagint (Brenton)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="CzeBKR" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Bible Kralicka
+ (CzeBKR)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Common" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Common Edition:
+ New Testament (Common)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="CzeCEP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Ekumenicky Cesky
+ preklad (CzeCEP)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="DR" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Douay-Rheims Bible
+ (DR)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="CzeKMS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Preklad KMS Nova
+ smlouva (CzeKMS)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="DRA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Douay-Rheims 1899 American
+ Edition (DRA)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="CzeNKB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Nova kralicka
+ Bible (CzeNKB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Darby" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1889 Darby Bible (Darby)</font>
+ </td>
+ <td width="50%">
+ <input type="checkbox" name="Dan" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Danske Bibel (Dan)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="GodsWord" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>GOD'S WORD Translation
+ (GodsWord)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="DutLEI" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Dutch Leidse Vertaling
+ (DutLEI)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="HNV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Hebrew Names Version
+ of the World English Bible (HNV)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="DutLU" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Dutch Lutherse Vertaling
+ (DutLU)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="IGNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Interlinear Greek New
+ Testament (IGNT)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="DutNBG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Dutch Netherlands Bijbelgenootschap
+ Vertaling 1951 (DutNBG)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ISV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>International Standard
+ Version (ISV)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="DutPALM" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Dutch PALM-editie NT
+ (DutPALM)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="JPS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Jewish Publication
+ Society Old Testament (JPS)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="DutSVV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Dutch Statenvertaling
+ (DutSVV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="KJ21" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>21st Century King James
+ Version (KJ21)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="EquShr" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Equadorian Shuar NT
+ (EquShr)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="KJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>King James Version
+ of 1611 w/ Strongs Numbers (KJV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Esperanto" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Esperanto Bible (Esperanto)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="LITV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Green's Literal Translation
+ (LITV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FinPR" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Finnish 1938 PhyZ Raamattu
+ (FinPR)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="LO" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Living Oracles
+ NT (LO)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreBFC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Bible en francais
+ courant, edition revisee (FreBFC)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Green's Modern King
+ James Version (MKJV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreBJ" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Bible de Jerusalem
+ (FreBJ)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Montgomery" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Montgomery New Testament
+ (Montgomery)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreCrl" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Haitian Creole
+ Version (FreCrl)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Murdock" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>James Murdock's Translation
+ of the Syriac Peshitta (Murdock)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreDrb" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Darby Version
+ (FreDrb)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NAB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New American Bible
+ (NAB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreLSG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French 1910 Louis Segond
+ (FreLSG)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NASB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New American Standard
+ Bible (NASB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreNEG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Nouvelle Edition
+ de Geneve 1979 (FreNEG)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NASB95" value="on">
+ <font size="-1" face=Times New Roman, Times, serif> New American Standard
+ Bible 1995 Update (NASB95)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreTOB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Traduction oecumenique
+ de la Bible (FreTOB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NCV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New Century Version
+ (NCV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerBen" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German Bengel NT (GerBen)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NIV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New International Version
+ (NIV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerEin" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German Einheitsuebersetzung
+ der Heilegen Schrift (GerEin)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NIVBr" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New International Version,
+ British Edition (NIVBr)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerElb" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German Darby Unrevidierte
+ Elberfelder 1905 (GerElb)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NJB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New Jerusalem Bible
+ (NJB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerLut" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German 1912 Luther
+ (GerLut)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New King James Version
+ (NKJV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerLut1545" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German 1545 Luther
+ (GerLut1545)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NLT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New Living Translation
+ (NLT)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerRElb" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German Elberfelder
+ Bibel revidierte Fassung 1993 (GerRElb)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NRSV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New Revised Standard
+ Version (NRSV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerRLut" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German Revised Lutherbibel
+ 1984 (GerRLut)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ORTHJBC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Orthodox Jewish
+ Brit Chadasha (ORTHJBC)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="GerSch" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German 1951 Schlachter
+ Bibel (GerSch)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Phillips" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>J B Phillips New Testament
+ (Phillips)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="GothicA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Gothic Codex Ambr.
+ A & Mss. (GothicA)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RNKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Restored Name King
+ James Version (RNKJV)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="GothicB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Gothic Codex Ambr.
+ B & Car. (GothicB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RSV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Revised Standard Version
+ (RSV)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="HunKar" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Hungarian Karoli (HunKar)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RWebster" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Revised 1833 Webster
+ Version (RWebster)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Icelandic" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Icelandic Bible (Icelandic)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Rotherham" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Emphasized Bible
+ by J. B. Rotherham (Rotherham)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="IndBIS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Indonesian Bahasa Indonesia
+ Sehari-hari (IndBIS)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TEV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Todays English Version
+ (Good News Bible) 1966 and 1976 (TEV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="IndTB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Indonesian Terjemahan
+ Baru (IndTB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TMB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Third Millenium Bible
+ (TMB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="IndTL" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Indonesian Terjemahan
+ Baru (IndTL)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Twenty" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Twentieth Century New
+ Testament (Twenty)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="ItaIEP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Italian NVB Nuovissima
+ Versione della Bibbbia San Paolo Edizione (ItaIEP)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="WEB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>World English Bible
+ (WEB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="ItaLND" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Italian 1991 La Nuova
+ Diodati (ItaLND)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Websters" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Webster Bible (Websters)</font>
+ </td>
+ <td width="50%">
+ <input type="checkbox" name="ItaNRV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Italian 1994 La Sacra
+ Bibbia Nuova Riveduta (ItaNRV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Weymouth" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1912 Weymouth NT (Weymouth)</font>
+ </td>
+ <td width="50%">
+ <input type="checkbox" name="JapKUG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Japanese JKUG Translation
+ (JapKUG)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="YLT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1898 Young's Literal
+ Translation (YLT)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="JapSNKI" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Japanese JSNKI Translation
+ (JapSNKI)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp; </td>
+ <td width="50%">
+ <input type="checkbox" name="Ketchi" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Ketchi Bible (Ketchi)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Unorthodox or
+ Heretical Biblical Texts:</b></font> </td>
+ <td width="50%">
+ <input type="checkbox" name="Korean" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Korean Bible (Korean)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="CLNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Concordant Literal
+ New Testament (CLNT)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="Latvian" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Latvian New Testament
+ (Latvian)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Diaglott" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Emphatic Diaglott
+ (Diaglott)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="ManxGaelic" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Manx Gaelic Scripture
+ Portions (ManxGaelic)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="JST" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Joseph Smith Translation
+ (JST)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Maori" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Maori Bible (Maori)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RVIC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Revised Version, Improved
+ and Corrected (RVIC)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Mel" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Melanesian Pidgin Bible
+ (Mel)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp; </td>
+ <td width="50%">
+ <input type="checkbox" name="NorBok" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Norwegian 1930 Bokmal
+ (NorBok)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Original Language
+ Biblical Texts:</b></font> </td>
+ <td width="50%">
+ <input type="checkbox" name="NorN38" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Norwegian 1938 Nynorsk
+ (NorN38)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="LXX" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Septuagint (LXX)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="NorNBK" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Norwegian Bibel Konkordant
+ (NorNBK)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="LXXM" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Septuagint, Morphologically
+ Tagged Rahlfs' (LXXM)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="NorNyn" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Norwegian 1994 Nynorsk
+ (NorNyn)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="N27U4" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Nestle Aland 27th Ed./
+ UBS 4th Ed. Greek Text (N27U4)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="Norsk" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Norsk Bibelen (Norsk)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="BHS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Biblia Hebraica Stuttgartensia
+ (BHS)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="PhiCEB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Philippine Nga Cebuano
+ (PhiCEB)</font> </td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="Byz" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1991 Byzantine/Majority
+ Text (Byz)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="PolBTP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Polish Millenium Bible
+ 1984, 4th Ed. (PolBTP)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Scrivner" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1894 Scrivener Textus
+ Receptus (Scrivner)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="PorAA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Portuguese Joao Ferreira
+ de Almeida Atualizada (PorAA)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Stephanus" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1550 Stephanus Textus
+ Receptus (Stephanus)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="PorACF" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Brazillian Portuguese
+ Joao Ferreira de Almeida, Corrigada Fiel 1995 (PorACF)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Tisch" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Tischendorf's Eighth
+ Edition GNT (Tisch)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="PorBRP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Portuguese 1994 Almeida
+ Biblia (PorBRP)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="Vulgate" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Latin Vulgate (Vulgate)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="PorRA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Portuguese Almeida
+ Revista e Atualizada (PorRA)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="Vulgate_HebPs" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Latin Vulgate Psalms
+ from Hebrew (Vulgate_HebPs)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="PorRC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Portuguese Almeida
+ Revista e Corrigida (PorRC)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="WH" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1881 Westcott-Hort
+ Greek Text (WH)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="RST" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Russian Synodal Translation
+ (RST)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="WHNU" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Westcott-Hort with
+ NA27U4 variants (WHNU)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="RomCor" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Romanian Cornilescu
+ Version (RomCor)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp;</td>
+ <td width="50%">
+ <input type="checkbox" name="Romani" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Romani (Gypsy) New
+ Testament (Romani)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Commentaries:</b></font></td>
+ <td width="50%">
+ <input type="checkbox" name="Sango" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Le Sainte Bible en
+ sango, 1996 (Sango)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="AudioKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>KJV Audio Bible read
+ by James Scourby (AudioKJV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="ScotsGaelic" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Scots Gaelic Gospel
+ of Mark (ScotsGaelic)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Barnes" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Barnes' New Testament
+ Notes (Barnes)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaLBA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish La Biblia de
+ Las Americas (SpaLBA)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Clarke" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Adam Clarke's Commentary
+ on the Bible (Clarke)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaRV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish Reina-Valera
+ (SpaRV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="DTN" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Darby Translation Notes
+ (DTN)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaRV60" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish Reina-Valera
+ Revised 1960 (SpaRV60)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Family" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Family Bible Notes
+ (Family)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaRV95" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish Reina-Valera
+ Update 1995 (SpaRV95)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Geneva" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Geneva Bible Translation
+ Notes (Geneva)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaRVA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish Version Reina-Valera
+ Actualizada (SpaRVA)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Gill" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>John Gill's Expositor
+ (Gill)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaSEV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish 1569 Sagradas
+ Escrituras Version Antigua (SpaSEV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="JFB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Jamieson Fausset Brown
+ Bible Commentary (JFB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaVNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish 1858 Valera
+ New Testament (SpaVNT)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MAK" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Matthias Ansorgs Kommentar
+ (MAK)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Swahili" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Swahili New Testament
+ (Swahili)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MHC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Matthew Henry's Complete
+ Commentary on the Whole Bible (MHC)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SweSVE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Swedish Bible 1917
+ New Testament (SweSVE)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MHCC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Matthew Henry's Concise
+ Commentary on the Whole Bible (MHCC)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Tagalog" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Tagalog (John & James)
+ (Tagalog)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="PNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The People's New Testament
+ (PNT)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Tamil" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Tamil Bible (Tamil)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Personal" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Personal Commentary
+ (Personal)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="ThaiKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Thai KJV (ThaiKJV)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RWP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Robertson's Word Pictures
+ (RWP)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Turkish" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Turkish NT (Turkish)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Rieger" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Carl Heinrich Riegers
+ Kommentar (Rieger)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="UMGreek" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Unaccented Modern Greek
+ Text (UMGreek)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TDavid" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>C. H. Spurgeon's Treasury
+ of David (TDavid)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Ukrainian" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Ukrainian Bible (Ukrainian)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TFG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Fourfold Gospel
+ and Commentary on Acts of Apostles (TFG)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Uma" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Uma New Testament (Uma)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TSK" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Treasury of Scriptural
+ Knowledge (TSK)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Viet" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1934 Vietnamese Bible
+ (Viet)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Wesley" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>John Wesley's Notes
+ on the Bible (Wesley)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Xhosa" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Xhosa Bible (Xhosa)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp;</td>
+ <td width="50%">&nbsp; </td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Dictionaries
+ & Lexica:</b></font></td>
+ <td width="50%"><font face=Times New Roman, Times, serif><b>Daily Devotionals:</b></font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="AmTract" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>American Tract Society
+ Bible Dictionary (AmTract)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Daily" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Jonathan Bagster's
+ Daily Light on the Daily Path (Daily)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="BDB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Brown-Driver-Briggs
+ Hebrew Lexicon (BDB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SME" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>C. H. Spurgeon's Morning
+ and Evening: Daily Readins (SME)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Eastons" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Easton's Bible Dictionary
+ (Eastons)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_89" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1989 Losung auf deutsch
+ (losung_de_89)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Hitchcocks" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Hitchcock's Bible Names
+ (Hitchcocks)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_90" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1990 Losung auf deutsch
+ (losung_de_90)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ISBE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>International Standard
+ Bible Encyclopedia (ISBE)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_91" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1991 Losung auf deutsch
+ (losung_de_91)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Naves" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Nave's Topical Bible
+ (Naves)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_92" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1992 Losung auf deutsch
+ (losung_de_92)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Packard" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Packard's Morphological
+ Analysis Codes (Packard)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_93" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1993 Losung auf deutsch
+ (losung_de_93)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Smiths" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Smith's Bible Dictionary
+ (Smiths)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_94" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1994 Losung auf deutsch
+ (losung_de_94)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="StrongsGreek" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Strong's Greek Bible
+ Dictionary (StrongsGreek)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_95" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1995 Losung auf deutsch
+ (losung_de_95)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="StrongsHebrew" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Strong's Hebrew Bible
+ Dictionary (StrongsHebrew)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_96" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1996 Losung auf deutsch
+ (losung_de_96)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Thayer" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Thayer's Greek Lexicon
+ (Thayer)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_97" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1997 Losung auf deutsch
+ (losung_de_97)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Torrey" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>R. A. Torrey's New
+ Topical Textbook (Torrey)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_98" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1998 Losung auf deutsch
+ (losung_de_98)</font></td>
+ </tr>
+ <tr>
+ <td width="48%" height="23">
+ <input type="checkbox" name="Vines" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Vines Bible Dictionary
+ (Vines)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Losung auf deutsch
+ (losung_de_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="WebstersDict" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Webster's Revised Unabridged
+ Dictionary 1913 (WebstersDict)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_en_96" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1996 Watchwords (Losung)
+ in English (losung_en_96)</font></td>
+ </tr>
+ <tr>
+ <td width="48%" height="23">&nbsp;</td>
+ <td width="50%" height="23">
+ <input type="checkbox" name="losung_en_97" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1997 Watchwords (Losung)
+ in English (losung_en_97)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp;</td>
+ <td width="50%">
+ <input type="checkbox" name="losung_en_98" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1998 Watchwords (Losung)
+ in English (losung_en_98)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp; </td>
+ <td width="50%">
+ <input type="checkbox" name="losung_en_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Watchwords (Losung)
+ in English (losung_en_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp; </td>
+ <td width="50%">
+ <input type="checkbox" name="losung_es_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Watchwords (Losung)
+ en Castellano (losung_es_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp;</td>
+ <td width="50%">
+ <input type="checkbox" name="losung_nl_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Watchwords (Losung)
+ in Dutch (losung_nl_99)</font></td>
+ </tr>
+ </table>
+</form>
+
+<form method="get" action="cgi-bin/dia-def.pl">
+ Select default Bible version for cross-references:&nbsp;<select name="defversion" size="1">
+
+<option value="AKJV">American King James Version (AKJV)</option>
+<option value="ALB">Albanian Bible (ALB)</option>
+<option value="ALT">Analytical-Literal Translation (ALT)</option>
+<option value="ASV">1901 American Standard Version (ASV)</option>
+<option value="Afr1953">1953 Afrikaans Bybel (Afr1953)</option>
+<option value="Afr1983">1983 Afrikaans Bybel (Afr1983)</option>
+<option value="AraSVD">Smith & Van Dyke Arabic Bible (AraSVD)</option>
+<option value="BBE">1965 Bible in Basic English (BBE)</option>
+<option value="BHS">Biblia Hebraica Stuttgartensia (BHS)</option>
+<option value="BWE">Bible in Worldwide English (BWE)</option>
+<option value="Brenton">Brenton's English Translation of the Septuagint (Brenton)</option>
+<option value="Byz">1991 Byzantine/Majority Text (Byz)</option>
+<option value="CLNT">Concordant Literal New Testament (CLNT)</option>
+<option value="ChiGU">Chinese Glory Union Bible (ChiGU)</option>
+<option value="Common">The Common Edition: New Testament (Common)</option>
+<option value="CzeBKR">Czech Bible Kralicka (CzeBKR)</option>
+<option value="CzeCEP">Czech Ekumenicky Cesky preklad (CzeCEP)</option>
+<option value="CzeKMS">Czech Preklad KMS Nova smlouva (CzeKMS)</option>
+<option value="CzeNKB">Czech Nova kralicka Bible (CzeNKB)</option>
+<option value="DR">Douay-Rheims Bible (DR)</option>
+<option value="DRA">Douay-Rheims 1899 American Edition (DRA)</option>
+<option value="Dan">Danske Bibel (Dan)</option>
+<option value="Darby">1889 Darby Bible (Darby)</option>
+<option value="Diaglott">The Emphatic Diaglott (Diaglott)</option>
+<option value="DutLEI">Dutch Leidse Vertaling (DutLEI)</option>
+<option value="DutLU">Dutch Lutherse Vertaling (DutLU)</option>
+<option value="DutNBG">Dutch Netherlands Bijbelgenootschap Vertaling 1951 (DutNBG)</option>
+<option value="DutPALM">Dutch PALM-editie NT (DutPALM)</option>
+<option value="DutSVV">Dutch Statenvertaling (DutSVV)</option>
+<option value="EquShr">Equadorian Shuar NT (EquShr)</option>
+<option value="Esperanto">Esperanto Bible (Esperanto)</option>
+<option value="FinPR">Finnish 1938 PhyZ Raamattu (FinPR)</option>
+<option value="FreBFC">French Bible en francais courant, edition revisee (FreBFC)</option>
+<option value="FreBJ">French Bible de Jerusalem (FreBJ)</option>
+<option value="FreCrl">French Haitian Creole Version (FreCrl)</option>
+<option value="FreDrb">French Darby Version (FreDrb)</option>
+<option value="FreLSG">1910 Louis Segond (FreLSG)</option>
+<option value="FreNEG">French Nouvelle Edition de Geneve 1979 (FreNEG)</option>
+<option value="FreTOB">French Traduction oecumenique de la Bible (FreTOB)</option>
+<option value="GerBen">German Bengel NT (GerBen)</option>
+<option value="GerEin">German Einheitsuebersetzung der Heilegen Schrift (GerEin)</option>
+<option value="GerElb">German Darby Unrevidierte Elberfelder 1905 (GerElb)</option>
+<option value="GerLut">German 1912 Luther (GerLut)</option>
+<option value="GerLut1545">German 1545 Luther (GerLut1545)</option>
+<option value="GerRElb">German Elberfelder Bibel revidierte Fassung 1993 (GerRElb)</option>
+<option value="GerRLut">German Revised Lutherbibel 1984 (GerRLut)</option>
+<option value="GerSch">German 1951 Schlachter Bibel (GerSch)</option>
+<option value="GodsWord">GOD'S WORD Translation (GodsWord)</option>
+<option value="GothicA">Gothic Codex Ambr. A & Mss. (GothicA)</option>
+<option value="GothicB">Gothic Codex Ambr. B & Car. (GothicB)</option>
+<option value="HNV">Hebrew Names Version of the World English Bible (HNV)</option>
+<option value="HunKar">Hungarian Karoli (HunKar)</option>
+<option value="IGNT">Interlinear Greek New Testament (IGNT)</option>
+<option value="ISV">International Standard Version (ISV)</option>
+<option value="Icelandic">Icelandic Bible (Icelandic)</option>
+<option value="IndBIS">Indonesian Bahasa Indonesia Sehari-hari (IndBIS)</option>
+<option value="IndTB">Indonesian Terjemahan Baru (IndTB)</option>
+<option value="IndTL">Indonesian Terjemahan Baru (IndTL)</option>
+<option value="ItaIEP">Italian NVB Nuovissima Versione della Bibbbia San Paolo Edizione (ItaIEP)</option>
+<option value="ItaLND">Italian 1991 La Nuova Diodati (ItaLND)</option>
+<option value="ItaNRV">Italian 1994 La Sacra Bibbia Nuova Riveduta (ItaNRV)</option>
+<option value="JPS">Jewish Publication Society Old Testament (JPS)</option>
+<option value="JST">Joseph Smith Translation (JST)</option>
+<option value="JapKUG">Japanese JKUG Translation (JapKUG)</option>
+<option value="JapSNKI">Japanese JSNKI Translation (JapSNKI)</option>
+<option value="KJ21">21st Century King James Version (KJ21)</option>
+<option value="KJV">King James Version of 1611 w/ Strongs Numbers (KJV)</option>
+<option value="Ketchi">Ketchi Bible (Ketchi)</option>
+<option value="Korean">Korean Bible (Korean)</option>
+<option value="LITV">Green's Literal Translation (LITV)</option>
+<option value="LO">The Living Oracles NT (LO)</option>
+<option value="LXX">Septuagint (LXX)</option>
+<option value="LXXM">Septuagint, Morphologically Tagged Rahlfs' (LXXM)</option>
+<option value="Latvian">Latvian New Testament (Latvian)</option>
+<option value="MKJV">Green's Modern King James Version (MKJV) (MKJV)</option>
+<option value="ManxGaelic">Manx Gaelic Scripture Portions (ManxGaelic)</option>
+<option value="Maori">Maori Bible (Maori)</option>
+<option value="Mel">Melanesian Pidgin Bible (Mel)</option>
+<option value="Montgomery">Montgomery New Testament (Montgomery)</option>
+<option value="Murdock">James Murdock's Translation of the Syriac Peshitta (Murdock)</option>
+<option value="N27U4">Nestle Aland 27th Ed./ UBS 4th Ed. Greek Text (N27U4)</option>
+<option value="NAB">New American Bible (NAB)</option>
+<option value="NASB">The New American Standard Bible (NASB)</option>
+<option value="NASB95">The New American Standard Bible 1995 Update (NASB95)</option>
+<option value="NCV">New Century Version (NCV)</option>
+<option value="NIV">New International Version (NIV)</option>
+<option value="NIVBr">New International Version, British Edition (NIVBr)</option>
+<option value="NJB">New Jerusalem Bible (NJB)</option>
+<option value="NKJV">New King James Version (NKJV)</option>
+<option value="NLT">New Living Translation (NLT)</option>
+<option value="NRSV">New Revised Standard Version (NRSV)</option>
+<option value="NorBok">Norwegian 1930 Bokmal (NorBok)</option>
+<option value="NorN38">Norwegian 1938 Nynorsk (NorN38)</option>
+<option value="NorNBK">Norwegian Bibel Konkordant (NorNBK)</option>
+<option value="NorNyn">Norwegian 1994 Nynorsk (NorNyn)</option>
+<option value="Norsk">Norsk Bibelen (Norsk)</option>
+<option value="ORTHJBC">The Orthodox Jewish Brit Chadasha (ORTHJBC)</option>
+<option value="PhiCEB">Philippine Nga Cebuano (PhiCEB)</option>
+<option value="Phillips">J B Phillips New Testament (Phillips)</option>
+<option value="PolBTP">Polish Millenium Bible 1984, 4th Ed. (PolBTP)</option>
+<option value="PorAA">Portuguese Joao Ferreira de Almeida Atualizada (PorAA)</option>
+<option value="PorACF">Brazillian Portuguese Joao Ferreira de Almeida, Corrigada Fiel 1995 (PorACF)</option>
+<option value="PorBRP">Portuguese 1994 Almeida Biblia (PorBRP)</option>
+<option value="PorRA">Portuguese Almeida Revista e Atualizada (PorRA)</option>
+<option value="PorRC">Portuguese Almeida Revista e Corrigida (PorRC)</option>
+<option value="RNKJV">Restored Name King James Version (RNKJV)</option>
+<option value="RST">Russian Synodal Translation (RST)</option>
+<option value="RSV">Revised Standard Version (RSV)</option>
+<option value="RVIC">Revised Version, Improved and Corrected (RVIC)</option>
+<option value="RWebster">Revised 1833 Webster Version (RWebster)</option>
+<option value="RomCor">Romanian Cornilescu Version (RomCor)</option>
+<option value="Romani">Romani (Gypsy) New Testament (Romani)</option>
+<option value="Rotherham">The Emphasized Bible by J. B. Rotherham (Rotherham)</option>
+<option value="Sango">Le Sainte Bible en sango, 1996 (Sango)</option>
+<option value="ScotsGaelic">Scots Gaelic Gospel of Mark (ScotsGaelic)</option>
+<option value="Scrivner">1894 Scrivener Textus Receptus (Scrivner)</option>
+<option value="SpaLBA">Spanish La Biblia de Las Americas (SpaLBA)</option>
+<option value="SpaRV">Spanish Reina-Valera (SpaRV)</option>
+<option value="SpaRV60">Spanish Reina-Valera Revised 1960 (SpaRV60)</option>
+<option value="SpaRV95">Spanish Reina-Valera Update 1995 (SpaRV95)</option>
+<option value="SpaRVA">Spanish Version Reina-Valera Actualizada (SpaRVA)</option>
+<option value="SpaSEV">Spanish 1569 Sagradas Escrituras Version Antigua (SpaSEV)</option>
+<option value="SpaVNT">Spanish 1858 Valera New Testament (SpaVNT)</option>
+<option value="Stephanus">1550 Stephanus Textus Receptus (Stephanus)</option>
+<option value="Swahili">Swahili New Testament (Swahili)</option>
+<option value="SweSVE">Swedish Bible 1917 New Testament (SweSVE)</option>
+<option value="TEV">Todays English Version (Good News Bible) 1966 and 1976 (TEV)</option>
+<option value="TMB">Third Millenium Bible (TMB)</option>
+<option value="Tagalog">Tagalog (John & James) (Tagalog)</option>
+<option value="Tamil">Tamil Bible (Tamil)</option>
+<option value="ThaiKJV">Thai KJV (ThaiKJV)</option>
+<option value="Tisch">Tischendorf's Eighth Edition GNT (Tisch)</option>
+<option value="Turkish">Turkish NT (Turkish)</option>
+<option value="Twenty">Twentieth Century New Testament (Twenty)</option>
+<option value="UMGreek">Unaccented Modern Greek Text (UMGreek)</option>
+<option value="Ukrainian">Ukrainian Bible (Ukrainian)</option>
+<option value="Uma">Uma New Testament (Uma)</option>
+<option value="Viet">1934 Vietnamese Bible (Viet)</option>
+<option value="Vulgate">Latin Vulgate (Vulgate)</option>
+<option value="Vulgate_HebPs">Latin Vulgate Psalms from Hebrew (Vulgate_HebPs)</option>
+<option value="WEB">World English Bible (WEB)</option>
+<option value="WH">1881 Westcott-Hort Greek Text (WH)</option>
+<option value="WHNU">Westcott-Hort with NA27U4 variants (WHNU)</option>
+<option value="Websters">Webster Bible (Websters)</option>
+<option value="Weymouth">1912 Weymouth NT (Weymouth)</option>
+<option value="Xhosa">Xhosa Bible (Xhosa)</option>
+<option value="YLT">1898 Young's Literal Translation (YLT)</option>
+</select><input type="submit" name="Submit" value="Submit"></form><br/><form method="get" action="cgi-bin/dia-def.pl">Select locale:&nbsp;
+<select name="locale" size="1"><option value="">browser default</option>
+<option value="en">en</option>
+<option value="de">de</option>
+<option value="pt">pt</option>
+<option value="sk">sk</option>
+<option value="cs">cs</option>
+<option value="da">da</option>
+<option value="no">no</option>
+</select>
+<input type="submit" name="Submit" value="Submit">
+</form>
+Many of these modules require a browser with good Unicode support such as Internet
+Explorer 5.0+ and a good Unicode font such as Code 2000 (available at <a href="http://home.att.net/~jameskass/">http://home.att.net/~jameskass/</a>).
+</body>
+</html>
diff --git a/utilities/diatheke/cgi/index-public.html b/utilities/diatheke/cgi/index-public.html
new file mode 100644
index 0000000..8406364
--- /dev/null
+++ b/utilities/diatheke/cgi/index-public.html
@@ -0,0 +1,883 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Diatheke Online Bible</title>
+</head>
+
+<body>
+
+<form method="get" action="cgi-bin/diatheke.pl">
+ <p /> <font face="Arial, Helvetica, sans-serif">Verse or Search key:</font>
+ <input type="text" name="verse" size="20">
+ <input type="submit" name="Submit" value="Submit">
+ <input type="reset" name="Reset" value="Reset">
+ <br />
+ <br />
+ <input type="radio" name="search" checked value="" />
+ <font face="Arial, Helvetica, sans-serif">Verse/Commentary Lookup</font> <br />
+ <input type="radio" name="search" value="phrase" />
+ <font face="Arial, Helvetica, sans-serif">Phrase Search</font><br />
+ <input type="radio" name="search" value="multiword" />
+ <font face="Arial, Helvetica, sans-serif">Multiple Word Search</font><br />
+ <input type="radio" name="search" value="regex" />
+ <font face="Arial, Helvetica, sans-serif">Regular Expression Search</font>
+ <br>
+ <p />&nbsp;
+ <table width="100%" border="0">
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="strongs" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Strong's Numbers</font></td>
+ <td width="50%">
+ <input type="checkbox" name="headings" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Section Headings</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="footnotes" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Footnotes</font></td>
+ <td width="50%">
+ <input type="checkbox" name="scriprefs" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Scripture Cross-References</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="morph" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Morphology</font></td>
+ <td width="50%">
+ <input type="checkbox" name="hebvowels" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Hebrew Vowels</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="lemmas" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Lemmas</font></td>
+ <td width="50%">
+ <input type="checkbox" name="hebcant" value="on">
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Hebrew Cantillation
+ Marks </font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="latinxlit" value="on">
+ <font face="Arial, Helvetica, sans-serif" size="-1">Latin Transliterate</font>
+ </td>
+ <td width="50%">
+ <input type="checkbox" name="grkacc" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Greek Accents</font>
+ </td>
+ </tr>
+ </table>
+ <br>
+ <table BORDER="0" WIDTH="100%">
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>English Biblical
+ Texts:</b></font><br />
+ </td>
+ <td width="51%"><font face=Times New Roman, Times, serif><b>Non-English
+ Biblical Texts:</b></font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="AKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>American King James
+ Version (AKJV)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="ALB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Albanian Bible (ALB)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ASV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1901 American Standard
+ Version (ASV)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="AraSVD" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Smith & Van Dyke Arabic
+ Bible (AraSVD)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="BBE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1965 Bible in Basic
+ English (BBE)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="ChiGU" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Chinese Glory Union
+ Bible (ChiGU)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Common" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Common Edition:
+ New Testament (Common)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="CzeBKR" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Bible Kralicka
+ (CzeBKR)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="DR" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Douay-Rheims Bible
+ (DR)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="CzeCEP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Ekumenicky Cesky
+ preklad (CzeCEP)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="DRA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Douay-Rheims 1899 American
+ Edition (DRA)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="CzeKMS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Preklad KMS Nova
+ smlouva (CzeKMS)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Darby" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1889 Darby Bible (Darby)</font>
+ </td>
+ <td width="51%">
+ <input type="checkbox" name="CzeNKB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Nova kralicka
+ Bible (CzeNKB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="HNV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Hebrew Names Version
+ of the World English Bible (HNV)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="Dan" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Danske Bibel (Dan)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="IGNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Interlinear Greek New
+ Testament (IGNT)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="Esperanto" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Esperanto Bible (Esperanto)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ISV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>International Standard
+ Version (ISV)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="FinPR" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Finnish 1938 PhyZ Raamattu
+ (FinPR)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="JPS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Jewish Publication
+ Society Old Testament (JPS)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="FreCrl" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Haitian Creole
+ Version (FreCrl)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="KJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>King James Version
+ of 1611 w/ Strongs Numbers (KJV)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="FreLSG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French 1910 Louis Segond
+ (FreLSG)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="LO" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Living Oracles
+ NT (LO)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="GerBen" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German Bengel NT (GerBen)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Montgomery" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Montgomery New Testament
+ (Montgomery)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="GerLut" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German 1912 Luther
+ (GerLut)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Murdock" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>James Murdock's Translation
+ of the Syriac Peshitta (Murdock)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="GerLut1545" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German 1545 Luther
+ (GerLut1545)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ORTHJBC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Orthodox Jewish
+ Brit Chadasha (ORTHJBC)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="GerSch" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German 1951 Schlachter
+ Bibel (GerSch)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RNKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Restored Name King
+ James Version (RNKJV)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="GothicA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Gothic Codex Ambr.
+ A & Mss. (GothicA)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RWebster" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Revised 1833 Webster
+ Version (RWebster)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="GothicB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Gothic Codex Ambr.
+ B & Car. (GothicB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Rotherham" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Emphasized Bible
+ by J. B. Rotherham (Rotherham)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="HunKar" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Hungarian Karoli (HunKar)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="WEB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>World English Bible
+ (WEB)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Icelandic" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Icelandic Bible (Icelandic)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Websters" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Webster Bible (Websters)</font>
+ </td>
+ <td width="51%">
+ <input type="checkbox" name="IndBIS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Indonesian Bahasa Indonesia
+ Sehari-hari (IndBIS)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Weymouth" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1912 Weymouth NT (Weymouth)</font>
+ </td>
+ <td width="51%">
+ <input type="checkbox" name="IndTB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Indonesian Terjemahan
+ Baru (IndTB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="YLT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1898 Young's Literal
+ Translation (YLT)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="IndTL" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Indonesian Terjemahan
+ Baru (IndTL)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp; </td>
+ <td width="51%">
+ <input type="checkbox" name="ItaLND" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Italian 1991 La Nuova
+ Diodati (ItaLND)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Unorthodox or
+ Heretical Biblical Texts:</b></font> </td>
+ <td width="51%">
+ <input type="checkbox" name="ItaNRV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Italian 1994 La Sacra
+ Bibbia Nuova Riveduta (ItaNRV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Diaglott" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Emphatic Diaglott
+ (Diaglott)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="JapKUG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Japanese JKUG Translation
+ (JapKUG)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="JST" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Joseph Smith Translation
+ (JST)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="JapSNKI" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Japanese JSNKI Translation
+ (JapSNKI)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp; </td>
+ <td width="51%">
+ <input type="checkbox" name="Ketchi" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Ketchi Bible (Ketchi)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Original Language
+ Biblical Texts:</b></font> </td>
+ <td width="51%">
+ <input type="checkbox" name="Korean" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Korean Bible (Korean)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="LXX" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Septuagint (LXX)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Latvian" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Latvian New Testament
+ (Latvian)</font> </td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="LXXM" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Septuagint, Morphologically
+ Tagged Rahlfs' (LXXM)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="ManxGaelic" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Manx Gaelic Scripture
+ Portions (ManxGaelic)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="BHS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Biblia Hebraica Stuttgartensia
+ (BHS)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="Maori" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Maori Bible (Maori)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="Byz" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1991 Byzantine/Majority
+ Text (Byz)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Mel" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Melanesian Pidgin Bible
+ (Mel)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Scrivner" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1894 Scrivener Textus
+ Receptus (Scrivner)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Norsk" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Norsk Bibelen (Norsk)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Stephanus" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1550 Stephanus Textus
+ Receptus (Stephanus)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="PorAA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Portuguese Joao Ferreira
+ de Almeida Atualizada (PorAA)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Tisch" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Tischendorf's Eighth
+ Edition GNT (Tisch)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="RST" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Russian Synodal Translation
+ (RST)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="Vulgate" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Latin Vulgate (Vulgate)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="RomCor" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Romanian Cornilescu
+ Version (RomCor)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="Vulgate_HebPs" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Latin Vulgate Psalms
+ from Hebrew (Vulgate_HebPs)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="ScotsGaelic" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Scots Gaelic Gospel
+ of Mark (ScotsGaelic)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="WH" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1881 Westcott-Hort
+ Greek Text (WH)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="SpaRV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish Reina-Valera
+ (SpaRV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="WHNU" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Westcott-Hort with
+ NA27U4 variants (WHNU)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="SpaSEV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish 1569 Sagradas
+ Escrituras Version Antigua (SpaSEV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp;</td>
+ <td width="51%">
+ <input type="checkbox" name="SpaVNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish 1858 Valera
+ New Testament (SpaVNT)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Commentaries:</b></font></td>
+ <td width="51%">
+ <input type="checkbox" name="Swahili" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Swahili New Testament
+ (Swahili)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Barnes" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Barnes' New Testament
+ Notes (Barnes)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="SweSVE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Swedish Bible 1917
+ New Testament (SweSVE)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Clarke" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Adam Clarke's Commentary
+ on the Bible (Clarke)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Tagalog" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Tagalog (John & James)
+ (Tagalog)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="DTN" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Darby Translation Notes
+ (DTN)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="ThaiKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Thai KJV (ThaiKJV)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Family" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Family Bible Notes
+ (Family)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Turkish" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Turkish NT (Turkish)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Geneva" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Geneva Bible Translation
+ Notes (Geneva)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="UMGreek" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Unaccented Modern Greek
+ Text (UMGreek)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="JFB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Jamieson Fausset Brown
+ Bible Commentary (JFB)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Ukrainian" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Ukrainian Bible (Ukrainian)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MAK" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Matthias Ansorgs Kommentar
+ (MAK)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Uma" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Uma New Testament (Uma)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MHC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Matthew Henry's Complete
+ Commentary on the Whole Bible (MHC)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Viet" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1934 Vietnamese Bible
+ (Viet)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MHCC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Matthew Henry's Concise
+ Commentary on the Whole Bible (MHCC)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Xhosa" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Xhosa Bible (Xhosa)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="PNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The People's New Testament
+ (PNT)</font></td>
+ <td width="51%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Personal" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Personal Commentary
+ (Personal)</font></td>
+ <td width="51%"><font face=Times New Roman, Times, serif><b>Daily Devotionals:</b></font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RWP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Robertson's Word Pictures
+ (RWP)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Daily" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Jonathan Bagster's
+ Daily Light on the Daily Path (Daily)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Rieger" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Carl Heinrich Riegers
+ Kommentar (Rieger)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="SME" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>C. H. Spurgeon's Morning
+ and Evening: Daily Readins (SME)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TDavid" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>C. H. Spurgeon's Treasury
+ of David (TDavid)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_89" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1989 Losung auf deutsch
+ (losung_de_89)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TFG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Fourfold Gospel
+ and Commentary on Acts of Apostles (TFG)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_90" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1990 Losung auf deutsch
+ (losung_de_90)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TSK" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Treasury of Scriptural
+ Knowledge (TSK)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_91" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1991 Losung auf deutsch
+ (losung_de_91)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Wesley" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>John Wesley's Notes
+ on the Bible (Wesley)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_92" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1992 Losung auf deutsch
+ (losung_de_92)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp;</td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_93" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1993 Losung auf deutsch
+ (losung_de_93)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Dictionaries
+ & Lexica:</b></font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_94" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1994 Losung auf deutsch
+ (losung_de_94)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="AmTract" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>American Tract Society
+ Bible Dictionary (AmTract)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_95" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1995 Losung auf deutsch
+ (losung_de_95)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="BDB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Brown-Driver-Briggs
+ Hebrew Lexicon (BDB)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_96" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1996 Losung auf deutsch
+ (losung_de_96)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Eastons" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Easton's Bible Dictionary
+ (Eastons)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_97" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1997 Losung auf deutsch
+ (losung_de_97)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Hitchcocks" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Hitchcock's Bible Names
+ (Hitchcocks)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_98" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1998 Losung auf deutsch
+ (losung_de_98)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ISBE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>International Standard
+ Bible Encyclopedia (ISBE)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Losung auf deutsch
+ (losung_de_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Naves" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Nave's Topical Bible
+ (Naves)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_en_96" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1996 Watchwords (Losung)
+ in English (losung_en_96)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Packard" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Packard's Morphological
+ Analysis Codes (Packard)</font></td>
+ <td width="48%" height="23">
+ <input type="checkbox" name="losung_en_97" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1997 Watchwords (Losung)
+ in English (losung_en_97)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Smiths" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Smith's Bible Dictionary
+ (Smiths)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_en_98" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1998 Watchwords (Losung)
+ in English (losung_en_98)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="StrongsGreek" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Strong's Greek Bible
+ Dictionary (StrongsGreek)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_en_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Watchwords (Losung)
+ in English (losung_en_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="StrongsHebrew" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Strong's Hebrew Bible
+ Dictionary (StrongsHebrew)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_es_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Watchwords (Losung)
+ en Castellano (losung_es_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Thayer" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Thayer's Greek Lexicon
+ (Thayer)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_nl_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Watchwords (Losung)
+ in Dutch (losung_nl_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Torrey" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>R. A. Torrey's New
+ Topical Textbook (Torrey)</font></td>
+ <td width="51%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td width="48%" height="23">
+ <input type="checkbox" name="WebstersDict" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Webster's Revised Unabridged
+ Dictionary 1913 (WebstersDict)</font> </td>
+ <td width="51%">&nbsp;</td>
+ </tr>
+ </table>
+</form>
+
+<form method="get" action="cgi-bin/dia-def.pl">
+ Select default Bible version for cross-references:&nbsp;<select name="defversion" size="1">
+
+<option value="AKJV">American King James Version (AKJV)</option>
+<option value="ASV">1901 American Standard Version (ASV)</option>
+<option value="AraSVD">Smith & Van Dyke Arabic Bible (AraSVD)</option>
+<option value="BBE">1965 Bible in Basic English (BBE)</option>
+<option value="BHS">Biblia Hebraica Stuttgartensia (BHS)</option>
+<option value="Byz">1991 Byzantine/Majority Text (Byz)</option>
+<option value="ChiGU">Chinese Glory Union Bible (ChiGU)</option>
+<option value="Common">The Common Edition: New Testament (Common)</option>
+<option value="CzeBKR">Czech Bible Kralicka (CzeBKR)</option>
+<option value="CzeCEP">Czech Ekumenicky Cesky preklad (CzeCEP)</option>
+<option value="CzeKMS">Czech Preklad KMS Nova smlouva (CzeKMS)</option>
+<option value="CzeNKB">Czech Nova kralicka Bible (CzeNKB)</option>
+<option value="DR">Douay-Rheims Bible (DR)</option>
+<option value="DRA">Douay-Rheims 1899 American Edition (DRA)</option>
+<option value="Dan">Danske Bibel (Dan)</option>
+<option value="Darby">1889 Darby Bible (Darby)</option>
+<option value="Diaglott">The Emphatic Diaglott (Diaglott)</option>
+<option value="Esperanto">Esperanto Bible (Esperanto)</option>
+<option value="FinPR">Finnish 1938 PhyZ Raamattu (FinPR)</option>
+<option value="FreCrl">French Haitian Creole Version (FreCrl)</option>
+<option value="FreLSG">1910 Louis Segond (FreLSG)</option>
+<option value="FreNEG">French Nouvelle Edition de Geneve 1979 (FreNEG)</option>
+<option value="FreTOB">French Traduction oecumenique de la Bible (FreTOB)</option>
+<option value="GerBen">German Bengel NT (GerBen)</option>
+<option value="GerLut">German 1912 Luther (GerLut)</option>
+<option value="GerLut1545">German 1545 Luther (GerLut1545)</option>
+<option value="GerSch">German 1951 Schlachter Bibel (GerSch)</option>
+<option value="GothicA">Gothic Codex Ambr. A & Mss. (GothicA)</option>
+<option value="GothicB">Gothic Codex Ambr. B & Car. (GothicB)</option>
+<option value="HNV">Hebrew Names Version of the World English Bible (HNV)</option>
+<option value="HunKar">Hungarian Karoli (HunKar)</option>
+<option value="IGNT">Interlinear Greek New Testament (IGNT)</option>
+<option value="ISV">International Standard Version (ISV)</option>
+<option value="Icelandic">Icelandic Bible (Icelandic)</option>
+<option value="IndBIS">Indonesian Bahasa Indonesia Sehari-hari (IndBIS)</option>
+<option value="IndTB">Indonesian Terjemahan Baru (IndTB)</option>
+<option value="IndTL">Indonesian Terjemahan Baru (IndTL)</option>
+<option value="ItaLND">Italian 1991 La Nuova Diodati (ItaLND)</option>
+<option value="ItaNRV">Italian 1994 La Sacra Bibbia Nuova Riveduta (ItaNRV)</option>
+<option value="JPS">Jewish Publication Society Old Testament (JPS)</option>
+<option value="JST">Joseph Smith Translation (JST)</option>
+<option value="JapKUG">Japanese JKUG Translation (JapKUG)</option>
+<option value="JapSNKI">Japanese JSNKI Translation (JapSNKI)</option>
+<option value="KJV">King James Version of 1611 w/ Strongs Numbers (KJV)</option>
+<option value="Ketchi">Ketchi Bible (Ketchi)</option>
+<option value="Korean">Korean Bible (Korean)</option>
+<option value="LO">The Living Oracles NT (LO)</option>
+<option value="LXX">Septuagint (LXX)</option>
+<option value="LXXM">Septuagint, Morphologically Tagged Rahlfs' (LXXM)</option>
+<option value="Latvian">Latvian New Testament (Latvian)</option>
+<option value="ManxGaelic">Manx Gaelic Scripture Portions (ManxGaelic)</option>
+<option value="Maori">Maori Bible (Maori)</option>
+<option value="Mel">Melanesian Pidgin Bible (Mel)</option>
+<option value="Montgomery">Montgomery New Testament (Montgomery)</option>
+<option value="Murdock">James Murdock's Translation of the Syriac Peshitta (Murdock)</option>
+<option value="Norsk">Norsk Bibelen (Norsk)</option>
+<option value="ORTHJBC">The Orthodox Jewish Brit Chadasha (ORTHJBC)</option>
+<option value="PorAA">Portuguese Joao Ferreira de Almeida Atualizada (PorAA)</option>
+<option value="RNKJV">Restored Name King James Version (RNKJV)</option>
+<option value="RST">Russian Synodal Translation (RST)</option>
+<option value="RWebster">Revised 1833 Webster Version (RWebster)</option>
+<option value="RomCor">Romanian Cornilescu Version (RomCor)</option>
+<option value="Rotherham">The Emphasized Bible by J. B. Rotherham (Rotherham)</option>
+<option value="ScotsGaelic">Scots Gaelic Gospel of Mark (ScotsGaelic)</option>
+<option value="Scrivner">1894 Scrivener Textus Receptus (Scrivner)</option>
+<option value="SpaRV">Spanish Reina-Valera (SpaRV)</option>
+<option value="SpaSEV">Spanish 1569 Sagradas Escrituras Version Antigua (SpaSEV)</option>
+<option value="SpaVNT">Spanish 1858 Valera New Testament (SpaVNT)</option>
+<option value="Stephanus">1550 Stephanus Textus Receptus (Stephanus)</option>
+<option value="Swahili">Swahili New Testament (Swahili)</option>
+<option value="SweSVE">Swedish Bible 1917 New Testament (SweSVE)</option>
+<option value="Tagalog">Tagalog (John & James) (Tagalog)</option>
+<option value="ThaiKJV">Thai KJV (ThaiKJV)</option>
+<option value="Tisch">Tischendorf's Eighth Edition GNT (Tisch)</option>
+<option value="Turkish">Turkish NT (Turkish)</option>
+<option value="UMGreek">Unaccented Modern Greek Text (UMGreek)</option>
+<option value="Ukrainian">Ukrainian Bible (Ukrainian)</option>
+<option value="Uma">Uma New Testament (Uma)</option>
+<option value="Viet">1934 Vietnamese Bible (Viet)</option>
+<option value="Vulgate">Latin Vulgate (Vulgate)</option>
+<option value="Vulgate_HebPs">Latin Vulgate Psalms from Hebrew (Vulgate_HebPs)</option>
+<option value="WEB">World English Bible (WEB)</option>
+<option value="WH">1881 Westcott-Hort Greek Text (WH)</option>
+<option value="WHNU">Westcott-Hort with NA27U4 variants (WHNU)</option>
+<option value="Websters">Webster Bible (Websters)</option>
+<option value="Weymouth">1912 Weymouth NT (Weymouth)</option>
+<option value="Xhosa">Xhosa Bible (Xhosa)</option>
+<option value="YLT">1898 Young's Literal Translation (YLT)</option>
+</select><input type="submit" name="Submit" value="Submit"></form><br/><form method="get" action="cgi-bin/dia-def.pl">Select locale:&nbsp;
+<select name="locale" size="1"><option value="">browser default</option>
+<option value="en">en</option>
+<option value="de">de</option>
+<option value="pt">pt</option>
+<option value="sk">sk</option>
+<option value="cs">cs</option>
+<option value="da">da</option>
+<option value="no">no</option>
+</select>
+<input type="submit" name="Submit" value="Submit">
+</form>
+<font face="Arial, Helvetica, sans-serif">Many of these modules require a browser with good Unicode support such as Internet Explorer 5.0+ and a good Unicode font such as Code 2000 (available at <a href="http://home.att.net/~jameskass/">http://home.att.net/~jameskass/</a>.)</font>
+</body>
+</html>
diff --git a/utilities/diatheke/corediatheke.cpp b/utilities/diatheke/corediatheke.cpp
new file mode 100644
index 0000000..d691a2f
--- /dev/null
+++ b/utilities/diatheke/corediatheke.cpp
@@ -0,0 +1,449 @@
+// Diatheke 4.2 by Chris Little <chrislit@crosswire.org>
+// Copyright 1999-2002 by CrossWire Bible Society
+// http://www.crosswire.org/sword/diatheke
+// Licensed under GNU General Public License (GPL)
+// see accompanying LICENSE file for license details
+
+#include "corediatheke.h"
+#include <regex.h>
+#include <list>
+#include <utilstr.h>
+#include <versekey.h>
+#include <swmodule.h>
+
+using std::list;
+using std::cout;
+using std::endl;
+using std::ostream;
+
+void systemquery(const char * key, ostream* output){
+ DiathekeMgr manager;
+ ModMap::iterator it;
+
+ SWModule *target;
+
+ bool types = false, descriptions = false, names = false;
+
+ if (!::stricmp(key, "localelist")) {
+ LocaleMgr *lm = LocaleMgr::getSystemLocaleMgr();
+ list<SWBuf> loclist = lm->getAvailableLocales();
+ list<SWBuf>::iterator li = loclist.begin();
+ for (;li != loclist.end(); li++) {
+ *output << li->c_str() << endl;
+ }
+ }
+ else if (!::stricmp(key, "modulelist")) {
+ types = true;
+ descriptions = true;
+ names = true;
+ }
+ else if (!::stricmp(key, "modulelistnames")) {
+ names = true;
+ }
+ else if (!::stricmp(key, "modulelistdescriptions")) {
+ descriptions = true;
+ }
+
+
+ if (types || descriptions || names) {
+ if (types) *output << "Biblical Texts:\n";
+ for (it = manager.Modules.begin(); it != manager.Modules.end(); it++) {
+ target = it->second;
+ if (!strcmp(target->Type(), "Biblical Texts")) {
+ if (names) *output << target->Name();
+ if (names && descriptions) *output << " : ";
+ if (descriptions) *output << target->Description();
+ *output << endl;
+ }
+ }
+ if (types) *output << "Commentaries:\n";
+ for (it = manager.Modules.begin(); it != manager.Modules.end(); it++) {
+ target = it->second;
+ if (!strcmp(target->Type(), "Commentaries")) {
+ if (names) *output << target->Name();
+ if (names && descriptions) *output << " : ";
+ if (descriptions) *output << target->Description();
+ *output << endl;
+ }
+ }
+ if (types) *output << "Dictionaries:\n";
+ for (it = manager.Modules.begin(); it != manager.Modules.end(); it++) {
+ target = it->second;
+ if (!strcmp(target->Type(), "Lexicons / Dictionaries")) {
+ if (names) *output << target->Name();
+ if (names && descriptions) *output << " : ";
+ if (descriptions) *output << target->Description();
+ *output << endl;
+ }
+ }
+ }
+}
+
+void doquery(unsigned long maxverses = -1, unsigned char outputformat = FMT_PLAIN, unsigned char outputencoding = ENC_UTF8, unsigned long optionfilters = 0, unsigned char searchtype = ST_NONE, const char *range = 0, const char *text = 0, const char *locale = 0, const char *ref = 0, ostream* output = &cout, const char *script = 0, signed short variants = 0) {
+ static DiathekeMgr manager;
+
+ ModMap::iterator it;
+ ListKey listkey;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+
+ SWModule * target;
+ char *font = 0;
+ char inputformat = 0;
+ SWBuf encoding;
+ char querytype = 0;
+
+ if (locale) {
+ LocaleMgr::getSystemLocaleMgr()->setDefaultLocaleName(locale);
+ }
+ VerseKey vk;
+
+ //deal with queries to "system"
+ if (!::stricmp(text, "system")) {
+ querytype = QT_SYSTEM;
+ systemquery(ref, output);
+ }
+ if (!strnicmp(text, "info", 4)) {
+ querytype = QT_INFO;
+ text = ref;
+ }
+ //otherwise, we have a real book
+ it = manager.Modules.find(text);
+ if (it == manager.Modules.end()) { //book not found
+ return;
+ }
+ target = (*it).second;
+
+ manager.Markup(outputformat);
+ manager.Encoding(outputencoding);
+ manager.bidi = ((OP_BIDI & optionfilters) == OP_BIDI);
+ manager.shape = ((OP_ARSHAPE & optionfilters) == OP_ARSHAPE);
+
+ if ((sit = manager.config->Sections.find((*it).second->Name())) != manager.config->Sections.end()) {
+ if ((eit = (*sit).second.find("SourceType")) != (*sit).second.end()) {
+ if (!::stricmp((char *)(*eit).second.c_str(), "GBF"))
+ inputformat = FMT_GBF;
+ else if (!::stricmp((char *)(*eit).second.c_str(), "ThML"))
+ inputformat = FMT_THML;
+ else if (!::stricmp((char *)(*eit).second.c_str(), "OSIS"))
+ inputformat = FMT_OSIS;
+ }
+ encoding = ((eit = (*sit).second.find("Encoding")) != (*sit).second.end()) ? (*eit).second : (SWBuf)"";
+ }
+
+
+ if (querytype == QT_INFO) {
+ switch (inputformat) {
+ case FMT_THML :
+ *output << "ThML";
+ break;
+ case FMT_GBF :
+ *output << "GBF";
+ break;
+ case FMT_OSIS :
+ *output << "OSIS";
+ break;
+ default:
+ *output << "Other";
+ }
+ *output << ";";
+ *output << target->Type();
+ *output << ";";
+ return;
+ }
+
+ if (searchtype)
+ querytype = QT_SEARCH;
+ else if (!strcmp(target->Type(), "Biblical Texts"))
+ querytype = QT_BIBLE;
+ else if (!strcmp(target->Type(), "Commentaries"))
+ querytype = QT_COMM;
+ else if (!strcmp(target->Type(), "Lexicons / Dictionaries"))
+ querytype = QT_LD;
+
+ if (optionfilters & OP_FOOTNOTES)
+ manager.setGlobalOption("Footnotes","On");
+ else
+ manager.setGlobalOption("Footnotes","Off");
+ if (optionfilters & OP_HEADINGS)
+ manager.setGlobalOption("Headings","On");
+ else
+ manager.setGlobalOption("Headings","Off");
+ if (optionfilters & OP_STRONGS)
+ manager.setGlobalOption("Strong's Numbers","On");
+ else
+ manager.setGlobalOption("Strong's Numbers","Off");
+ if (optionfilters & OP_MORPH)
+ manager.setGlobalOption("Morphological Tags","On");
+ else
+ manager.setGlobalOption("Morphological Tags","Off");
+ if (optionfilters & OP_CANTILLATION)
+ manager.setGlobalOption("Hebrew Cantillation","On");
+ else
+ manager.setGlobalOption("Hebrew Cantillation","Off");
+ if (optionfilters & OP_HEBREWPOINTS)
+ manager.setGlobalOption("Hebrew Vowel Points","On");
+ else
+ manager.setGlobalOption("Hebrew Vowel Points","Off");
+ if (optionfilters & OP_GREEKACCENTS)
+ manager.setGlobalOption("Greek Accents","On");
+ else
+ manager.setGlobalOption("Greek Accents","Off");
+ if (optionfilters & OP_LEMMAS)
+ manager.setGlobalOption("Lemmas","On");
+ else
+ manager.setGlobalOption("Lemmas","Off");
+ if (optionfilters & OP_SCRIPREF)
+ manager.setGlobalOption("Cross-references","On");
+ else
+ manager.setGlobalOption("Cross-references","Off");
+ if (optionfilters & OP_RED)
+ manager.setGlobalOption("Words of Christ in Red","On");
+ else
+ manager.setGlobalOption("Words of Christ in Red","Off");
+ if (optionfilters & OP_VARIANTS && variants) {
+ if (variants == -1)
+ manager.setGlobalOption("Variants", "All Readings");
+ else if (variants == 1)
+ manager.setGlobalOption("Variants", "Secondary Readings");
+ }
+ else
+ manager.setGlobalOption("Transliteration", "Primary Readings");
+
+ if (optionfilters & OP_TRANSLITERATOR && script)
+ manager.setGlobalOption("Transliteration", script);
+ else
+ manager.setGlobalOption("Transliteration", "Off");
+
+ if (querytype == QT_SEARCH) {
+
+ //this test is just to determine if we've got SWKeys or VerseKeys
+ if (!strcmp(target->Type(), "Biblical Texts"))
+ querytype = QT_BIBLE;
+ else if (!strcmp(target->Type(), "Commentaries"))
+ querytype = QT_BIBLE;
+ else if (!strcmp(target->Type(), "Lexicons / Dictionaries"))
+ querytype = QT_LD;
+
+ //do search stuff
+ char st = 1 - searchtype;
+ if (querytype == QT_BIBLE) {
+ *output << "Verses containing \"";
+ }
+ else *output << "Entries containing \"";
+ *output << ref;
+ *output << "\"-- ";
+
+ if (range) {
+ VerseKey parser;
+ ListKey scope = parser.ParseVerseList(range, parser, true);
+ listkey = target->Search(ref, st, REG_ICASE, &scope);
+ }
+ else listkey = target->Search(ref, st, REG_ICASE);
+
+ if (strlen((const char*)listkey)) {
+ if (!listkey.Error()) {
+ if (outputformat == FMT_CGI) *output << "<entry>";
+ if (querytype == QT_BIBLE) {
+ vk = listkey;
+ *output << (const char *)vk;
+ }
+ else *output << (const char *)listkey;
+ if (outputformat == FMT_CGI) *output << "</entry>";
+ }
+ listkey++;
+ while (!listkey.Error()) {
+ *output << " ; ";
+ if (outputformat == FMT_CGI) *output << "<entry>";
+ if (querytype == QT_BIBLE) {
+ vk = listkey;
+ *output << (const char *)vk;
+ }
+ else *output << (const char *)listkey;
+ if (outputformat == FMT_CGI) *output << "</entry>";
+ listkey++;
+ }
+ *output << " -- ";
+
+ char *temp = new char[10];
+ sprintf(temp, "%u", listkey.Count());
+ *output << temp;
+ delete [] temp;
+
+ *output << " matches total (";
+ *output << target->Name();
+ *output << ")\n";
+ }
+ else {
+ *output << "none (";
+ *output << target->Name();
+ *output << ")\n";
+ }
+ }
+
+ else if (querytype == QT_LD) {
+ //do dictionary stuff
+
+ target->setKey(ref);
+
+ const char * text = (const char *) *target;
+
+ if (outputformat == FMT_RTF) {
+ *output << "{\\rtf1\\ansi{\\fonttbl{\\f0\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f1\\fdecor\\fprq2 ";
+ if (font)
+ *output << font;
+ else
+ *output << "Times New Roman";
+ *output << ";}}";
+ }
+ else if (outputformat == FMT_HTML) {
+ *output << "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">";
+ }
+
+ if (strlen(text)) {
+ *output << (char*)target->KeyText();
+ if (font && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI)) {
+ *output << ": <font face=\"";
+ *output << font;
+ *output << "\">";
+ }
+ else if (outputformat == FMT_RTF) {
+ *output << ": {\\f1 ";
+ }
+ else {
+ *output << ": ";
+ }
+ *output << text;
+ if (font && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI)) {
+ *output << "</font>";
+ }
+ else if (outputformat == FMT_RTF) {
+ *output << "}";
+ }
+
+ *output << "(";
+ *output << target->Name();
+ *output << ")\n";
+ }
+
+ if (outputformat == FMT_RTF) {
+ *output << "}";
+ }
+
+ }
+
+ else if (querytype == QT_BIBLE || querytype == QT_COMM) {
+ //do commentary/Bible stuff
+
+ if ((sit = manager.config->Sections.find((*it).second->Name())) != manager.config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ font = (char *)(*eit).second.c_str();
+ if (strlen(font) == 0) font = 0;
+ }
+ }
+
+ listkey = vk.ParseVerseList(ref, "Gen1:1", true);
+ int i;
+
+ if (outputformat == FMT_RTF) {
+ *output << "{\\rtf1\\ansi{\\fonttbl{\\f0\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f1\\fdecor\\fprq2 ";
+ if (font)
+ *output << font;
+ else
+ *output << "Times New Roman";
+ *output << ";}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}}";
+ }
+ else if (outputformat == FMT_HTML) {
+ *output << "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">";
+ }
+
+ for (i = 0; i < listkey.Count() && maxverses; i++) {
+ VerseKey *element = SWDYNAMIC_CAST(VerseKey, listkey.GetElement(i));
+ if (element) {
+ target->Key(element->LowerBound());
+ vk = element->UpperBound();
+ while (maxverses && target->Key() <= vk) {
+ *output << (char*)target->KeyText();
+ if (font && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI)) {
+ *output << ": <font face=\"";
+ *output << font;
+ *output << "\">";
+ }
+ else if (outputformat == FMT_RTF) {
+ *output << ": {\\f1 ";
+ }
+ else {
+ *output << ": ";
+ }
+ *output << (const char*)*target;
+ if (font && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI)) {
+ *output << "</font>";
+ }
+ else if (outputformat == FMT_RTF) {
+ *output << "}";
+ }
+
+ if (inputformat != FMT_THML && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI))
+ *output << "<br />";
+ else if (outputformat == FMT_OSIS)
+ *output << "<milestone type=\"line\"/>";
+ else if (outputformat == FMT_RTF)
+ *output << "\\par ";
+ else if (outputformat == FMT_GBF)
+ *output << "<CM>";
+
+ *output << "\n";
+
+ if (target->Key() == vk)
+ break;
+ maxverses--;
+ (*target)++;
+ }
+ }
+ else {
+ target->Key(*listkey.GetElement(i));
+ *output << (char*)target->KeyText();
+ if (font && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI)) {
+ *output << ": <font face=\"";
+ *output << font;
+ *output << "\">";
+ }
+ else if (outputformat == FMT_RTF) {
+ *output << ": {\\f1 ";
+ }
+ else {
+ *output << ": ";
+ }
+ *output << (const char*)*target;
+ if (font && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI)) {
+ *output << "</font>";
+ }
+ else if (outputformat == FMT_RTF) {
+ *output << "}";
+ }
+
+ if (inputformat != FMT_THML && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI))
+ *output << "<br />";
+ else if (outputformat == FMT_OSIS)
+ *output << "<milestone type=\"line\"/>";
+ else if (outputformat == FMT_RTF)
+ *output << "\\par ";
+ else if (outputformat == FMT_GBF)
+ *output << "<CM>";
+
+ *output << "\n";
+ maxverses--;
+ }
+ }
+
+ *output << "(";
+ *output << target->Name();
+ *output << ")\n";
+
+ if (outputformat == FMT_RTF) {
+ *output << "}";
+ }
+
+ }
+}
+
diff --git a/utilities/diatheke/corediatheke.h b/utilities/diatheke/corediatheke.h
new file mode 100644
index 0000000..0364b37
--- /dev/null
+++ b/utilities/diatheke/corediatheke.h
@@ -0,0 +1,43 @@
+// Diatheke 4.2 by Chris Little <chrislit@crosswire.org>
+// Copyright 1999-2002 by CrossWire Bible Society http://www.crosswire.org
+// Licensed under GNU General Public License (GPL)
+// see accompanying LICENSE file for license details
+
+#include <stdio.h>
+#include <iostream>
+
+#include "diathekemgr.h"
+#include <localemgr.h>
+
+#define QT_BIBLE 1
+#define QT_COMM 2
+#define QT_LD 3
+#define QT_SEARCH 4
+#define QT_SYSTEM 5
+#define QT_INFO 6
+
+#define OP_NONE 0
+#define OP_STRONGS 1
+#define OP_FOOTNOTES 2
+#define OP_HEADINGS 4
+#define OP_MORPH 8
+#define OP_CANTILLATION 16
+#define OP_HEBREWPOINTS 32
+#define OP_GREEKACCENTS 64
+#define OP_TRANSLITERATOR 128
+#define OP_LEMMAS 256
+#define OP_SCRIPREF 512
+#define OP_ARSHAPE 1024
+#define OP_BIDI 2048
+#define OP_VARIANTS 4096
+#define OP_RED 8192
+
+#define ST_NONE 0
+#define ST_REGEX 1 //0
+#define ST_PHRASE 2 // -1
+#define ST_MULTIWORD 3 // -2
+
+using namespace std;
+
+int hasalpha (char * string);
+void doquery(unsigned long maxverses, unsigned char outputformat, unsigned char outputencoding, unsigned long optionfilters, unsigned char searchtype, const char *range, const char *text, const char *locale, const char *ref, ostream* output, const char* script, signed short variants);
diff --git a/utilities/diatheke/diafiltmgr.cpp b/utilities/diatheke/diafiltmgr.cpp
new file mode 100644
index 0000000..83b41ef
--- /dev/null
+++ b/utilities/diatheke/diafiltmgr.cpp
@@ -0,0 +1,228 @@
+/******************************************************************************
+ * diafiltmgr.cpp
+ *
+ * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org)
+ * CrossWire Bible Society
+ * P. O. Box 2528
+ * Tempe, AZ 85280-2528
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation version 2.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ */
+
+#include <thmlplain.h>
+#include <gbfplain.h>
+#include <thmlgbf.h>
+#include <gbfthml.h>
+#include <thmlhtml.h>
+#include <gbfhtml.h>
+#include <plainhtml.h>
+#include <thmlhtmlhref.h>
+#include <gbfhtmlhref.h>
+#include <thmlrtf.h>
+#include <gbfrtf.h>
+#include <osisrtf.h>
+#include <osishtmlhref.h>
+#include <swmodule.h>
+#include <osisplain.h>
+#include <thmlosis.h>
+#include <gbfosis.h>
+
+#include <swmgr.h>
+
+#include "diafiltmgr.h"
+#include "thmlcgi.h"
+#include "gbfcgi.h"
+#include "osiscgi.h"
+
+DiathekeFilterMgr::DiathekeFilterMgr (char mark, char enc)
+ : EncodingFilterMgr(enc) {
+
+ markup = mark;
+
+ CreateFilters(markup);
+}
+
+DiathekeFilterMgr::~DiathekeFilterMgr() {
+ if (fromthml)
+ delete (fromthml);
+ if (fromgbf)
+ delete (fromgbf);
+ if (fromplain)
+ delete (fromplain);
+ if (fromosis)
+ delete (fromosis);
+}
+
+void DiathekeFilterMgr::AddRenderFilters(SWModule *module, ConfigEntMap &section) {
+ switch (module->Markup()) {
+ case FMT_THML:
+ if (fromthml)
+ module->AddRenderFilter(fromthml);
+ break;
+ case FMT_GBF:
+ if (fromgbf)
+ module->AddRenderFilter(fromgbf);
+ break;
+ case FMT_PLAIN:
+ if (fromplain)
+ module->AddRenderFilter(fromplain);
+ break;
+ case FMT_OSIS:
+ if (fromosis)
+ module->AddRenderFilter(fromosis);
+ break;
+ }
+ EncodingFilterMgr::AddRenderFilters(module, section);
+}
+
+
+char DiathekeFilterMgr::Markup(char mark) {
+ if (mark && mark != markup) {
+ markup = mark;
+ ModMap::const_iterator module;
+
+ SWFilter * oldplain = fromplain;
+ SWFilter * oldthml = fromthml;
+ SWFilter * oldgbf = fromgbf;
+ SWFilter * oldosis = fromosis;
+
+ CreateFilters(markup);
+
+ for (module = getParentMgr()->Modules.begin(); module != getParentMgr()->Modules.end(); module++)
+ switch (module->second->Markup()) {
+ case FMT_THML:
+ if (oldthml != fromthml) {
+ if (oldthml) {
+ if (!fromthml) {
+ module->second->RemoveRenderFilter(oldthml);
+ }
+ else {
+ module->second->ReplaceRenderFilter(oldthml, fromthml);
+ }
+ }
+ else if (fromthml) {
+ module->second->AddRenderFilter(fromthml);
+ }
+ }
+ break;
+ case FMT_GBF:
+ if (oldgbf != fromgbf) {
+ if (oldgbf) {
+ if (!fromgbf) {
+ module->second->RemoveRenderFilter(oldgbf);
+ }
+ else {
+ module->second->ReplaceRenderFilter(oldgbf, fromgbf);
+ }
+ }
+ else if (fromgbf) {
+ module->second->AddRenderFilter(fromgbf);
+ }
+ break;
+ }
+ case FMT_PLAIN:
+ if (oldplain != fromplain) {
+ if (oldplain) {
+ if (!fromplain) {
+ module->second->RemoveRenderFilter(oldplain);
+ }
+ else {
+ module->second->ReplaceRenderFilter(oldplain, fromplain);
+ }
+ }
+ else if (fromplain) {
+ module->second->AddRenderFilter(fromplain);
+ }
+ break;
+ }
+ case FMT_OSIS:
+ if (oldosis != fromosis) {
+ if (oldosis) {
+ if (!fromosis) {
+ module->second->RemoveRenderFilter(oldosis);
+ }
+ else {
+ module->second->ReplaceRenderFilter(oldosis, fromosis);
+ }
+ }
+ else if (fromosis) {
+ module->second->AddRenderFilter(fromosis);
+ }
+ break;
+ }
+ }
+
+ if (oldthml)
+ delete oldthml;
+ if (oldgbf)
+ delete oldgbf;
+ if (oldplain)
+ delete oldplain;
+ if (oldosis)
+ delete oldosis;
+ }
+ return markup;
+}
+
+void DiathekeFilterMgr::CreateFilters(char markup) {
+
+ switch (markup) {
+ case FMT_CGI:
+ fromplain = NULL;
+ fromthml = new ThMLCGI();
+ fromgbf = new GBFCGI();
+ fromosis = new OSISCGI();
+ break;
+ case FMT_PLAIN:
+ fromplain = NULL;
+ fromthml = new ThMLPlain();
+ fromgbf = new GBFPlain();
+ fromosis = new OSISPlain();
+ break;
+ case FMT_THML:
+ fromplain = NULL;
+ fromthml = NULL;
+ fromgbf = new GBFThML();
+ fromosis = NULL;
+ break;
+ case FMT_GBF:
+ fromplain = NULL;
+ fromthml = new ThMLGBF();
+ fromgbf = NULL;
+ fromosis = NULL;
+ break;
+ case FMT_HTML:
+ fromplain = new PLAINHTML();
+ fromthml = new ThMLHTML();
+ fromgbf = new GBFHTML();
+ fromosis = NULL;
+ break;
+ case FMT_HTMLHREF:
+ fromplain = NULL;
+ fromthml = new ThMLHTMLHREF();
+ fromgbf = new GBFHTMLHREF();
+ fromosis = new OSISHTMLHREF();
+ break;
+ case FMT_RTF:
+ fromplain = NULL;
+ fromthml = new ThMLRTF();
+ fromgbf = new GBFRTF();
+ fromosis = new OSISRTF();
+ break;
+ case FMT_OSIS:
+ fromplain = NULL;
+ fromthml = new ThMLOSIS();
+ fromgbf = new GBFOSIS();
+ fromosis = NULL;
+ break;
+ }
+
+}
diff --git a/utilities/diatheke/diafiltmgr.h b/utilities/diatheke/diafiltmgr.h
new file mode 100644
index 0000000..2ca34eb
--- /dev/null
+++ b/utilities/diatheke/diafiltmgr.h
@@ -0,0 +1,47 @@
+/******************************************************************************
+ * diafiltmgr.h
+ *
+ * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org)
+ * CrossWire Bible Society
+ * P. O. Box 2528
+ * Tempe, AZ 85280-2528
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation version 2.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ */
+
+#ifndef DIAFILTMGR_H
+#define DIAFILTMGR_H
+
+#define FMT_CGI 127
+
+#include <encfiltmgr.h>
+#ifndef NO_SWORD_NAMESPACE
+using namespace sword;
+#endif
+
+class SWDLLEXPORT DiathekeFilterMgr : public EncodingFilterMgr {
+protected:
+ SWFilter* fromthml;
+ SWFilter* fromgbf;
+ SWFilter* fromplain;
+ SWFilter* fromosis;
+
+ char markup;
+
+ void CreateFilters(char markup);
+public:
+ DiathekeFilterMgr(char markup = FMT_THML, char encoding = ENC_UTF8);
+ ~DiathekeFilterMgr();
+ char Markup(char m = FMT_UNKNOWN);
+ virtual void AddRenderFilters(SWModule *module, ConfigEntMap &section);
+};
+
+#endif
diff --git a/utilities/diatheke/diatheke.cpp b/utilities/diatheke/diatheke.cpp
new file mode 100644
index 0000000..0a99c07
--- /dev/null
+++ b/utilities/diatheke/diatheke.cpp
@@ -0,0 +1,225 @@
+// Diatheke 4.2.1 by Chris Little <chrislit@crosswire.org>
+// Copyright 1999-2005 by CrossWire Bible Society
+// http://www.crosswire.org/sword/diatheke
+// Licensed under GNU General Public License (GPL)
+// see accompanying LICENSE file for license details
+
+
+#include "corediatheke.h"
+#include "diathekemgr.h"
+#include "diafiltmgr.h"
+#include <utilstr.h>
+
+using std::cout;
+
+#define RQ_REF 1
+#define RQ_BOOK 2
+
+void printsyntax() {
+ //if we got this far without exiting, something went wrong, so print syntax
+ fprintf (stderr, "Diatheke command-line SWORD frontend Version 4.2.1\n");
+ fprintf (stderr, "Copyright 1999-2005 by the CrossWire Bible Society\n");
+ fprintf (stderr, "http://www.crosswire.org/sword/diatheke/\n");
+ fprintf (stderr, "usage: \n ");
+ fprintf (stderr, "diatheke <-b module_name> [-s search_type] [-r search_range]\n");
+ fprintf (stderr, "[-o option_filters] [-m maximum_verses] [-f output_format]\n");
+ fprintf (stderr, "[-e output_encoding] [-t script] [-v variant#(-1=all|0|1)]\n");
+ fprintf (stderr, "[-l locale] <-k query_key>\n");
+ fprintf (stderr, "\n");
+ fprintf (stderr, "If <book> is \"system\" you may use these system keys: \"modulelist\",\n");
+ fprintf (stderr, "\"modulelistnames\", and \"localelist\".");
+ fprintf (stderr, "\n");
+ fprintf (stderr, "Valid search_type values are: regex, multiword, and phrase(def).\n");
+ fprintf (stderr, "Valid option_filters values are: n (Strong's numbers),\n");
+ fprintf (stderr, " f (Footnotes), m (Morphology), h (Section Headings),\n");
+ fprintf (stderr, " c (Cantillation), v (Hebrew Vowels), a (Greek Accents),\n");
+ fprintf (stderr, " l (Lemmas), s (Scripture Crossrefs), r (Arabic Shaping,\n");
+ fprintf (stderr, " b (Bi-Directional Reordering), x (Red Words of Christ)\n");
+
+ fprintf (stderr, "Maximum verses may be any integer value\n");
+ fprintf (stderr, "Valid output_format values are: GBF, ThML, RTF, HTML, OSIS, CGI, and plain (def)\n");
+ fprintf (stderr, "Valid output_encoding values are: Latin1, UTF8 (def), UTF16, HTML, and RTF\n");
+ fprintf (stderr, "Valid locale values depend on installed locales. en is default.\n");
+ fprintf (stderr, "The query_key must be the last argument because all following\n");
+ fprintf (stderr, " arguments are added to the key.\n\n");
+
+ fprintf (stderr, "Example usage:\n");
+ fprintf (stderr, " diatheke -b KJV -o fmnx -k Jn 3:16\n");
+ fprintf (stderr, " diatheke -b WHNU -t Latin -o mn -k Mt 24\n");
+ fprintf (stderr, " diatheke -b KJV -s phrase -r Mt -k love\n");
+}
+
+int main(int argc, char **argv)
+{
+ int maxverses = -1;
+ unsigned char outputformat = FMT_PLAIN, searchtype = ST_NONE, outputencoding = ENC_UTF8;
+ unsigned long optionfilters = OP_NONE;
+ char *text = 0, *locale = 0, *ref = 0, *script = 0, *range = 0;
+ signed short variants = 0;
+
+ char runquery = 0; // used to check that we have enough arguments to perform a legal query
+ // (a querytype & text = 1 and a ref = 2)
+
+ for (int i = 1; i < argc; i++) {
+ if (!::stricmp("-b", argv[i])) {
+ if (i+1 <= argc) {
+ text = argv[i+1];
+ i++;
+ runquery |= RQ_BOOK;
+ }
+ }
+ else if (!::stricmp("-s", argv[i])) {
+ if (i+1 <= argc) {
+ if (!::stricmp("phrase", argv[i+1])) {
+ searchtype = ST_PHRASE;
+ i++;
+ }
+ else if (!::stricmp("regex", argv[i+1])) {
+ searchtype = ST_REGEX;
+ i++;
+ }
+ else if (!::stricmp("multiword", argv[i+1])) {
+ searchtype = ST_MULTIWORD;
+ i++;
+ }
+ else i++;
+ }
+ }
+ else if (!::stricmp("-r", argv[i])) {
+ if (i+1 <= argc) {
+ range = argv[i+1];
+ i++;
+ }
+ }
+ else if (!::stricmp("-l", argv[i])) {
+ if (i+1 <= argc) {
+ locale = argv[i+1];
+ i++;
+ }
+ }
+ else if (!::stricmp("-m", argv[i])) {
+ if (i+1 <= argc) {
+ maxverses = atoi(argv[i+1]);
+ i++;
+ }
+ }
+ else if (!::stricmp("-o", argv[i])) {
+ if (i+1 <= argc) {
+ if (strchr(argv[i+1], 'f'))
+ optionfilters |= OP_FOOTNOTES;
+ if (strchr(argv[i+1], 'n'))
+ optionfilters |= OP_STRONGS;
+ if (strchr(argv[i+1], 'h'))
+ optionfilters |= OP_HEADINGS;
+ if (strchr(argv[i+1], 'm'))
+ optionfilters |= OP_MORPH;
+ if (strchr(argv[i+1], 'c'))
+ optionfilters |= OP_CANTILLATION;
+ if (strchr(argv[i+1], 'v'))
+ optionfilters |= OP_HEBREWPOINTS;
+ if (strchr(argv[i+1], 'a'))
+ optionfilters |= OP_GREEKACCENTS;
+ if (strchr(argv[i+1], 'l'))
+ optionfilters |= OP_LEMMAS;
+ if (strchr(argv[i+1], 's'))
+ optionfilters |= OP_SCRIPREF;
+ if (strchr(argv[i+1], 'r'))
+ optionfilters |= OP_ARSHAPE;
+ if (strchr(argv[i+1], 'b'))
+ optionfilters |= OP_BIDI;
+ if (strchr(argv[i+1], 'x'))
+ optionfilters |= OP_RED;
+ i++;
+ }
+ }
+ else if (!::stricmp("-f", argv[i])) {
+ if (i+1 <= argc) {
+ if (!::stricmp("thml", argv[i+1])) {
+ outputformat = FMT_THML;
+ i++;
+ }
+ else if (!::stricmp("cgi", argv[i+1])) {
+ outputformat = FMT_CGI;
+ i++;
+ }
+ else if (!::stricmp("gbf", argv[i+1])) {
+ outputformat = FMT_GBF;
+ i++;
+ }
+ else if (!::stricmp("html", argv[i+1])) {
+ outputformat = FMT_HTML;
+ i++;
+ }
+ else if (!::stricmp("rtf", argv[i+1])) {
+ outputformat = FMT_RTF;
+ i++;
+ }
+ else if (!::stricmp("osis", argv[i+1])) {
+ outputformat = FMT_OSIS;
+ i++;
+ }
+ else i++;
+ }
+ }
+ else if (!::stricmp("-e", argv[i])) {
+ if (i+1 <= argc) {
+ if (!::stricmp("utf8", argv[i+1])) {
+ outputencoding = ENC_UTF8;
+ i++;
+ }
+ else if (!::stricmp("rtf", argv[i+1])) {
+ outputencoding = ENC_RTF;
+ i++;
+ }
+ else if (!::stricmp("html", argv[i+1])) {
+ outputencoding = ENC_HTML;
+ i++;
+ }
+ else if (!::stricmp("latin1", argv[i+1])) {
+ outputencoding = ENC_LATIN1;
+ i++;
+ }
+ else if (!::stricmp("utf16", argv[i+1])) {
+ outputencoding = ENC_UTF16;
+ i++;
+ }
+ else i++;
+ }
+ }
+ else if (!::stricmp("-k", argv[i])) {
+ i++;
+ if (i < argc) {
+ SWBuf key = argv[i];
+ i++;
+ for (; i < argc; i++)
+ key = key + " " + argv[i];
+ ref = new char[key.length() + 1];
+ strcpy (ref, key.c_str());
+ if (strlen(ref))
+ runquery |= RQ_REF;
+ }
+ }
+ else if (!::stricmp("-v", argv[i])) {
+ if (i+1 <= argc) {
+ variants = atoi(argv[i+1]);
+ optionfilters |= OP_VARIANTS;
+ i++;
+ }
+ }
+ else if (!::stricmp("-t", argv[i])) {
+ if (i+1 <= argc) {
+ script = argv[i+1];
+ optionfilters |= OP_TRANSLITERATOR;
+ i++;
+ }
+ }
+ }
+
+
+ if (runquery == (RQ_BOOK | RQ_REF)) {
+ doquery(maxverses, outputformat, outputencoding, optionfilters, searchtype, range, text, locale, ref, &cout, script, variants);
+ }
+ else printsyntax();
+
+ return 0;
+}
diff --git a/utilities/diatheke/diatheke.dsp b/utilities/diatheke/diatheke.dsp
new file mode 100644
index 0000000..03085d3
--- /dev/null
+++ b/utilities/diatheke/diatheke.dsp
@@ -0,0 +1,204 @@
+# Microsoft Developer Studio Project File - Name="diatheke" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=diatheke - Win32 Debug with ICU
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "diatheke.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "diatheke.mak" CFG="diatheke - Win32 Debug with ICU"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "diatheke - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "diatheke - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE "diatheke - Win32 Debug with ICU" (based on "Win32 (x86) Console Application")
+!MESSAGE "diatheke - Win32 Release with ICU" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "diatheke - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /w /W0 /GX /O2 /I "../../include" /I "../../src/utilfuns/win32" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libswordvc6.lib /nologo /subsystem:console /machine:I386 /libpath:"../../lib"
+
+!ELSEIF "$(CFG)" == "diatheke - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /w /W0 /Gm /GX /ZI /Od /I "../../include" /I "../../src/utilfuns/win32" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libswordvc6d.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../lib"
+
+!ELSEIF "$(CFG)" == "diatheke - Win32 Debug with ICU"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "diatheke___Win32_Debug_with_ICU"
+# PROP BASE Intermediate_Dir "diatheke___Win32_Debug_with_ICU"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "ICUDebug"
+# PROP Intermediate_Dir "ICUDebug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "../../include" /I "../../src/utilfuns/win32" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__VISUALC__" /FR /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /w /W0 /Gm /GX /ZI /Od /I "../../include" /I "../../src/utilfuns/win32" /I "../../../icu-sword/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_ICU_" /D "_ICUSWORD_" /FR /YX /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libsword.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../lib/vcppmake/vc6/Debug"
+# ADD LINK32 icuin.lib icuuc.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libswordvc6icud.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../../icu-sword/lib" /libpath:"../../lib"
+
+!ELSEIF "$(CFG)" == "diatheke - Win32 Release with ICU"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "diatheke___Win32_Release_with_ICU"
+# PROP BASE Intermediate_Dir "diatheke___Win32_Release_with_ICU"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ICURelease"
+# PROP Intermediate_Dir "ICURelease"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /w /W0 /GX /O2 /I "../../include" /I "../../src/utilfuns/win32" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__VISUALC__" /FR /YX /FD /c
+# ADD CPP /nologo /MD /w /W0 /GX /O2 /I "../../include" /I "../../src/utilfuns/win32" /I "../../../icu-sword/include" /D "NDEBUG" /D "_ICU_" /D "_ICUSWORD_" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libsword.lib /nologo /subsystem:console /machine:I386 /libpath:"../../lib/vcppmake/vc6/Release"
+# ADD LINK32 icuin.lib icuuc.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libswordvc6icu.lib /nologo /subsystem:console /machine:I386 /libpath:"../../../icu-sword/lib" /libpath:"../../lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "diatheke - Win32 Release"
+# Name "diatheke - Win32 Debug"
+# Name "diatheke - Win32 Debug with ICU"
+# Name "diatheke - Win32 Release with ICU"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\corediatheke.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\diafiltmgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\diatheke.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\diathekemgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\gbfcgi.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\osiscgi.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\thmlcgi.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\corediatheke.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\diafiltmgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\diathekemgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\gbfcgi.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\osiscgi.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\thmlcgi.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/utilities/diatheke/diatheke.dsw b/utilities/diatheke/diatheke.dsw
new file mode 100644
index 0000000..3bf8c0c
--- /dev/null
+++ b/utilities/diatheke/diatheke.dsw
@@ -0,0 +1,44 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "diatheke"=.\diatheke.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libsword
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "libsword"=..\..\lib\vcppmake\vc6\libsword.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/utilities/diatheke/diathekemgr.cpp b/utilities/diatheke/diathekemgr.cpp
new file mode 100644
index 0000000..38cb46d
--- /dev/null
+++ b/utilities/diatheke/diathekemgr.cpp
@@ -0,0 +1,109 @@
+//---------------------------------------------------------------------------
+#include <thmlplain.h>
+#include <gbfplain.h>
+#include <thmlgbf.h>
+#include <gbfthml.h>
+#include <thmlhtml.h>
+#include <gbfhtml.h>
+#include <plainhtml.h>
+#include <thmlhtmlhref.h>
+#include <gbfhtmlhref.h>
+#include <thmlrtf.h>
+#include <gbfrtf.h>
+#include <utilstr.h>
+#include <swmodule.h>
+
+#include <swconfig.h>
+#include "diafiltmgr.h"
+
+#ifdef _ICU_
+#include <utf8arshaping.h>
+#include <utf8bidireorder.h>
+#include <utf8transliterator.h>
+#endif
+
+#ifdef WIN32
+#include <windows.h>
+#endif
+
+#include "diathekemgr.h"
+#include "gbfcgi.h"
+#include "thmlcgi.h"
+
+//---------------------------------------------------------------------------
+DiathekeMgr::DiathekeMgr (SWConfig * iconfig, SWConfig * isysconfig, bool autoload, char enc, char mark, bool ibidi, bool ishape)
+ : SWMgr(iconfig, isysconfig, autoload, new DiathekeFilterMgr(mark, enc))
+{
+ bidi = ibidi;
+ shape = ishape;
+
+#ifdef _ICU_
+ arshaping = new UTF8arShaping();
+ bidireorder = new UTF8BiDiReorder();
+ transliterator = new UTF8Transliterator();
+#endif
+ Load();
+
+#ifdef WIN32
+ OSVERSIONINFO osvi;
+ memset (&osvi, 0, sizeof(OSVERSIONINFO));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ GetVersionEx(&osvi);
+ platformID = osvi.dwPlatformId;
+#endif
+
+}
+
+
+DiathekeMgr::~DiathekeMgr()
+{
+#ifdef _ICU_
+ if (arshaping)
+ delete arshaping;
+ if (bidireorder)
+ delete bidireorder;
+ if (transliterator)
+ delete transliterator;
+#endif
+}
+
+
+void DiathekeMgr::AddRenderFilters(SWModule *module, ConfigEntMap &section)
+{
+ SWBuf lang;
+ bool rtl;
+ ConfigEntMap::iterator entry;
+
+ lang = ((entry = section.find("Lang")) != section.end()) ? (*entry).second : (SWBuf)"en";
+ rtl = ((entry = section.find("Direction")) != section.end()) ? ((*entry).second == "RtoL") : false;
+
+#ifdef _ICU_
+ if (shape && !strnicmp(lang.c_str(), "ar", 2)) {
+ module->AddRenderFilter(arshaping);
+ }
+ if (bidi && rtl) {
+ module->AddRenderFilter(bidireorder);
+ }
+#endif
+ SWMgr::AddRenderFilters(module, section);
+}
+
+signed char DiathekeMgr::Load () {
+ signed char retval = SWMgr::Load();
+#ifdef _ICU_
+ optionFilters["UTF8Transliterator"] = transliterator;
+ options.push_back(transliterator->getOptionName());
+#endif
+ return retval;
+};
+
+void DiathekeMgr::AddGlobalOptions (SWModule * module, ConfigEntMap & section,
+ ConfigEntMap::iterator start,
+ ConfigEntMap::iterator end) {
+
+ SWMgr::AddGlobalOptions(module, section, start, end);
+#ifdef _ICU_
+ module->AddOptionFilter(transliterator);
+#endif
+};
+
diff --git a/utilities/diatheke/diathekemgr.h b/utilities/diatheke/diathekemgr.h
new file mode 100644
index 0000000..cbd8e6f
--- /dev/null
+++ b/utilities/diatheke/diathekemgr.h
@@ -0,0 +1,35 @@
+#ifndef DIATHEKEMGR_H
+#define DIATHEKEMGR_H
+
+#include <swmgr.h>
+#include "diafiltmgr.h"
+
+enum PlatformIDs { WIN32S = 0, WIN9X, WINNT, WINCE };
+
+class DiathekeMgr : public SWMgr {
+ SWFilter *arshaping;
+ SWFilter *bidireorder;
+ SWOptionFilter *transliterator;
+
+#ifdef WIN32
+ char platformID;
+#endif
+
+protected:
+ virtual void AddRenderFilters(SWModule *module, ConfigEntMap &section);
+ virtual signed char Load ();
+ virtual void AddGlobalOptions (SWModule * module, ConfigEntMap & section, ConfigEntMap::iterator start, ConfigEntMap::iterator end);
+
+public:
+ bool shape;
+ bool bidi;
+
+ unsigned char Markup(unsigned char m = FMT_UNKNOWN) {return ((DiathekeFilterMgr*)filterMgr)->Markup(m);};
+ unsigned char Encoding(unsigned char e = ENC_UNKNOWN) {return ((EncodingFilterMgr*)filterMgr)->Encoding(e);};
+
+ DiathekeMgr(SWConfig * iconf = NULL, SWConfig * isysconfig = NULL, bool autoload = false, char enc = ENC_UTF8, char mark = FMT_PLAIN, bool bidi = false, bool shape = false);
+ virtual ~DiathekeMgr();
+};
+
+#endif
+
diff --git a/utilities/diatheke/gbfcgi.cpp b/utilities/diatheke/gbfcgi.cpp
new file mode 100644
index 0000000..c581fa1
--- /dev/null
+++ b/utilities/diatheke/gbfcgi.cpp
@@ -0,0 +1,138 @@
+/***************************************************************************
+ gbfcgi.cpp - GBF to Diatheke/CGI format
+ -------------------
+ begin : 2001-11-12
+ copyright : 2001 by CrossWire Bible Society
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <stdlib.h>
+#include <string.h>
+#include "gbfcgi.h"
+
+SWORD_NAMESPACE_START
+
+GBFCGI::GBFCGI() {
+ setTokenStart("<");
+ setTokenEnd(">");
+
+ setTokenCaseSensitive(true);
+
+ addTokenSubstitute("Rf", ")</small></font>");
+ addTokenSubstitute("FI", "<i>"); // italics begin
+ addTokenSubstitute("Fi", "</i>");
+ addTokenSubstitute("FB", "<n>"); // bold begin
+ addTokenSubstitute("Fb", "</n>");
+ addTokenSubstitute("FR", "<font color=\"#FF0000\">"); // words of Jesus begin
+ addTokenSubstitute("Fr", "</font>");
+ addTokenSubstitute("FU", "<u>"); // underline begin
+ addTokenSubstitute("Fu", "</u>");
+ addTokenSubstitute("FO", "<cite>"); // Old Testament quote begin
+ addTokenSubstitute("Fo", "</cite>");
+ addTokenSubstitute("FS", "<sup>"); // Superscript begin// Subscript begin
+ addTokenSubstitute("Fs", "</sup>");
+ addTokenSubstitute("FV", "<sub>"); // Subscript begin
+ addTokenSubstitute("Fv", "</sub>");
+ addTokenSubstitute("TT", "<big>"); // Book title begin
+ addTokenSubstitute("Tt", "</big>");
+ addTokenSubstitute("PP", "<cite>"); // poetry begin
+ addTokenSubstitute("Pp", "</cite>");
+ addTokenSubstitute("Fn", "</font>"); // font end
+ addTokenSubstitute("CL", "<br />"); // new line
+ addTokenSubstitute("CM", "<br />"); // paragraph
+ addTokenSubstitute("CG", "&gt;"); // ???
+ addTokenSubstitute("CT", "&lt;"); // ???
+ addTokenSubstitute("JR", "<div align=\"right\">"); // right align begin
+ addTokenSubstitute("JC", "<div align=\"center\">"); // center align begin
+ addTokenSubstitute("JL", "</div>"); // align end
+
+}
+
+
+bool GBFCGI::handleToken(SWBuf &buf, const char *token, DualStringMap &userData) {
+ unsigned long i;
+ if (!substituteToken(buf, token)) {
+ if (!strncmp(token, "WG", 2) || !strncmp(token, "WH", 2)) { // strong's numbers
+ buf += " <small><em>&lt;<a href=\"!DIATHEKE_URL!";
+ if (token[1] == 'H') {
+ buf += "StrongsHebrew";
+ }
+ else if (token[1] == 'G') {
+ buf += "StrongsGreek";
+ }
+ buf += "=on&verse=";
+ for (i = 2; i < strlen(token); i++)
+ buf += token[i];
+ buf += "\">";
+ for (i = 2; i < strlen(token); i++)
+ buf += token[i];
+ buf += "</a>&gt;</em></small>";
+ }
+
+ else if (!strncmp(token, "WTG", 3) || !strncmp(token, "WTH", 3)) { // strong's numbers tense
+ buf += " <small><em>&lt;<a href=\"!DIATHEKE_URL!";
+ if (token[2] == 'H') {
+ buf += "StrongsHebrew";
+ }
+ else if (token[2] == 'G') {
+ buf += "StrongsGreek";
+ }
+ buf += "=on&verse=";
+ for (i = 3; i < strlen(token); i++)
+ buf += token[i];
+ buf += "\">";
+ for (i = 3; i < strlen(token); i++)
+ buf += token[i];
+ buf += "</a>&gt;</em></small>";
+ }
+
+ else if (!strncmp(token, "WT", 2)) { // morph tags
+ buf += " <small><em>(<a href=\"!DIATHEKE_URL!Packard=on&verse=";
+ for (i = 1; i < strlen(token); i++)
+ buf += token[i];
+ buf += "\">";
+ for (i = 1; i < strlen(token); i++)
+ buf += token[i];
+ buf += "</a>)</em></small>";
+ }
+
+ else if (!strncmp(token, "RB", 2)) {
+ buf += "<i>";
+ userData["hasFootnotePreTag"] = "true";
+ }
+
+ else if (!strncmp(token, "RF", 2)) {
+ if(userData["hasFootnotePreTag"] == "true") {
+ userData["hasFootnotePreTag"] = "false";
+ buf += "</i> ";
+ }
+ buf += "<font color=\"#800000\"><small> (";
+ }
+
+ else if (!strncmp(token, "FN", 2)) {
+ buf += "<font face=\"";
+ for (i = 2; i < strlen(token); i++)
+ buf += token[i];
+ buf += "\">";
+ }
+
+ else if (!strncmp(token, "CA", 2)) { // ASCII value
+ buf += (char)atoi(&token[2]);
+ }
+
+ else {
+ return false;
+ }
+ }
+ return true;
+}
+
+SWORD_NAMESPACE_END
diff --git a/utilities/diatheke/gbfcgi.h b/utilities/diatheke/gbfcgi.h
new file mode 100644
index 0000000..c2b68c9
--- /dev/null
+++ b/utilities/diatheke/gbfcgi.h
@@ -0,0 +1,38 @@
+/*-*************************************************************************
+ gbfcgi.h - description
+ -------------------
+ begin : 2001-11-12
+ copyright : 2001 by CrossWire Bible Society
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef GBFCGI_H
+#define GBFCGI_H
+
+#include <swbasicfilter.h>
+#include <swbuf.h>
+#include <defs.h>
+#include <map>
+
+SWORD_NAMESPACE_START
+
+typedef std::map<SWBuf, SWBuf> DualStringMap;
+/** this filter converts GBF text to Diatheke/CGI format
+ */
+class SWDLLEXPORT GBFCGI : public SWBasicFilter {
+protected:
+ virtual bool handleToken(SWBuf &buf, const char *token, DualStringMap &userData);
+public:
+ GBFCGI ();
+};
+
+SWORD_NAMESPACE_END
+#endif
diff --git a/utilities/diatheke/osiscgi.cpp b/utilities/diatheke/osiscgi.cpp
new file mode 100644
index 0000000..68298e9
--- /dev/null
+++ b/utilities/diatheke/osiscgi.cpp
@@ -0,0 +1,325 @@
+/***************************************************************************
+ osiscgi.cpp - OSIS to Diatheke/CGI format
+ -------------------
+ begin : 2003-10-21
+ copyright : 2003 by CrossWire Bible Society
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <stdlib.h>
+#include "osiscgi.h"
+#include <utilxml.h>
+#include <versekey.h>
+#include <swmodule.h>
+#include <ctype.h>
+
+SWORD_NAMESPACE_START
+
+
+OSISCGI::MyUserData::MyUserData(const SWModule *module, const SWKey *key) : BasicFilterUserData(module, key) {
+ osisQToTick = ((!module->getConfigEntry("OSISqToTick")) || (strcmp(module->getConfigEntry("OSISqToTick"), "false")));
+}
+
+
+OSISCGI::OSISCGI() {
+ setTokenStart("<");
+ setTokenEnd(">");
+
+ setEscapeStart("&");
+ setEscapeEnd(";");
+
+ setEscapeStringCaseSensitive(true);
+
+ addEscapeStringSubstitute("amp", "&");
+ addEscapeStringSubstitute("apos", "'");
+ addEscapeStringSubstitute("lt", "<");
+ addEscapeStringSubstitute("gt", ">");
+ addEscapeStringSubstitute("quot", "\"");
+ addTokenSubstitute("lg", "<br />");
+ addTokenSubstitute("/lg", "<br />");
+
+ setTokenCaseSensitive(true);
+}
+
+
+bool OSISCGI::handleToken(SWBuf &buf, const char *token, BasicFilterUserData *userData) {
+ // manually process if it wasn't a simple substitution
+ if (!substituteToken(buf, token)) {
+ MyUserData *u = (MyUserData *)userData;
+ XMLTag tag(token);
+
+ // <w> tag
+ if (!strcmp(tag.getName(), "w")) {
+
+ // start <w> tag
+ if ((!tag.isEmpty()) && (!tag.isEndTag())) {
+ u->w = token;
+ }
+
+ // end or empty <w> tag
+ else {
+ bool endTag = tag.isEndTag();
+ SWBuf lastText;
+ bool show = true; // to handle unplaced article in kjv2003-- temporary till combined
+
+ if (endTag) {
+ tag = u->w.c_str();
+ lastText = u->lastTextNode.c_str();
+ }
+ else lastText = "stuff";
+
+ const char *attrib;
+ const char *val;
+ if ((attrib = tag.getAttribute("xlit"))) {
+ val = strchr(attrib, ':');
+ val = (val) ? (val + 1) : attrib;
+ buf.appendFormatted(" %s", val);
+ }
+ if ((attrib = tag.getAttribute("gloss"))) {
+ val = strchr(attrib, ':');
+ val = (val) ? (val + 1) : attrib;
+ buf.appendFormatted(" %s", val);
+ }
+ if ((attrib = tag.getAttribute("lemma"))) {
+ int count = tag.getAttributePartCount("lemma");
+ int i = (count > 1) ? 0 : -1; // -1 for whole value cuz it's faster, but does the same thing as 0
+ do {
+ attrib = tag.getAttribute("lemma", i);
+ if (i < 0) i = 0; // to handle our -1 condition
+ val = strchr(attrib, ':');
+ val = (val) ? (val + 1) : attrib;
+ const char *val2 = val;
+ if ((strchr("GH", *val)) && (isdigit(val[1])))
+ val2++;
+ if ((!strcmp(val2, "3588")) && (lastText.length() < 1))
+ show = false;
+ else {
+ if (!strchr("G", *val)) {
+ buf.appendFormatted(" <small><em>&lt;<a href=\"!DIATHEKE_URL!StrongsGreek=on&verse=%s\">%s</a>&gt;</em></small> ", val2, val);
+ }
+ else {
+ buf.appendFormatted(" <small><em>&lt;<a href=\"!DIATHEKE_URL!StrongsHebrew=on&verse=%s\">%s</a>&gt;</em></small> ", val2, val);
+ }
+ }
+ } while (++i < count);
+ }
+ if ((attrib = tag.getAttribute("morph")) && (show)) {
+ SWBuf savelemma = tag.getAttribute("savlm");
+ if ((strstr(savelemma.c_str(), "3588")) && (lastText.length() < 1))
+ show = false;
+ if (show) {
+ int count = tag.getAttributePartCount("morph");
+ int i = (count > 1) ? 0 : -1; // -1 for whole value cuz it's faster, but does the same thing as 0
+ do {
+ attrib = tag.getAttribute("morph", i);
+ if (i < 0) i = 0; // to handle our -1 condition
+ val = strchr(attrib, ':');
+ val = (val) ? (val + 1) : attrib;
+ const char *val2 = val;
+ if ((*val == 'T') && (strchr("GH", val[1])) && (isdigit(val[2])))
+ val2+=2;
+ if (!strchr("G", *val)) {
+ buf.appendFormatted(" <small><em>(;<a href=\"!DIATHEKE_URL!StrongsGreek=on&verse=%s\">%s</a>)</em></small> ", val+1, tag.getAttribute("morph"));
+ }
+ else if (!strchr("H", *val)) {
+ buf.appendFormatted(" <small><em>(<a href=\"!DIATHEKE_URL!StrongsHebrew=on&verse=%s\">%s</a>)</em></small> ", val+1, tag.getAttribute("morph"));
+ }
+ else {
+ buf.appendFormatted(" <small><em>(<a href=\"!DIATHEKE_URL!Packard=on&verse=%s\">%s</a>)</em></small> ", val, tag.getAttribute("morph"));
+ }
+ } while (++i < count);
+ }
+ }
+ if ((attrib = tag.getAttribute("POS"))) {
+ val = strchr(attrib, ':');
+ val = (val) ? (val + 1) : attrib;
+ buf.appendFormatted(" %s", val);
+ }
+
+ /*if (endTag)
+ buf += "}";*/
+ }
+ }
+
+ // <note> tag
+ else if (!strcmp(tag.getName(), "note")) {
+ if (!tag.isEndTag()) {
+ if (!tag.isEmpty()) {
+ SWBuf type = tag.getAttribute("type");
+
+ if (type != "x-strongsMarkup" && // leave strong's markup notes out, in the future we'll probably have different option filters to turn different note types on or off
+ type != "strongsMarkup") { // deprecated
+ SWBuf footnoteNumber = tag.getAttribute("swordFootnote");
+ VerseKey *vkey = NULL;
+ // see if we have a VerseKey * or descendant
+ SWTRY {
+ vkey = SWDYNAMIC_CAST(VerseKey, u->key);
+ }
+ SWCATCH ( ... ) { }
+ if (vkey) {
+ char ch = ((tag.getAttribute("type") && (!strcmp(tag.getAttribute("type"), "crossReference"))) ? 'x':'n');
+ buf.appendFormatted("<a href=\"noteID=%s.%c.%s\"><small><sup>*%c</sup></small></a> ", vkey->getText(), ch, footnoteNumber.c_str(), ch);
+ }
+ }
+ u->suspendTextPassThru = true;
+ }
+ }
+ if (tag.isEndTag()) {
+ u->suspendTextPassThru = false;
+ }
+ }
+
+ // <p> paragraph tag
+ else if (!strcmp(tag.getName(), "p")) {
+ if ((!tag.isEndTag()) && (!tag.isEmpty())) { // non-empty start tag
+ buf += "<p><br />";
+ }
+ else if (tag.isEndTag()) { // end tag
+ buf += "</p><br />";
+ userData->supressAdjacentWhitespace = true;
+ }
+ else { // empty paragraph break marker
+ buf += "<p><br />";
+ userData->supressAdjacentWhitespace = true;
+ }
+ }
+
+ // <reference> tag
+ else if (!strcmp(tag.getName(), "reference")) {
+ const char *attrib;
+ const char *val;
+
+ if ((!tag.isEndTag()) && (!tag.isEmpty())) {
+ buf += "<a href=\"!DIATHEKE_URL!verse=";
+ if ((attrib = tag.getAttribute("osisRef"))) {
+ val = strchr(attrib, ':');
+ val = (val) ? (val + 1) : attrib;
+ buf.appendFormatted("%s", val);
+ }
+ buf += "\">";
+ }
+ else if (tag.isEndTag()) {
+ buf += "</a>";
+ }
+ }
+
+ // <l> poetry, etc
+ else if (!strcmp(tag.getName(), "l")) {
+ if (tag.isEmpty()) {
+ buf += "<br />";
+ }
+ else if (tag.isEndTag()) {
+ buf += "<br />";
+ }
+ else if (tag.getAttribute("sID")) { // empty line marker
+ buf += "<br />";
+ }
+ }
+
+ // <milestone type="line"/> or <lb.../>
+ else if ((!strcmp(tag.getName(), "lb")) || ((!strcmp(tag.getName(), "milestone")) && (tag.getAttribute("type")) && (!strcmp(tag.getAttribute("type"), "line")))) {
+ buf += "<br />";
+ userData->supressAdjacentWhitespace = true;
+ }
+
+ // <title>
+ else if (!strcmp(tag.getName(), "title")) {
+ if ((!tag.isEndTag()) && (!tag.isEmpty())) {
+ buf += "<b>";
+ }
+ else if (tag.isEndTag()) {
+ buf += "</b><br />";
+ }
+ }
+
+ // <hi> hi? hi contrast?
+ else if (!strcmp(tag.getName(), "hi")) {
+ SWBuf type = tag.getAttribute("type");
+ if ((!tag.isEndTag()) && (!tag.isEmpty())) {
+ if (type == "bold" || type == "x-b") {
+ buf += "<b> ";
+ u->inBold = true;
+ }
+ else { // all other types
+ buf += "<i> ";
+ u->inBold = false;
+ }
+ }
+ else if (tag.isEndTag()) {
+ if(u->inBold) {
+ buf += "</b>";
+ u->inBold = false;
+ }
+ else
+ buf += "</i>";
+ }
+ else { // empty hi marker
+ // what to do? is this even valid?
+ }
+ }
+
+ // <q> quote
+ else if (!strcmp(tag.getName(), "q")) {
+ SWBuf type = tag.getAttribute("type");
+ SWBuf who = tag.getAttribute("who");
+ const char *lev = tag.getAttribute("level");
+ int level = (lev) ? atoi(lev) : 1;
+
+ if ((!tag.isEndTag()) && (!tag.isEmpty())) {
+ /*buf += "{";*/
+
+ //alternate " and '
+ if (u->osisQToTick)
+ buf += (level % 2) ? '\"' : '\'';
+
+ if (who == "Jesus") {
+ buf += "<font color=\"red\"> ";
+ }
+ }
+ else if (tag.isEndTag()) {
+ //alternate " and '
+ if (u->osisQToTick)
+ buf += (level % 2) ? '\"' : '\'';
+ //buf += "</font>";
+ }
+ else { // empty quote marker
+ //alternate " and '
+ if (u->osisQToTick)
+ buf += (level % 2) ? '\"' : '\'';
+ }
+ }
+
+ // <transChange>
+ else if (!strcmp(tag.getName(), "transChange")) {
+ SWBuf type = tag.getAttribute("type");
+
+ if ((!tag.isEndTag()) && (!tag.isEmpty())) {
+
+// just do all transChange tags this way for now
+// if (type == "supplied")
+ buf += "<i>";
+ }
+ else if (tag.isEndTag()) {
+ buf += "</i>";
+ }
+ else { // empty transChange marker?
+ }
+ }
+
+ else {
+ return false; // we still didn't handle token
+ }
+ }
+ return true;
+}
+
+
+SWORD_NAMESPACE_END
diff --git a/utilities/diatheke/osiscgi.h b/utilities/diatheke/osiscgi.h
new file mode 100644
index 0000000..c6c6411
--- /dev/null
+++ b/utilities/diatheke/osiscgi.h
@@ -0,0 +1,48 @@
+/***************************************************************************
+ osiscgi.h - OSIS to Diatheke/CGI format
+ -------------------
+ begin : 2003-10-21
+ copyright : 2003 by CrossWire Bible Society
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef OSISCGI_H
+#define OSISCGI_H
+
+#include <swbasicfilter.h>
+
+#include <defs.h>
+
+SWORD_NAMESPACE_START
+
+/** this filter converts OSIS text to Diatheke/CGI format
+ */
+class SWDLLEXPORT OSISCGI : public SWBasicFilter {
+private:
+protected:
+ class MyUserData : public BasicFilterUserData {
+ public:
+ bool osisQToTick;
+ bool inBold;
+ SWBuf w;
+ SWBuf fn;
+ MyUserData(const SWModule *module, const SWKey *key);
+ };
+ virtual BasicFilterUserData *createUserData(const SWModule *module, const SWKey *key) {
+ return new MyUserData(module, key);
+ }
+ virtual bool handleToken(SWBuf &buf, const char *token, BasicFilterUserData *userData);
+public:
+ OSISCGI();
+};
+
+SWORD_NAMESPACE_END
+#endif
diff --git a/utilities/diatheke/pqa/Diatheke.pqa b/utilities/diatheke/pqa/Diatheke.pqa
new file mode 100644
index 0000000..f357b3d
--- /dev/null
+++ b/utilities/diatheke/pqa/Diatheke.pqa
Binary files differ
diff --git a/utilities/diatheke/pqa/src/README b/utilities/diatheke/pqa/src/README
new file mode 100644
index 0000000..277a643
--- /dev/null
+++ b/utilities/diatheke/pqa/src/README
@@ -0,0 +1 @@
+Use Palm's PQA Builder with the contents of this directory (except the README file) to build Diatheke.PQA. \ No newline at end of file
diff --git a/utilities/diatheke/pqa/src/all.html b/utilities/diatheke/pqa/src/all.html
new file mode 100644
index 0000000..0974033
--- /dev/null
+++ b/utilities/diatheke/pqa/src/all.html
@@ -0,0 +1,170 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p> <b>English Bibles</b><br>
+<input name=ALT type=checkbox value=on>Analytical-Literal Trans. (ALT)<br>
+<input name=ASV type=checkbox value=on>American Standard Ver. (ASV)<br>
+<input name=BBE type=checkbox value=on>Bible in Basic English (BBE)<br>
+<input name=Brenton type=checkbox value=on>Brenton's English LXX Trans. [OT]<br>
+<input name=Darby type=checkbox value=on>Darby's Bible<br>
+<input name=DR type=checkbox value=on>Douay-Rheims (DR)<br>
+<input name=DRA type=checkbox value=on>Douay-Rheims 1899 American Ed.<br>
+<input name=HNV type=checkbox value=on>Hebrew Names Ver. (HNV)<br>
+<input name=ISV type=checkbox value=on>International Standard Ver. (ISV) [NT]<br>
+<input name=JPS type=checkbox value=on>JPS 1917 Tanakh [OT]<br>
+<input name=KJ21 type=checkbox value=on>21st Century King James Ver. (KJ21)<br>
+<input name=KJV type=checkbox value=on>King James Ver. (KJV/AV) *<br>
+<input name=LITV type=checkbox value=on>Green's Literal Trans. (LitV)<br>
+<input name=LO type=checkbox value=on>The Living Oracles [NT]<br>
+<input name=MKJV type=checkbox value=on>A Modern King James Ver. (MKJV)<br>
+<input name=NASB type=checkbox value=on>New American Standard (NASB) <br>
+<input name=NASB95 type=checkbox value=on>New American Standard, 95 Update<br>
+<input name=NIV type=checkbox value=on>New International Ver. (NIV)<br>
+<input name=NIVBr type=checkbox value=on>New International Ver., British Ed.<br>
+<input name=NJB type=checkbox value=on>New Jerusalem Bible (NJB)<br>
+<input name=NKJV type=checkbox value=on>New King James Ver. (NKJV)<br>
+<input name=NLT type=checkbox value=on>New Living Trans. (NLT)<br>
+<input name=NRSV type=checkbox value=on>New Revised Standard Ver. (NRSV)<br>
+<input name=ORTHJBC type=checkbox value=on>Orthodox Jewish Brit Chadasha [NT]<br>
+<input name=RSV type=checkbox value=on>Revised Standard Ver. (RSV)<br>
+<input name=RWebster type=checkbox value=on>Revised 1833 Webster's Bible *<br>
+<input name=WEB type=checkbox value=on>World English Bible (WEB)<br>
+<input name=Websters type=checkbox value=on>Webster's Bible<br>
+<input name=Weymouth type=checkbox value=on>Weymouth New Testament [NT]<br>
+<input name=YLT type=checkbox value=on>Young's Literal Trans. (YLT)</p>
+<p><b>Ancient Language Bibles</b><br>
+<input name=BHS type=checkbox value=on>Biblia Hebraica Stuttgartensia (BHS)<br>
+<input name=ByzX type=checkbox value=on>1991 Byzantine/Majority Text<br>
+<input name=LXXX type=checkbox value=on>Septuagint (LXX)<br>
+<input name=NA26X type=checkbox value=on>Nestle-Aland 26th Ed. GNT<br>
+<input name=ScrivnerX type=checkbox value=on>1894 Scrivener Textus Receptus<br>
+<input name=StephanusX type=checkbox value=on>1550 Stephanus Textus Receptus<br>
+<input name=TischX type=checkbox value=on>Tischendorf's Eighth Ed. GNT<br>
+<input name=Vulgate type=checkbox value=on>Latin Vulgate<br>
+<input name=WHX type=checkbox value=on>1881 Westcott-Hort GNT<br>
+<input name=WHNUX type=checkbox value=on>Westcott-Hort with NA27U4 variants<br>
+</p><p>
+<b>French Bibles</b><br>
+<input name=FreCrl type=checkbox value=on>French Haitian Creaole Ver.<br>
+<input name=FreDrb type=checkbox value=on>French Darby Trans.<br>
+<input name=FreLSG type=checkbox value=on>French 1910 Louis Segond (LSG)<br>
+<input name=FreNEG type=checkbox value=on>French Nouvelle Edition de Geneve 1979<br>
+</p>
+<p><b>German Bibles</b><br>
+<input name=GerBen type=checkbox value=on>German Bengel [NT]<br>
+<input name=GerEin type=checkbox value=on>German Einheitsuebersetzung<br>
+<input name=GerElb type=checkbox value=on>German 1905 Darby Unrev. Elberfelder<br>
+<input name=GerLut type=checkbox value=on>German 1912 Luther<br>
+<input name=GerLut1545 type=checkbox value=on>German 1545 Luther<br>
+<input name=GerRElb type=checkbox value=on>German 1993 Elberfelder, rev. Fassung<br>
+<input name=GerRLut type=checkbox value=on>German 1984 Revised Luther<br>
+<input name=GerSch type=checkbox value=on>German 1951 Schlachter Bibel<br>
+</p>
+<p>
+<b>Spanish Bibles</b><br>
+<input name=SpaLBA type=checkbox value=on>Spanish La Biblia de Las Americas (LBA)<br>
+<input name=SpaRV type=checkbox value=on>Spanish Reina-Valera<br>
+<input name=SpaRV60 type=checkbox value=on>Spanish 1960 Reina-Valera Revised<br>
+<input name=SpaRV95 type=checkbox value=on>Spanish 1995 Reina-Valera Update<br>
+<input name=SpaRVA type=checkbox value=on>Spanish Ver. Reina-Valera Actualizada<br>
+<input name=SpaSEV type=checkbox value=on>Spanish 1569 Ver. Antigua<br>
+<input name=SpaVNT type=checkbox value=on>Spanish 1858 Valera[NT]<br>
+</p>
+ <p> <b>Other Bibles</b><br>
+<input name=ALB type=checkbox value=on>Albanian Bible<br>
+<input name=CzeBKR type=checkbox value=on>Czech Bible Kralicka<br>
+<input name=CzeCEP type=checkbox value=on>Czech Ekumenicky Cesky Preklad<br>
+<input name=CzeKMS type=checkbox value=on>Czech Preklad KMS Nova Smlouva<br>
+<input name=CzeNKB type=checkbox value=on>Czech Nova Kralicka Bible<br>
+<input name=Dan type=checkbox value=on>Danish Danske Bibel<br>
+<input name=DutLEI type=checkbox value=on>Dutch Leidse Vertaling<br>
+<input name=DutLU type=checkbox value=on>Dutch Lutherse Vertaling<br>
+<input name=DutNBG type=checkbox value=on>Dutch 1951 Bijbelgenootschap Ver.<br>
+<input name=DutSVV type=checkbox value=on>Dutch Statenvertaling<br>
+<input name=EquShr type=checkbox value=on>Equadoran Shuar [NT]<br>
+<input name=FinPR type=checkbox value=on>Finish 1933 Phy~N Raamattu<br>
+<input name=HunKar type=checkbox value=on>Hungarian Karoli<br>
+<input name=IndBIS type=checkbox value=on>Bahasa Indonesia Sehari-hari (BIS)<br>
+<input name=IndTB type=checkbox value=on>Indonesian Terjemahan Baru (TB)<br>
+<input name=ItaIEP type=checkbox value=on>Italian Nuovissima Ver., San Paolo Ed.<br>
+<input name=ItaLND type=checkbox value=on>Italian 1991 La Nuova Diodati<br>
+<input name=ItaNRV type=checkbox value=on>Italian 1994 La Nuova Riveduta<br>
+<input name=Maori type=checkbox value=on>Maori Bible<br>
+<input name=Mel type=checkbox value=on>Melanesian Pidgin Bible<br>
+<input name=NorBok type=checkbox value=on>Norwegian 1930 Bokmal<br>
+<input name=NorN38 type=checkbox value=on>Norwegian 1938 Bokmal<br>
+<input name=NorNBK type=checkbox value=on>Norwegian Bibel Konkordant<br>
+<input name=NorNyn type=checkbox value=on>Norwegian 1994 Nynorsk<br>
+<input name=Norsk type=checkbox value=on>Norwegian Norsk Bible<br>
+<input name=PhiCEB type=checkbox value=on>Philippine Nga Cebuano<br>
+<input name=PolBTP type=checkbox value=on>Polish 1984 Millenium Bible, 4th Ed.<br>
+<input name=PorACF type=checkbox value=on>Portuguese 1995 Joao Ferreira<br>
+<input name=PorBRP type=checkbox value=on>Portuguese 1994 Almeida Biblia<br>
+<input name=RomCor type=checkbox value=on>Romanian Cornilescu Ver.<br>
+<input name=Swahili type=checkbox value=on>Swahili New Testament [NT]<br>
+<input name=SweSVE type=checkbox value=on>Swedish 1917 New Testament [NT]<br>
+<input name=Turkish type=checkbox value=on>Turkish New Testament [NT]<br>
+<input name=Uma type=checkbox value=on>Uma New Testament [NT]<br>
+<input name=Viet type=checkbox value=on>Vietnamese 1934 Bible<br>
+</p>
+ <p> <b>English Commentaries</b><br>
+<input name=DTN type=checkbox value=on>Darby Translation Notes<br>
+<input name=Family type=checkbox value=on>Family Bible Notes<br>
+<input name=TFG type=checkbox value=on>The Fourfold Gospel<br>
+<input name=Geneva type=checkbox value=on>Geneva Bible Translation Notes<br>
+<input name=Gill type=checkbox value=on>Gill's Expositor<br>
+<input name=MHCC type=checkbox value=on>Matthew Henry's Commentary<br>
+<input name=MHC type=checkbox value=on>Matthew Henry's Concise Commentary<br>
+<input name=PNT type=checkbox value=on>The People's New Testament<br>
+<input name=RWP type=checkbox value=on>Robertson's Word Pictures<br>
+<input name=Scofield type=checkbox value=on>Scofield Reference Notes, 1917 Ed.<br>
+<input name=Wesley type=checkbox value=on>John Wesley's Notes on the Bible<br>
+</p><p>
+<p><b>German Commentaries</b><br>
+<input name=MAK type=checkbox value=on>Matthias Ansorgs Kommentar<br>
+<input name=Rieger type=checkbox value=on>Carl Heinrich Riegers Kommentar<br>
+<input name=GerScof type=checkbox value=on>German Scofield 1917 Ed. (Gen-Eccl)<br>
+</p>
+<p>
+<b>Cross-references</b><br>
+<input name=TSK type=checkbox value=on>Treasury of Scriptural Knowledge<br>
+</p>
+ <p>
+<b>Bible Dictionaries</b><br>
+<input name=Eastons type=checkbox value=on>Easton's Bible Dictionary<br>
+<input name=Hitchcocks type=checkbox value=on>Hitchcock's Bible Names Dictionary<br>
+<input name=ISBE type=checkbox value=on>Int'l Standard Bible Encyclopedia<br>
+<input name=Smiths type=checkbox value=on>Smith's Bible Dictionary<br>
+<input name=Vines type=checkbox value=on>Vine's Bible Dictionary<br>
+</p>
+<p>
+<b>Topical References</b><br>
+<input name=Naves type=checkbox value=on>Naves' Topical Bible<br>
+<input name=Torrey type=checkbox value=on>R. A. Torrey's New Topical Textbook<br>
+</p>
+ <p>
+<b>Greek Lexica</b><br>
+<input name=StrongsGreek type=checkbox value=on>Strong's Greek Lexicon<br>
+<input name=Thayer type=checkbox value=on>Thayer's Greek Lexicon<br>
+</p>
+<p>
+<b>Hebrew Lexica</b><br>
+<input name=StrongsHebrew type=checkbox value=on>Strong's Hebrew Lexicon<br>
+<input name=BDB type=checkbox value=on>Brown-Driver-Briggs Hebrew Lexicon<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/utilities/diatheke/pqa/src/ancient.html b/utilities/diatheke/pqa/src/ancient.html
new file mode 100644
index 0000000..4be0036
--- /dev/null
+++ b/utilities/diatheke/pqa/src/ancient.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bibles</b><br>
+<input name=BHS type=checkbox value=on>Biblia Hebraica Stuttgartensia (BHS)<br>
+<input name=ByzX type=checkbox value=on>1991 Byzantine/Majority Text<br>
+<input name=LXXX type=checkbox value=on>Septuagint (LXX)<br>
+<input name=NA26X type=checkbox value=on>Nestle-Aland 26th Ed. GNT<br>
+<input name=ScrivnerX type=checkbox value=on>1894 Scrivener Textus Receptus<br>
+<input name=StephanusX type=checkbox value=on>1550 Stephanus Textus Receptus<br>
+<input name=TischX type=checkbox value=on>Tischendorf's Eighth Ed. GNT<br>
+<input name=Vulgate type=checkbox value=on>Latin Vulgate<br>
+<input name=WHX type=checkbox value=on>1881 Westcott-Hort GNT<br>
+<input name=WHNUX type=checkbox value=on>Westcott-Hort with NA27U4 variants<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/utilities/diatheke/pqa/src/dict.html b/utilities/diatheke/pqa/src/dict.html
new file mode 100644
index 0000000..944bce3
--- /dev/null
+++ b/utilities/diatheke/pqa/src/dict.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bible Dictionaries</b><br>
+<input name=Eastons type=checkbox value=on>Easton's Bible Dictionary<br>
+<input name=Hitchcocks type=checkbox value=on>Hitchcock's Bible Names Dictionary<br>
+<input name=ISBE type=checkbox value=on>Int'l Standard Bible Encyclopedia<br>
+<input name=Smiths type=checkbox value=on>Smith's Bible Dictionary<br>
+<input name=Vines type=checkbox value=on>Vine's Bible Dictionary<br>
+</p>
+<p>
+<b>Topical References</b><br>
+<input name=Naves type=checkbox value=on>Naves' Topical Bible<br>
+<input name=Torrey type=checkbox value=on>R. A. Torrey's New Topical Textbook<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/utilities/diatheke/pqa/src/english.html b/utilities/diatheke/pqa/src/english.html
new file mode 100644
index 0000000..774245c
--- /dev/null
+++ b/utilities/diatheke/pqa/src/english.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bibles</b><br>
+<input name=ALT type=checkbox value=on>Analytical-Literal Trans. (ALT)<br>
+<input name=ASV type=checkbox value=on>American Standard Ver. (ASV)<br>
+<input name=BBE type=checkbox value=on>Bible in Basic English (BBE)<br>
+<input name=Brenton type=checkbox value=on>Brenton's English LXX Trans. [OT]<br>
+<input name=Darby type=checkbox value=on>Darby's Bible<br>
+<input name=DR type=checkbox value=on>Douay-Rheims (DR)<br>
+<input name=DRA type=checkbox value=on>Douay-Rheims 1899 American Ed.<br>
+<input name=HNV type=checkbox value=on>Hebrew Names Ver. (HNV)<br>
+<input name=ISV type=checkbox value=on>International Standard Ver. (ISV) [NT]<br>
+<input name=JPS type=checkbox value=on>JPS 1917 Tanakh [OT]<br>
+<input name=KJ21 type=checkbox value=on>21st Century King James Ver. (KJ21)<br>
+<input name=KJV type=checkbox value=on>King James Ver. (KJV/AV) *<br>
+<input name=LITV type=checkbox value=on>Green's Literal Trans. (LitV)<br>
+<input name=LO type=checkbox value=on>The Living Oracles [NT]<br>
+<input name=MKJV type=checkbox value=on>A Modern King James Ver. (MKJV)<br>
+<input name=NASB type=checkbox value=on>New American Standard (NASB) <br>
+<input name=NASB95 type=checkbox value=on>New American Standard, 95 Update<br>
+<input name=NIV type=checkbox value=on>New International Ver. (NIV)<br>
+<input name=NIVBr type=checkbox value=on>New International Ver., British Ed.<br>
+<input name=NJB type=checkbox value=on>New Jerusalem Bible (NJB)<br>
+<input name=NKJV type=checkbox value=on>New King James Ver. (NKJV)<br>
+<input name=NLT type=checkbox value=on>New Living Trans. (NLT)<br>
+<input name=NRSV type=checkbox value=on>New Revised Standard Ver. (NRSV)<br>
+<input name=ORTHJBC type=checkbox value=on>Orthodox Jewish Brit Chadasha [NT]<br>
+<input name=RSV type=checkbox value=on>Revised Standard Ver. (RSV)<br>
+<input name=RWebster type=checkbox value=on>Revised 1833 Webster's Bible *<br>
+<input name=WEB type=checkbox value=on>World English Bible (WEB)<br>
+<input name=Websters type=checkbox value=on>Webster's Bible<br>
+<input name=Weymouth type=checkbox value=on>Weymouth New Testament [NT]<br>
+<input name=YLT type=checkbox value=on>Young's Literal Trans. (YLT)</p>
+<p>
+<b>Commentaries</b><br>
+<input name=DTN type=checkbox value=on>Darby Translation Notes<br>
+<input name=Family type=checkbox value=on>Family Bible Notes<br>
+<input name=TFG type=checkbox value=on>The Fourfold Gospel<br>
+<input name=Geneva type=checkbox value=on>Geneva Bible Translation Notes<br>
+<input name=Gill type=checkbox value=on>Gill's Expositor<br>
+<input name=MHCC type=checkbox value=on>Matthew Henry's Commentary<br>
+<input name=MHC type=checkbox value=on>Matthew Henry's Concise Commentary<br>
+<input name=PNT type=checkbox value=on>The People's New Testament<br>
+<input name=RWP type=checkbox value=on>Robertson's Word Pictures<br>
+<input name=Scofield type=checkbox value=on>Scofield Reference Notes, 1917 Ed.<br>
+<input name=Wesley type=checkbox value=on>John Wesley's Notes on the Bible<br>
+</p><p>
+<b>Cross-references</b><br>
+<input name=TSK type=checkbox value=on>Treasury of Scriptural Knowledge<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/utilities/diatheke/pqa/src/french.html b/utilities/diatheke/pqa/src/french.html
new file mode 100644
index 0000000..4aeea79
--- /dev/null
+++ b/utilities/diatheke/pqa/src/french.html
@@ -0,0 +1,26 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bibles</b><br>
+<input name=FreCrl type=checkbox value=on>French Haitian Creaole Ver.<br>
+<input name=FreDrb type=checkbox value=on>French Darby Trans.<br>
+<input name=FreLSG type=checkbox value=on>French 1910 Louis Segond (LSG)<br>
+<input name=FreNEG type=checkbox value=on>French Nouvelle Edition de Geneve 1979<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/utilities/diatheke/pqa/src/german.html b/utilities/diatheke/pqa/src/german.html
new file mode 100644
index 0000000..d772a56
--- /dev/null
+++ b/utilities/diatheke/pqa/src/german.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bibles</b><br>
+<input name=GerBen type=checkbox value=on>German Bengel [NT]<br>
+<input name=GerEin type=checkbox value=on>German Einheitsuebersetzung<br>
+<input name=GerElb type=checkbox value=on>German 1905 Darby Unrev. Elberfelder<br>
+<input name=GerLut type=checkbox value=on>German 1912 Luther<br>
+<input name=GerLut1545 type=checkbox value=on>German 1545 Luther<br>
+<input name=GerRElb type=checkbox value=on>German 1993 Elberfelder, rev. Fassung<br>
+<input name=GerRLut type=checkbox value=on>German 1984 Revised Luther<br>
+<input name=GerSch type=checkbox value=on>German 1951 Schlachter Bibel<br>
+</p>
+<p><b>Commentaries</b><br>
+<input name=MAK type=checkbox value=on>Matthias Ansorgs Kommentar<br>
+<input name=Rieger type=checkbox value=on>Carl Heinrich Riegers Kommentar<br>
+<input name=GerScof type=checkbox value=on>German Scofield 1917 Ed. (Gen-Eccl)<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/utilities/diatheke/pqa/src/index.html b/utilities/diatheke/pqa/src/index.html
new file mode 100644
index 0000000..ff7a8c4
--- /dev/null
+++ b/utilities/diatheke/pqa/src/index.html
@@ -0,0 +1,43 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<center>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ Quick lookup in KJV, NIV, NAS, & WEB:<br>
+<INPUT name=verse>
+<INPUT name=Submit type=submit value=Lookup>
+<input type=hidden name=KJV value=on>
+<input type=hidden name=NIV value=on>
+<input type=hidden name=NASB value=on>
+<input type=hidden name=WEB value=on>
+<input type=hidden name=palm value=on>
+</form><hr>
+ <a href="all.html">All Books</a><br>
+ <br><br>
+ <table border=0>
+ <tr>
+ <td width="50%" height="22"> <a href="dict.html">Dictionaries & Topics</a></td>
+ <td width="50%" height="22"> <a href="lex.html">Lexica</a></td>
+ </tr>
+ </table>
+ <br><br>
+ Bibles & Commentaries:<br>
+ <table border=0>
+ <tr>
+ <td width="33%"> <a href="english.html">English</a></td>
+ <td width="34%"> <a href="french.html">French</a></td>
+ <td width="33%"> <a href="german.html">German</a></td>
+ </tr>
+ <tr>
+ <td width="33%"> <a href="ancient.html">Ancient</a></td>
+ <td width="34%"> <a href="spanish.html">Spanish</a></td>
+ <td width="33%"> <a href="other.html">Other</a></td>
+ </tr>
+ </table>
+</center>
+</body>
+</html>
diff --git a/utilities/diatheke/pqa/src/lex.html b/utilities/diatheke/pqa/src/lex.html
new file mode 100644
index 0000000..29fe0f7
--- /dev/null
+++ b/utilities/diatheke/pqa/src/lex.html
@@ -0,0 +1,29 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Greek Lexica</b><br>
+<input name=StrongsGreek type=checkbox value=on>Strong's Greek Lexicon<br>
+<input name=Thayer type=checkbox value=on>Thayer's Greek Lexicon<br>
+</p>
+<p>
+<b>Hebrew Lexica</b><br>
+<input name=StrongsHebrew type=checkbox value=on>Strong's Hebrew Lexicon<br>
+<input name=BDB type=checkbox value=on>Brown-Driver-Briggs Hebrew Lexicon<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/utilities/diatheke/pqa/src/other.html b/utilities/diatheke/pqa/src/other.html
new file mode 100644
index 0000000..6184f94
--- /dev/null
+++ b/utilities/diatheke/pqa/src/other.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bibles</b><br>
+<input name=ALB type=checkbox value=on>Albanian Bible<br>
+<input name=CzeBKR type=checkbox value=on>Czech Bible Kralicka<br>
+<input name=CzeCEP type=checkbox value=on>Czech Ekumenicky Cesky Preklad<br>
+<input name=CzeKMS type=checkbox value=on>Czech Preklad KMS Nova Smlouva<br>
+<input name=CzeNKB type=checkbox value=on>Czech Nova Kralicka Bible<br>
+<input name=Dan type=checkbox value=on>Danish Danske Bibel<br>
+<input name=DutLEI type=checkbox value=on>Dutch Leidse Vertaling<br>
+<input name=DutLU type=checkbox value=on>Dutch Lutherse Vertaling<br>
+<input name=DutNBG type=checkbox value=on>Dutch 1951 Bijbelgenootschap Ver.<br>
+<input name=DutSVV type=checkbox value=on>Dutch Statenvertaling<br>
+<input name=EquShr type=checkbox value=on>Equadoran Shuar [NT]<br>
+<input name=FinPR type=checkbox value=on>Finish 1933 Phy~N Raamattu<br>
+<input name=HunKar type=checkbox value=on>Hungarian Karoli<br>
+<input name=IndBIS type=checkbox value=on>Bahasa Indonesia Sehari-hari (BIS)<br>
+<input name=IndTB type=checkbox value=on>Indonesian Terjemahan Baru (TB)<br>
+<input name=ItaIEP type=checkbox value=on>Italian Nuovissima Ver., San Paolo Ed.<br>
+<input name=ItaLND type=checkbox value=on>Italian 1991 La Nuova Diodati<br>
+<input name=ItaNRV type=checkbox value=on>Italian 1994 La Nuova Riveduta<br>
+<input name=Maori type=checkbox value=on>Maori Bible<br>
+<input name=Mel type=checkbox value=on>Melanesian Pidgin Bible<br>
+<input name=NorBok type=checkbox value=on>Norwegian 1930 Bokmal<br>
+<input name=NorN38 type=checkbox value=on>Norwegian 1938 Bokmal<br>
+<input name=NorNBK type=checkbox value=on>Norwegian Bibel Konkordant<br>
+<input name=NorNyn type=checkbox value=on>Norwegian 1994 Nynorsk<br>
+<input name=Norsk type=checkbox value=on>Norwegian Norsk Bible<br>
+<input name=PhiCEB type=checkbox value=on>Philippine Nga Cebuano<br>
+<input name=PolBTP type=checkbox value=on>Polish 1984 Millenium Bible, 4th Ed.<br>
+<input name=PorACF type=checkbox value=on>Portuguese 1995 Joao Ferreira<br>
+<input name=PorBRP type=checkbox value=on>Portuguese 1994 Almeida Biblia<br>
+<input name=RomCor type=checkbox value=on>Romanian Cornilescu Ver.<br>
+<input name=Swahili type=checkbox value=on>Swahili New Testament [NT]<br>
+<input name=SweSVE type=checkbox value=on>Swedish 1917 New Testament [NT]<br>
+<input name=Turkish type=checkbox value=on>Turkish New Testament [NT]<br>
+<input name=Uma type=checkbox value=on>Uma New Testament [NT]<br>
+<input name=Viet type=checkbox value=on>Vietnamese 1934 Bible<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/utilities/diatheke/pqa/src/spanish.html b/utilities/diatheke/pqa/src/spanish.html
new file mode 100644
index 0000000..e848003
--- /dev/null
+++ b/utilities/diatheke/pqa/src/spanish.html
@@ -0,0 +1,29 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bibles</b><br>
+<input name=SpaLBA type=checkbox value=on>Spanish La Biblia de Las Americas (LBA)<br>
+<input name=SpaRV type=checkbox value=on>Spanish Reina-Valera<br>
+<input name=SpaRV60 type=checkbox value=on>Spanish 1960 Reina-Valera Revised<br>
+<input name=SpaRV95 type=checkbox value=on>Spanish 1995 Reina-Valera Update<br>
+<input name=SpaRVA type=checkbox value=on>Spanish Ver. Reina-Valera Actualizada<br>
+<input name=SpaSEV type=checkbox value=on>Spanish 1569 Ver. Antigua<br>
+<input name=SpaVNT type=checkbox value=on>Spanish 1858 Valera[NT]<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/utilities/diatheke/soap/sapouni.cgi b/utilities/diatheke/soap/sapouni.cgi
new file mode 100755
index 0000000..24df769
--- /dev/null
+++ b/utilities/diatheke/soap/sapouni.cgi
@@ -0,0 +1,97 @@
+#!/usr/bin/perl
+
+#version 1.0
+
+package sapouni;
+$sapouni = "nice /usr/bin/diatheke"; # location of diatheke command line program -- if you are using a MS Windows server, you might need to remove the "nice"
+
+$sword_path = "/home/sword"; # SWORD_PATH environment variable you want to use
+$maxverses = 0; # maximum number of verses diatheke will return per query (prevents people from asking for Gen1:1-Rev22:21; 0 for unlim.)
+$defversion = "KJV"; # book to query when none is selected, but a verse/search is entered
+$deflocale = "abbr"; # this is just the default for cases where user has not selected a locale and his browser does not reveal one -- you can also set locale using locael=<locale> in the GET URL
+
+
+###############################################################################
+## You should not need to edit anything below this line.
+## Unless you want to modify functionality of course. :)
+###############################################################################
+
+$ENV{'SWORD_PATH'} = $sword_path;
+
+use SOAP::Transport::HTTP;
+
+SOAP::Transport::HTTP::CGI
+ -> dispatch_to('sapouni')
+ -> handle;
+
+package sapouni;
+
+sub biblequery {
+ my ($class, $books, $key, $options, $encoding, $markup, $searchtype, $locale, $script, $max) = @_;
+
+ if ($key eq "") {
+ $key = "Jn 3:16";
+ }
+
+ @booklist = split ' ', $books;
+
+ $n = scalar(@booklist);
+ if ($n == 0) {
+ @booklist[0] = $defversion;
+ $n++;
+ }
+
+ $query = "";
+
+ if ($options ne "") {
+ $query .= " -o \"$options\"";
+ }
+
+ if ($encoding ne "") {
+ $query .= " -e \"$encoding\"";
+ }
+ else {
+ $query .= " -e UTF8";
+ }
+
+ if ($markup ne "") {
+ $query .= " -f \"$markup\"";
+ }
+ else {
+ $query .= " -f ThML";
+ }
+
+ if ($searchtype ne "") {
+ $query .= " -s \"$searchtype\"";
+ }
+
+ if ($locale ne "") {
+ $query .= " -l \"$locale\"";
+ }
+ else {
+ $query .= " -l $deflocale";
+ }
+
+ if ($script ne "") {
+ $query .= " -t \"$script\"";
+ }
+
+ if ($max ne "" && $max ne 0) {
+ $query .= " -m \"$max\"";
+ }
+
+ $rval = "";
+ for ($i = 0; $i < $n; $i++) {
+ $line = "$sapouni $query -b $booklist[$i] -k \"$key\" 2> /dev/null";
+
+ # uncomment to print the command line send to Diatheke (for debugging)
+ # $rval .= "$line\n";
+
+ $line = `$line`;
+ chomp($line);
+
+ $rval .= "$line\n";
+ }
+
+ return "$rval";
+}
diff --git a/utilities/diatheke/soap/soapatheke.pl b/utilities/diatheke/soap/soapatheke.pl
new file mode 100755
index 0000000..e3f88ed
--- /dev/null
+++ b/utilities/diatheke/soap/soapatheke.pl
@@ -0,0 +1,16 @@
+#!/usr/bin/perl
+
+## This is a test app and has no other purpose.
+
+use SOAP::Lite;
+
+my ($books, $key, $options, $encoding, $markup, $searchtype, $locale, $script, $max) = @ARGV;
+
+# uncomment to see parameters being passed to the SOAP server (for debugging)
+# print "$books\n$key\n$options\n$encoding\n$markup\n$searchtype\n$locale\n$script\n$max\n";
+
+print SOAP::Lite
+ -> uri('http://bible.gotjesus.org/sapouni')
+ -> proxy('http://bible.gotjesus.org/cgi-bin/sapouni.cgi')
+ -> biblequery($books, $key, $options, $encoding, $markup, $searchtype, $locale, $script, $max)
+ -> result;
diff --git a/utilities/diatheke/tcl/biblebot-diatheke.tcl b/utilities/diatheke/tcl/biblebot-diatheke.tcl
new file mode 100644
index 0000000..1fea379
--- /dev/null
+++ b/utilities/diatheke/tcl/biblebot-diatheke.tcl
@@ -0,0 +1,2131 @@
+# Diatheke/Tcl 3.0 by Chris Little <chrislit@gotjesus.org>
+# Based on code schema of <cking@acy.digex.net>
+
+# Copyright 1999 by Chris Little
+# Licensed under GNU General Public License (GPL)
+# see accompanying LICENSE file for license details
+
+# This script is intended for use with libraries and modules from
+# the SWORD Project, available at http://www.crosswire.org/
+#
+# To install Diatheke/Tcl, install an eggdrop IRC bot, copy the
+# Diatheke/Tcl .tcl file to your eggdrop scripts directory, and
+# add a line to the end of your bot startup script to load the
+# Diatheke/Tcl script. This script has been tested with eggdrop 1.3.23
+# but should function fine in later versions.
+#
+# This is script assumes you have every single SWORD module installed
+# that was available at the time of release. Since you probably do not,
+# remove all modules listed in the pub_books function that you do not
+# have installed to hide them from end-users.
+#
+# The !history command only works if you have LOGGING turned on in
+# diatheke (the command line C program). This command is commented out
+# of the help function and must be uncommented to make it show up for
+# end-users.
+#
+# When you get the script loaded, type !biblehelp in a channel where
+# the bot is present and it will give you a full list of commands.
+# More commands will appear to you depending upon which mode the bot is
+# in and whether you are an op on the bot or voiced in the channel.
+
+set diaver 4.0
+
+#modify this to reflect actual location of diatheke and dict binaries
+set diatheke "/usr/bin/diatheke"
+set dict "/usr/bin/dict"
+
+proc publookupverse {vlookup} {
+ global botnick chan bibver diatheke
+
+ set arg "-b"
+ set n [string first "@" $vlookup]
+ if {$n > -1 && $n < 2} {
+ append arg n
+ }
+
+ set n [string first "#" $vlookup]
+ if {$n > -1 && $n < 2} {
+ append arg f
+ }
+ set vlookup [string trimleft $vlookup "#"]
+ set vlookup [string trimleft $vlookup "@"]
+ set vlookup [string trimleft $vlookup "#"]
+
+ catch {exec $diatheke -f plaintext -o $arg -b $bibver -k "$vlookup" >& /tmp/fooout.$botnick}
+ catch {set foofile [open /tmp/fooout.$botnick]}
+ while {[gets $foofile fooverse] >= 0} {
+ set len [string length $fooverse]
+ set i 0
+ set j 255
+ while {$j < $len} {
+ if {[regexp ">" $fooverse]} {
+ while {[string index $fooverse $j] != ">" && [string index $fooverse $j] != "\n"} {set j [expr $j - 1]}
+ } else {
+ while {[string index $fooverse $j] != " " && [string index $fooverse $j] != "\n"} {set j [expr $j - 1]}
+ }
+ set foo2 [string range $fooverse $i $j]
+ set foo2 [string trim $foo2]
+ regsub -all -nocase {(<FI>|<CM>|<FB>)} $foo2 {} foo2
+ regsub -all {<RF>} $foo2 {(footnote: } foo2
+ regsub -all {<Rf>} $foo2 {)} foo2
+ putmsg $chan "$foo2"
+ set i [expr $j + 1]
+ set j [expr $j + 256]
+ if {$j > $len} {set j $len}
+ }
+ set foo2 [string range $fooverse $i end]
+ set foo2 [string trim $foo2]
+ regsub -all -nocase {(<FI>|<CM>|<FB>)} $foo2 {} foo2
+ regsub -all {<RF>} $foo2 {(footnote: } foo2
+ regsub -all {<Rf>} $foo2 {)} foo2
+ putmsg $chan "$foo2"
+ }
+
+ catch {close $foofile}
+ exec rm /tmp/fooout.$botnick
+ return 1
+}
+
+
+proc pub_lookup {nick uhost hand channel arg} {
+ global von chan bibver
+ set chan $channel
+ if {$von==0} {
+ putmsg $nick "Verse display is currently off."
+ return 0
+ }
+ if {($von==2) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putmsg $nick "Only ops can display verses at this time."
+ return 0
+ }
+
+ publookupverse $arg
+
+}
+
+bind pub - !kjv setver_kjv
+bind pub - !english setver_kjv
+
+proc setver_kjv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver KJV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+
+bind pub - !niv setver_niv
+
+proc setver_niv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NIV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !dr setver_dr
+bind pub - !douayrheims setver_dr
+bind pub - !dre setver_dr
+
+proc setver_dr {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DR
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nas setver_nasb
+bind pub - !nasb setver_nasb
+
+proc setver_nasb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NASB
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !hnv setver_hnv
+
+proc setver_hnv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver HNV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !web setver_web
+
+proc setver_web {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WEB
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !akjv setver_akjv
+
+proc setver_akjv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver AKJV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !bbe setver_bbe
+
+proc setver_bbe {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver BBE
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !webster setver_webster
+
+proc setver_webster {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Websters
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !jbc setver_jbc
+
+proc setver_jbc {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ORTHJBC
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !rva setver_rva
+bind pub - !spanish setver_rva
+
+proc setver_rva {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaRVA
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lsg setver_lsg
+bind pub - !french setver_lsg
+
+proc setver_lsg {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreLSG
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !bis setver_bis
+bind pub - !indonesian setver_bis
+
+proc setver_bis {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver IndBIS
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !tb setver_tb
+
+proc setver_tb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver IndTB
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sve setver_sve
+bind pub - !swedish setver_sve
+
+proc setver_sve {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SweSve
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !vnt setver_vnt
+
+proc setver_vnt {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaVNT
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !asv setver_asv
+
+proc setver_asv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ASV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !rsv setver_rsv
+
+proc setver_rsv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RSV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !alt setver_alt
+
+proc setver_alt {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ALT
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !dby setver_dby
+bind pub - !darby setver_dby
+
+proc setver_dby {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Darby
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !pr setver_pr
+bind pub - !finnish setver_pr
+
+proc setver_pr {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FinPR
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lsg setver_lsg
+bind pub - !french setver_lsg
+
+proc setver_lsg {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreLSG
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lut setver_lut
+bind pub - !luther setver_lut
+bind pub - !german setver_lut
+
+proc setver_lut {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerLut
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sch setver_sch
+
+proc setver_sch {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerSch
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+
+bind pub - !kar setver_kar
+bind pub - !hungarian setver_kar
+
+proc setver_kar {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver HunKar
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nrv setver_nrv
+bind pub - !italian setver_nrv
+
+proc setver_nrv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ItaNRV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !jps setver_jps
+
+proc setver_jps {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver JPS
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !brp setver_brp
+bind pub - !portuguese setver_brp
+
+proc setver_brp {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver PorBRP
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sev setver_sev
+
+proc setver_sev {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaSEV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !swahili setver_swahili
+
+proc setver_swahili {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Swahili
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !wey setver_wey
+bind pub - !weymouth setver_wey
+
+proc setver_wey {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Weymouth
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ylt setver_ylt
+
+proc setver_ylt {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver YLT
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !alb setver_alb
+bind pub - !albanian setver_alb
+
+proc setver_alb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Alb
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !gnpu setver_gnpu
+bind pub - !chinese setver_gnpu
+
+proc setver_gnpu {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ChiGNPU
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !dan setver_dan
+bind pub - !danish setver_dan
+
+proc setver_dan {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Dan
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lei setver_lei
+bind pub - !dutch setver_lei
+
+proc setver_lei {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DutLEI
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lu setver_lu
+
+proc setver_lu {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DutLU
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !svv setver_svv
+
+proc setver_svv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DutSVV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !shr setver_shr
+bind pub - !equadoran setver_shr
+
+proc setver_shr {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver EquShr
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !crl setver_crl
+bind pub - !creole setver_crl
+
+proc setver_crl {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreCrl
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !fredrb setver_fredrb
+
+proc setver_fredrb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreDrb
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ben setver_ben
+
+proc setver_ben {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerBen
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !elb setver_elb
+
+proc setver_elb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerElb
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !kj21 setver_kj21
+
+proc setver_kj21 {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver KJ21
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !litv setver_litv
+
+proc setver_litv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LITV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lo setver_lo
+
+proc setver_lo {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LO
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !maori setver_maori
+
+proc setver_maori {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Maori
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !mkjv setver_mkjv
+
+proc setver_mkjv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver MKJV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nkj setver_nkjv
+bind pub - !nkjv setver_nkjv
+
+proc setver_nkjv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NKJV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ceb setver_ceb
+bind pub - !filipino setver_ceb
+
+proc setver_ceb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver PhiCeb
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !rwebster setver_rwebster
+
+proc setver_rwebster {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RWebster
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !rv setver_rv
+
+proc setver_rv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaRV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !turkish setver_turkish
+
+proc setver_turkish {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Turkish
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !uma setver_uma
+
+proc setver_uma {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Uma
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !vulgate setver_vulgate
+bind pub - !vulg setver_vulgate
+bind pub - !latin setver_vulgate
+
+proc setver_vulgate {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Vulgate
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nasb95 setver_nasb95
+bind pub - !nas95 setver_nasb95
+bind pub - !nau setver_nasb95
+
+proc setver_nasb95 {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NASB95
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nivbr setver_nivbr
+bind pub - !nib setver_nivbr
+
+proc setver_nivbr {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NIVBr
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nlt setver_nlt
+
+proc setver_nlt {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NLT
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nrsv setver_nrsv
+
+proc setver_nrsv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NRSV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !neg setver_neg
+
+proc setver_neg {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreNEG
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lnd setver_lnd
+
+proc setver_lnd {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ItaLND
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !mel setver_mel
+bind pub - !melanesian setver_mel
+
+proc setver_mel {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Mel
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !norsk setver_norsk
+
+proc setver_norsk {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Norsk
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !cor setver_cor
+
+proc setver_cor {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RomCor
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lba setver_lba
+
+proc setver_lba {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaLBA
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !byz setver_byz
+
+proc setver_byz {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ByzX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lxx setver_lxx
+
+proc setver_lxx {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LXXX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !na26 setver_na26
+bind pub - !greek setver_na26
+
+proc setver_na26 {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NA26X
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !scrivner setver_scrivner
+
+proc setver_scrivner {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ScrivnerX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !stephanus setver_stephanus
+
+proc setver_stephanus {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver StephanusX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !tischendorf setver_tisch
+bind pub - !tisch setver_tisch
+
+proc setver_tisch {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver TischX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !wh setver_wh
+
+proc setver_wh {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WHX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !whnu setver_whnu
+
+proc setver_whnu {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WHNUX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grkbyz setver_grkbyz
+
+proc setver_grkbyz {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Byz
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grklxx setver_grklxx
+
+proc setver_grklxx {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LXX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grkna26 setver_grkna26
+bind pub - !grkgreek setver_na26
+
+proc setver_grkna26 {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NA26
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grkscrivner setver_grkscrivner
+
+proc setver_grkscrivner {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Scrivner
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grkstephanus setver_grkstephanus
+
+proc setver_grkstephanus {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Stephanus
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grktischendorf setver_grktisch
+bind pub - !grktisch setver_grktisch
+
+proc setver_grktisch {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Tisch
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grkwh setver_grkwh
+
+proc setver_grkwh {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WH
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grkwhnu setver_grkwhnu
+
+proc setver_grkwhnu {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WHNU
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !bhs setver_bhs
+bind pub - !hebrew setver_bhs
+
+proc setver_bhs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver BHS
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !rst setver_rst
+
+proc setver_rst {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RST
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ukrainian setver_ukrainian
+
+proc setver_ukrainian {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Ukrainian
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !arabic setver_arabic
+
+proc setver_arabic {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Arabic
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !n27u4 setver_n27u4
+bind pub - !nu setver_n27u4
+bind pub - !bgreek setver_n27u4
+
+proc setver_n27u4 {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver N27U4
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !umgreek setver_ukgreek
+
+proc setver_umgreek {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver UMGreek
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !viet setver_viet
+bind pub - !vietnamese setver_viet
+
+proc setver_viet {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Viet
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+
+# ----------------------------------------------------------------------
+
+proc pubsearchword {vlookup} {
+ global botnick chan bibver diatheke
+ catch {exec $diatheke -s $bibver "$vlookup" >& /tmp/fooout.$botnick}
+ catch {set foofile [open /tmp/fooout.$botnick]}
+
+ while {[gets $foofile fooverse] >= 0} {
+ set len [string length $fooverse]
+ set i 0
+ set j 72
+ while {$j < $len} {
+ while {[string index $fooverse $j] != ";" && [string index $fooverse $j] != ")" && [string index $fooverse $j] != "\n"} {set j [expr $j + 1]}
+ set foo2 [string range $fooverse $i $j]
+ set foo2 [string trim $foo2]
+ putmsg $chan "$foo2"
+ set i [expr $j + 1]
+ set j [expr $j + 73]
+ if {$j > $len} {set j $len}
+ }
+ set foo2 [string range $fooverse $i end]
+ set foo2 [string trim $foo2]
+ putmsg $chan "$foo2"
+ }
+ catch {close $foofile}
+
+ putmsg $chan "$fooverse"
+ exec rm /tmp/fooout.$botnick
+ return 1
+}
+
+
+proc pub_lookups {nick uhost hand channel arg} {
+ global von chan bibver
+ set chan $channel
+ if {$von==0} {
+ putmsg $nick "Verse display is currently off."
+ return 0
+ }
+ if {($von==3) && (![matchattr $hand 3]) && (![matchattr $hand o]) && (![isvoice $nick $chan])} {
+ putmsg $nick "Sorry, only ops and voiced users can do searches right now."
+ return 0
+ }
+ if {($von==2) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putmsg $nick "Sorry, only ops can do searches right now."
+ return 0
+ }
+
+ pubsearchword $arg
+}
+
+bind pub - !skjv setver_kjvs
+bind pub - !senglish setver_kjvs
+
+proc setver_kjvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver KJV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+
+bind pub - !sniv setver_nivs
+
+proc setver_nivs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NIV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sdr setver_drs
+bind pub - !sdouayrheims setver_drs
+bind pub - !sdre setver_drs
+
+proc setver_drs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DR
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snas setver_nasbs
+bind pub - !snasb setver_nasbs
+
+proc setver_nasbs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NASB
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !shnv setver_hnvs
+
+proc setver_hnvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver HNV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sweb setver_webs
+
+proc setver_webs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WEB
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sbbe setver_bbes
+
+proc setver_bbes {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver BBE
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !swebster setver_websters
+
+proc setver_websters {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Websters
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sjbc setver_jbcs
+
+proc setver_jbcs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ORTHJBC
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !srva setver_rvas
+bind pub - !sspanish setver_rvas
+
+proc setver_rvas {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaRVA
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sbis setver_biss
+bind pub - !sindonesian setver_biss
+
+proc setver_biss {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver IndBIS
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !stb setver_tbs
+
+proc setver_tbs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver IndTB
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ssve setver_sves
+bind pub - !sswedish setver_sves
+
+proc setver_sves {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SweSve
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !svnt setver_vnts
+
+proc setver_vnts {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaVNT
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sasv setver_asvs
+
+proc setver_asvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ASV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !srsv setver_rsvs
+
+proc setver_rsvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RSV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !salt setver_alts
+
+proc setver_alts {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ALT
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sdby setver_dbys
+bind pub - !sdarby setver_dbys
+
+proc setver_dbys {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Darby
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !spr setver_prs
+bind pub - !sfinnish setver_prs
+
+proc setver_prs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FinPR
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slsg setver_lsgs
+bind pub - !sfrench setver_lsgs
+
+proc setver_lsgs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreLSG
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slut setver_luts
+bind pub - !sluther setver_luts
+bind pub - !sgerman setver_luts
+
+proc setver_luts {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerLut
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ssch setver_schs
+
+proc setver_schs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerSch
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+
+bind pub - !skar setver_kars
+bind pub - !shungarian setver_kars
+
+proc setver_kars {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver HunKar
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snrv setver_nrvs
+bind pub - !sitalian setver_nrvs
+
+proc setver_nrvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ItaNRV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sjps setver_jpss
+
+proc setver_jpss {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver JPS
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sbrp setver_brps
+bind pub - !sportuguese setver_brps
+
+proc setver_brps {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver PorBRP
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ssev setver_sevs
+
+proc setver_sevs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaSEV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sswahili setver_swahilis
+
+proc setver_swahilis {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Swahili
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !swey setver_weys
+bind pub - !sweymouth setver_weys
+
+proc setver_weys {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Weymouth
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sylt setver_ylts
+
+proc setver_ylts {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver YLT
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !salb setver_albs
+bind pub - !salbanian setver_albs
+
+proc setver_albs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ALB
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgnpu setver_gnpus
+bind pub - !schinese setver_gnpus
+
+proc setver_gnpus {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ChiGNPU
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sdan setver_dans
+bind pub - !sdanish setver_dans
+
+proc setver_dans {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Dan
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slei setver_leis
+bind pub - !sdutch setver_leis
+
+proc setver_leis {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DutLEI
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slu setver_lus
+
+proc setver_lus {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DutLU
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ssvv setver_svvs
+
+proc setver_svvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DutSVV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sshr setver_shrs
+bind pub - !sequadoran setver_shrs
+
+proc setver_shrs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver EquShr
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !scrl setver_crls
+bind pub - !screole setver_crls
+
+proc setver_crls {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreCrl
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sfredrb setver_fredrbs
+
+proc setver_fredrbs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreDrb
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sben setver_bens
+
+proc setver_bens {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver BerBen
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !selb setver_elbs
+
+proc setver_elbs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerElb
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !skj21 setver_kj21s
+
+proc setver_kj21s {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver KJ21
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slitv setver_litvs
+
+proc setver_litvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LITV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slo setver_los
+
+proc setver_los {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LO
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !smaori setver_maoris
+
+proc setver_maoris {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Mao
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !smkjv setver_mkjvs
+
+proc setver_mkjvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver MKJV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snkjv setver_nkjvs
+
+proc setver_nkjvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NKJV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sceb setver_cebs
+bind pub - !sfilipino setver_cebs
+
+proc setver_cebs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver PhiCeb
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !srwebster setver_rwebsters
+
+proc setver_rwebsters {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RWebster
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !srv setver_rvs
+
+proc setver_rvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaRV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sturkish setver_turkishs
+
+proc setver_turkishs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Turkish
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !suma setver_umas
+
+proc setver_umas {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Uma
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !svulgate setver_vulgates
+bind pub - !svulg setver_vulgates
+bind pub - !slatin setver_vulgates
+
+proc setver_vulgates {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Vulgate
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snasb95 setver_nasb95s
+bind pub - !snas95 setver_nasb95s
+bind pub - !snau setver_nasb95s
+
+proc setver_nasb95s {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NASB95
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snivbr setver_nivbrs
+bind pub - !snib setver_nivbrs
+
+proc setver_nivbrs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NIVBr
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snlt setver_nlts
+
+proc setver_nlts {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NLT
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snrsv setver_nrsvs
+
+proc setver_nrsvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NRSV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sneg setver_negs
+
+proc setver_negs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreNEG
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slnd setver_lnds
+
+proc setver_lnds {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ItaLND
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !smel setver_mels
+bind pub - !smelanesian setver_mels
+
+proc setver_mels {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Mel
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snorsk setver_norsks
+
+proc setver_norsks {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Norsk
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !scor setver_cors
+
+proc setver_cors {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RomCor
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slba setver_lbas
+
+proc setver_lbas {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaLBA
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sbyz setver_byzs
+
+proc setver_byzs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ByzX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slxx setver_lxxs
+
+proc setver_lxxs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LXXX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sna26 setver_na26s
+bind pub - !sgreek setver_na26s
+
+proc setver_na26s {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NA26X
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sscrivner setver_scrivners
+
+proc setver_scrivners {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ScrivnerX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sstephanus setver_stephanuss
+
+proc setver_stephanuss {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver StephanusX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !stischendorf setver_tischs
+bind pub - !stisch setver_tischs
+
+proc setver_tischs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver TischX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !swh setver_whs
+
+proc setver_whs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WHX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !swhnu setver_whnus
+
+proc setver_whnus {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WHNUX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrkbyz setver_grkbyzs
+
+proc setver_grkbyzs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Byz
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrklxx setver_grklxxs
+
+proc setver_grklxxs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LXX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrkna26 setver_grkna26s
+bind pub - !sgrkgreek setver_na26s
+
+proc setver_grkna26s {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NA26
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrkscrivner setver_grkscrivners
+
+proc setver_grkscrivners {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Scrivner
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrkstephanus setver_grkstephanuss
+
+proc setver_grkstephanuss {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Stephanus
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrktischendorf setver_grktischs
+bind pub - !sgrktisch setver_grktischs
+
+proc setver_grktischs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Tisch
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrkwh setver_grkwhs
+
+proc setver_grkwhs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WH
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrkwhnu setver_grkwhnus
+
+proc setver_grkwhnus {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WHNU
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sbhs setver_bhss
+bind pub - !shebrew setver_bhss
+
+proc setver_bhss {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver BHS
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !srst setver_rsts
+
+proc setver_rsts {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RST
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sukrainian setver_ukrainians
+
+proc setver_ukrainians {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Ukrainian
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sarabic setver_arabics
+
+proc setver_arabics {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Arabic
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sn27u4 setver_n27u4s
+bind pub - !snu setver_n27u4s
+bind pub - !sbgreek setver_n27u4s
+
+proc setver_n27u4s {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver N27U4
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sumgreek setver_ukgreeks
+
+proc setver_umgreeks {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver UMGreek
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sviet setver_viets
+bind pub - !svietnamese setver_viets
+
+proc setver_viets {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Viet
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+#----------------------------------------------------------------------
+
+
+proc publookupdict {vlookup} {
+ global botnick chan bibver diatheke
+ catch {exec $diatheke -f plaintext -b $bibver -k "$vlookup" >& /tmp/fooout.$botnick}
+ catch {set foofile [open /tmp/fooout.$botnick]}
+
+ while {[gets $foofile fooverse] >= 0} {
+ putmsg $chan "$fooverse"
+ }
+ catch {close $foofile}
+ # exec rm /tmp/fooout.$botnick
+ return 1
+}
+
+
+proc pub_lookupd {nick uhost hand channel arg} {
+ global von chan bibver
+ set chan $channel
+ if {$von==0} {
+ putmsg $nick "Verse display is currently off."
+ return 0
+ }
+ if {($von==3) && (![matchattr $hand 3]) && (![matchattr $hand o]) && (![isvoice $nick $chan])} {
+ putmsg $nick "Sorry, only ops and voiced users can use dictionaries and indices right now."
+ return 0
+ }
+ if {($von==2) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putmsg $nick "Sorry, only ops can use dictionaries and indices right now."
+ return 0
+ }
+
+ publookupdict $arg
+}
+
+bind pub - !losung setver_losung
+
+proc setver_losung {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver losung_en_99
+ set arg [exec date "+%m.%d"]
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !vines setver_vines
+
+proc setver_vines {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Vines
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !naves setver_naves
+
+proc setver_naves {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Naves
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !eastons setver_eastons
+
+proc setver_eastons {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Eastons
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !strheb setver_strheb
+
+proc setver_strheb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver StrongsHebrew
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !strgrk setver_strgrk
+
+proc setver_strgrk {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver StrongsGreek
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !bdb setver_bdb
+
+proc setver_bdb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver BDB
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !thayer setver_thayer
+
+proc setver_thayer {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Thayer
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !hitch setver_hitch
+
+proc setver_hitch {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Hitch
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !isbe setver_isbe
+
+proc setver_isbe {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ISBE
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !smiths setver_smiths
+
+proc setver_smiths {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Smiths
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !torrey setver_torrey
+
+proc setver_torrey {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Torrey
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+#----------------------------------------------------------------------
+
+proc publookupcomm {vlookup} {
+ global botnick chan bibver diatheke
+ catch {exec $diatheke -c $bibver "$vlookup" >& /tmp/fooout.$botnick}
+ catch {set foofile [open /tmp/fooout.$botnick]}
+ while {[gets $foofile fooverse] >= 0} {
+ set len [string length $fooverse]
+ set i 0
+ set j 72
+ while {$j < $len} {
+ while {[string index $fooverse $j] != " " && [string index $fooverse $j] != "\n"} {set j [expr $j + 1]}
+ set foo2 [string range $fooverse $i $j]
+ set foo2 [string trim $foo2]
+ regsub -all -nocase {(<FI>|<CM>|<FB>)} $foo2 {} foo2
+ regsub -all {<RF>} $foo2 {(footnote: } foo2
+ regsub -all {<Rf>} $foo2 {)} foo2
+ putmsg $chan "$foo2"
+ set i [expr $j + 1]
+ set j [expr $j + 73]
+ if {$j > $len} {set j $len}
+ }
+ set foo2 [string range $fooverse $i end]
+ set foo2 [string trim $foo2]
+ regsub -all -nocase {(<FI>|<CM>|<FB>)} $foo2 {} foo2
+ regsub -all {<RF>} $foo2 {(footnote: } foo2
+ regsub -all {<Rf>} $foo2 {)} foo2
+ putmsg $chan "$foo2"
+ }
+ catch {close $foofile}
+ exec rm /tmp/fooout.$botnick
+ return 1
+}
+
+
+proc pub_lookupc {nick uhost hand channel arg} {
+ global von chan bibver
+ set chan $channel
+ if {$von==0} {
+ putmsg $nick "Verse display is currently off."
+ return 0
+ }
+ if {($von==3) && (![matchattr $hand 3]) && (![matchattr $hand o]) && (![isvoice $nick $chan])} {
+ putmsg $nick "Sorry, only ops and voiced users can use commentaries right now."
+ return 0
+ }
+ if {($von==2) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putmsg $nick "Sorry, only ops can use commentaries right now."
+ return 0
+ }
+
+ publookupcomm $arg
+}
+
+bind pub - !rwp setver_rwp
+
+proc setver_rwp {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RWP
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !mhc setver_mhc
+
+proc setver_mhc {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver MHC
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !dtn setver_dtn
+
+proc setver_dtn {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DTN
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !family setver_family
+
+proc setver_family {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Family
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !geneva setver_geneva
+
+proc setver_geneva {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Geneva
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !gill setver_gill
+
+proc setver_gill {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Gill
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !pnt setver_pnt
+
+proc setver_pnt {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver PNT
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !tfg setver_tfg
+
+proc setver_tfg {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver TFG
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !tsk setver_tsk
+
+proc setver_tsk {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver TSK
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !wesley setver_wesley
+
+proc setver_wesley {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Wesley
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+#----------------------------------------------------------------------
+
+bind pub - !dict dictlookup
+
+proc dictlookup {nick uhost hand channel arg} {
+ global botnick von dict
+
+ if {$von==0} {
+ putmsg $nick "Verse display is currently off."
+ return 0
+ }
+ if {($von==3) && (![matchattr $hand 3]) && (![matchattr $hand o]) && (![isvoice $nick $channel])} {
+ putmsg $nick "Sorry, only ops and voiced users can use dictionaries and indices right now."
+ return 0
+ }
+ if {($von==2) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putmsg $nick "Only ops can use dictionaries and indices right now."
+ return 0
+ }
+
+ catch {exec $dict "$arg" >& /tmp/fooout.$botnick}
+ catch {set foofile [open /tmp/fooout.$botnick]}
+ catch {set fooverse [gets $foofile]}
+ while {[gets $foofile fooverse] >= 0} {
+ set fooverse [string trim $fooverse]
+ putmsg $channel "$fooverse"
+ }
+ catch {close $foofile}
+ exec rm /tmp/fooout.$botnick
+ return 1
+}
+
+#----------------------------------------------------------------------
+
+bind pub - !biblehelp pub_help
+bind msg - biblehelp pub_help
+
+proc pub_help {nick uhost hand channel arg} {
+ global diaver
+ global von
+ putserv "NOTICE $nick :Diatheke/Tcl BibleBot version $diaver"
+
+ if {(($von==0) || ($von==2)) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putserv "NOTICE $nick :BibleBot displays are currently turned off."
+ return 1
+ }
+
+ putserv "NOTICE $nick :Supported commands:"
+ putserv "NOTICE $nick :Help, using \"!biblehelp\""
+ putserv "NOTICE $nick :Book list, using \"!books\" (it's long)"
+# Uncomment the next line if you have turned LOGGING on in diatheke to enable
+# the history function.
+# putserv "NOTICE $nick :See last 5 calls to BibleBot, using \"!history\""
+ putserv "NOTICE $nick :Check display status, using \"!status\""
+ putserv "NOTICE $nick :Bible lookups, using \"!<bible version> <book> <chapter>:<verse>\""
+ putserv "NOTICE $nick :verse ranges can be specified by adding \"-<last verse>\" to this"
+ putserv "NOTICE $nick :To turn Strong's numbers and/or footnotes on, use @ and/or # respectively before the book name. For example \"!kjv @#Gen 1:4\" will retrieve Genesis 1:3 with the Strong's numbers and footnotes associated with it."
+
+ if {($von==3) && (![matchattr $hand 3]) && (![matchattr $hand o]) && (![isvoice $nick $channel])} {
+ return 1
+ }
+
+ putserv "NOTICE $nick :Commentary lookups, using \"!<commentary> <book> <chapter>:<verse>\""
+ putserv "NOTICE $nick :Dictionary/index lookups, using \"!<dictionary> <word or number>\""
+ putserv "NOTICE $nick :Bible searches, using \"!s<bible version> <word>\""
+ putserv "NOTICE $nick :Diatheke/Tcl defaults to PHRASE search mode. To use MULTI-WORD search mode, preface your search with an @. To use REGEX mode, preface your search with a #. For example: \"!skjv @Jesus love\" will print a list of all verses in the KJV containing the words Jesus and love."
+
+ if {(![matchattr $hand 3]) && (![matchattr $hand o])} {
+ return 1
+ }
+
+ putserv "NOTICE $nick :To turn verse display off, use \"!verseoff\""
+ putserv "NOTICE $nick :To turn all displays on for all users, use \"!verseon\""
+ putserv "NOTICE $nick :To turn all displays on for ops only, use \"!verseon o\""
+ putserv "NOTICE $nick :To turn verse diaplays on for regular users and all other displays on for ops and voiced users only, use \"!verseon v\" (default)"
+}
+
+bind pub - !books pub_books
+bind msg - books pub_books
+
+proc pub_books {nick uhost hand channel arg} {
+ global von
+
+ if {(($von==0) || ($von==2)) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putserv "NOTICE $nick :BibleBot displays are currently turned off."
+ return 1
+ }
+
+ putserv "NOTICE $nick :English language Bibles (26):"
+ putserv "NOTICE $nick :Ameican Standard Version (!asv), Analytical Literal Translation (!alt), Bible in Basic English (!bbe), Darby (!dby), Douay-Rheims Bible (!dr), Green's Literal Translation (!litv), Green's Modern King James Version (!mkjv), Hebrew Names Version (!hnv), Jewish Publication Society 1917 (!jps), King James Version (!kjv), The Living Oracles NT (!lo),"
+ putserv "NOTICE $nick :New American Standard Bible (!nasb), New American Standard Bible, 95 Update (!nasb95), New International Version (!niv), New Internation Version, British Edition (!nivbr), New King James Version (!nkjv), New Living Translation (!nlt), New Revised Standard Version (!nrsv), Orthodox Jewish Brit ChadashaNT only (!jbc),"
+ putserv "NOTICE $nick :Revised Standard Version (!rsv), Revised 1833 Webster's (!rwebster), World English Bible (!web), Webster's (!webster), Weymouth NT (!wey), Young's Literal Translation (!ylt), 21st Century King James Version (!kj21)"
+ putserv "NOTICE $nick :Non-English language Bibles (39):"
+ putserv "NOTICE $nick :Albanian Bible (!alb), Chinese GNPU (!gnpu), Danish Bible (!dan), Dutch Leidse Vertaling (!lei), Dutch Lutherse Vertaling (!lu), Dutch Statemvertaling (!svv), Equadoran Shuar NT (!shr), Filipino Nga Cebuano (!ceb), Finnish Pyhz Raamattu (!pr), French Louis Segond Version (!lsg), French Haitian Creole Version (!crl), French Darby's Version (!fredrb),"
+ putserv "NOTICE $nick :French Nouvelle Edition de Geneve (!neg), German Luther Version (!lut), German Schlachter (!sch), German Bengel NT (!ben), German Elberfelder Version (!elb), Hungarian Karoli (!kar), Indonesian Bahasa Indonesia Sehari-hari (!bis), Indonesian Terjemahan Baru (!tb), Italian La Nouva Diodati (!lnd), Italian La Sacra Bibbia Nuova Riveduta (!nrv),"
+ putserv "NOTICE $nick :Maori Bible (!maori), Melanesian Pidgin Bible (!mel), Norsk Bible (!norsk), Portuguese A Biblia Sagrada Traduzida em Portugues (!brp), Spanish La Biblia de Las Americas (!lba), Spanish Reina-Valera Actualizada (!rva), Spanish Reina-Valera (!rv), Spanish Sagradas Escrituras (!sev), Spanish Valera NT only (!vnt), Swahili NT (!swahili),"
+ putserv "NOTICE $nick :Swedish 1917 Bible NT only (!sve), Turkish NT (!turkish), Uma NT (!uma)"
+ putserv "NOTICE $nick :Original Language Bibles (18): (NB, /'s divide transliterated/non-roman versions)"
+ putserv "NOTICE $nick :1991 Byzantine/Majority Text (!byz/!grkbyz), Nestle-Aland 26th/27th Ed. (!na26/!grkna26), 1894 Scrivner Textus Receptus (!scrivner/!grkscrivner), 1550 Stephanus Textus Receptus (!stephanus/!grkstephanus), Tischendorf' 8th Ed. GNT (!tisch/!grktisch), 1881 Westcott-Hort GNT (!wh/!grkwh), 1881 Westcott-Hort with NA26 alternate readings (!whnu/!grkwhnu)"
+ putserv "NOTICE $nick: Nestle-Aland 27th Ed./UBS 4th Ed. (!n27u4), Septuagint/LXX (!lxx/!grklxx), Biblia Hebraica Stuttgartensia in Hebrew font (!bhs), Jerome's Latin Vulgate (!vulg)"
+ putserv "NOTICE $nick :Non-Roman character Bibles (5):"
+ putserv "NOTICE $nick :Arabic Bible (!arabic), Russian Synodal Translation (!rst), Ukrainian Bible (!ukrainian), Unaccented Modern Greek Bible (!umgreek), Vietnamese Bible (!viet)"
+
+ if {($von==3) && (![matchattr $hand 3]) && (![matchattr $hand o]) && (![isvoice $nick $channel])} {
+ return 1
+ }
+
+ putserv "NOTICE $nick :Dictionaries & Indices (12):"
+ putserv "NOTICE $nick :Webster's Dictionary (!dict), Vine's Bible Dictionary(!vines), Easton's Bible Dictionary (!eastons), Nave's Topical Bible (!naves), Smith's Bible Dictionary (!smiths), Hitchcock's Bible Names Dictionary (!hitch), International Standard Bible Dictionary (!isbe), Torrey's New Topical Textbook (!torrey), Strong's Hebrew Bible Dictionary (!strheb), Strong's Greek Bible Dictionary (!strgrk), Brown-Driver-Briggs Hebrew Lexicon (!bdb), Thayer's Greek Lexicon (!thayer)"
+ putserv "NOTICE $nick :Commentaries (10):"
+ putserv "NOTICE $nick :Darby's Translation Notes (!dtn), Family Bible Notes (!family), Geneva Bible Translation Notes (!geneva), John Gill's Expositor (!gill), Matthew Henry's Concise (!mhc), The People's New Testament (!pnt), Robertson's Word Pictures (!rwp), The Fourfold Gospel (!tfg), Treasury of Scriptural Knowledge (!tsk), Wesley's Bible Notes (!wesley)"
+}
+
+#----------------------------------------------------------------------
+
+bind pub - !status pub_status
+bind msg - status pub_status
+
+proc pub_status {nick uhost hand channel arg} {
+ global von
+
+ if {$von==0} {
+ putserv "NOTICE $nick :All BibleBot displays are currently off."
+ } elseif {$von==1} {
+ putserv "NOTICE $nick :All BibleBot displays are currently on."
+ } elseif {$von==2} {
+ putserv "NOTICE $nick :All BibleBot displays are currently on for ops only."
+ } else {
+ putserv "NOTICE $nick :Verse displays are currently on for all users, but other BibleBot displays are currently restricted to ops and voiced users."
+ }
+ return 1
+}
+
+
+bind pub - !history pub_hist
+bind msg - history pub_hist
+
+proc pub_hist {nick uhost hand channel arg} {
+ global botnick
+ catch {exec tail -n 5 /var/log/diatheke.log >& /tmp/fooout.$botnick}
+ catch {set foofile [open /tmp/fooout.$botnick]}
+ catch {set fooverse [gets $foofile]}
+ putserv "NOTICE $nick :Last 5 calls to Diatheke/Tcl BibleBot"
+ putserv "NOTICE $nick :$fooverse"
+ while {[gets $foofile fooverse] >= 0} {
+ putserv "NOTICE $nick :$fooverse"
+ }
+ catch {close $foofile}
+ exec rm /tmp/fooout.$botnick
+ return 1
+}
+
+#---------------------------------------------------------------------
+
+proc pub_verseon {nick uhost hand channel arg} {
+ global von
+ if {![matchattr $hand 3] && ![matchattr $hand o]} {
+ return 0
+ } elseif {$arg=="v"} {
+ set von 3
+# putserv "NOTICE $nick :Long Text Display is now on for voiced only!"
+ } elseif {$arg=="o"} {
+ set von 2
+# putserv "NOTICE $nick :Verse Display is now on for ops only!"
+ } else {
+ set von 1
+# putserv "NOTICE $nick :All Display is now on!"
+ }
+ pub_status $nick $uhost $hand $channel $arg
+ return 1
+}
+bind pub - !verseon pub_verseon
+bind msg - verseon pub_verseon
+
+proc pub_verseoff {nick uhost hand channel arg} {
+ global von
+
+ if {![matchattr $hand 3] && ![matchattr $hand o]} {
+ return 0
+ }
+ set von 0
+# putserv "NOTICE $nick :Verse Display is now off!"
+ pub_status $nick $uhost $hand $channel $arg
+ return 1
+}
+bind pub - !verseoff pub_verseoff
+bind msg - verseoff pub_verseoff
+
+proc dcc_verseoff {hand idx arg} {
+ global von
+ global whovoff
+ if {![matchattr $hand 3] && ![matchattr $hand o]} {
+ return 0
+ }
+ set von 0
+ set whovoff $hand
+ return 1
+}
+bind dcc - verseoff dcc_verseoff
+
+proc dcc_verseon {hand idx arg} {
+ global von
+ if {![matchattr $hand 3] && ![matchattr $hand o]} {
+ return 0
+ }
+ elseif {$arg=="v"} {
+ set von 3
+ }
+ elseif {$arg=="o"} {
+ set von 2
+ } else {
+ set von 1
+ }
+ return 1
+}
+bind dcc - verseon dcc_verseon
+
+#sets default von mode
+set von 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/utilities/diatheke/thmlcgi.cpp b/utilities/diatheke/thmlcgi.cpp
new file mode 100644
index 0000000..5ad180d
--- /dev/null
+++ b/utilities/diatheke/thmlcgi.cpp
@@ -0,0 +1,193 @@
+/***************************************************************************
+ thmlcgi.cpp - ThML to Diatheke/CGI format
+ -------------------
+ begin : 2001-11-12
+ copyright : 2001 by CrossWire Bible Society
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <stdlib.h>
+#include <string.h>
+#include "thmlcgi.h"
+#include <utilstr.h>
+
+SWORD_NAMESPACE_START
+
+ThMLCGI::ThMLCGI() {
+ setTokenStart("<");
+ setTokenEnd(">");
+
+ setTokenCaseSensitive(true);
+
+ addTokenSubstitute("note", " <font color=\"#008000\"><small>(");
+ addTokenSubstitute("/note", ")</small></font> ");
+}
+
+
+bool ThMLCGI::handleToken(SWBuf &buf, const char *token, DualStringMap &userData) {
+ unsigned long i;
+ if (!substituteToken(buf, token)) {
+ // manually process if it wasn't a simple substitution
+ if (!strncmp(token, "sync ", 5)) {
+ buf += "<a href=\"!DIATHEKE_URL!";
+ char* pbuf;
+ char typ[32]; typ[0] = 0;
+ char val[32]; val[0] = 0;
+ char cls[32]; cls[0] = 0;
+ for (unsigned int j = 5; j < strlen(token); j++) {
+ if (!strncmp(token+j, "type=\"", 6)) {
+ pbuf = typ;
+ j += 6;
+ for (;token[j] != '\"'; j++)
+ *(pbuf)++ = token[j];
+ *(pbuf) = 0;
+ }
+ else if (!strncmp(token+j, "value=\"", 7)) {
+ pbuf = val;
+ j += 7;
+ for (;token[j] != '\"'; j++)
+ *(pbuf)++ = token[j];
+ *(pbuf) = 0;
+ }
+ else if (!strncmp(token+j, "class=\"", 7)) {
+ pbuf = cls;
+ j += 7;
+ for (;token[j] != '\"'; j++)
+ *(pbuf)++ = token[j];
+ *(pbuf) = 0;
+ }
+ }
+ if (*cls && *val) {
+ buf.appendFormatted("%s=on&verse=%s", cls, val);
+ }
+ else if (*typ && *val) {
+ if (!strnicmp(typ, "Strongs", 7)) {
+ if (*val == 'G') {
+ buf.appendFormatted("StrongsGreek=on&verse=%s", val + 1);
+ }
+ else if (*val == 'H') {
+ buf.appendFormatted("StrongsHebrew=on&verse=%s", val + 1);
+ }
+ }
+
+ else if (!strnicmp(typ, "Morph", 5)) {
+ if (*val == 'G') {
+ buf.appendFormatted("StrongsGreek=on&verse=%s", val + 1);
+ }
+ else if (*val == 'H') {
+ buf.appendFormatted("StrongsHebrew=on&verse=%s", val + 1);
+ }
+ else {
+ buf.appendFormatted("Packard=on&verse=%s", val);
+ }
+ }
+ else {
+ buf.appendFormatted("%s=on&verse=%s", typ, val);
+ }
+ }
+ buf += "\">";
+
+ if (*val) {
+ buf += val;
+ }
+ buf += "</a>";
+ }
+
+ else if (!strncmp(token, "scripRef p", 10) || !strncmp(token, "scripRef v", 10)) {
+ userData["inscriptRef"] = "true";
+ buf += "<a href=\"!DIATHEKE_URL!";
+ for (i = 9; i < strlen(token); i++) {
+ if (!strncmp(token+i, "version=\"", 9)) {
+ i += 9;
+ for (;token[i] != '\"'; i++)
+ buf += token[i];
+ buf += "=on&";
+ }
+ if (!strncmp(token+i, "passage=\"", 9)) {
+ i += 9;
+ buf += "verse=";
+ for (;token[i] != '\"'; i++) {
+ if (token[i] == ' ') buf += '+';
+ else buf += token[i];
+ }
+ buf += '&';
+ }
+ }
+ buf += "\">";
+ }
+
+ // we're starting a scripRef like "<scripRef>John 3:16</scripRef>"
+ else if (!strcmp(token, "scripRef")) {
+ userData["inscriptRef"] = "false";
+ // let's stop text from going to output
+ userData["suspendTextPassThru"] = "true";
+ }
+
+ // we've ended a scripRef
+ else if (!strcmp(token, "/scripRef")) {
+ if (userData["inscriptRef"] == "true") { // like "<scripRef passage="John 3:16">John 3:16</scripRef>"
+ userData["inscriptRef"] = "false";
+ buf += "</a>";
+ }
+
+ else { // like "<scripRef>John 3:16</scripRef>"
+ buf += "<a href=\"!DIATHEKE_URL!verse=";
+
+ char* vref = (char*)userData["lastTextNode"].c_str();
+ while (*vref) {
+ if (*vref == ' ') buf += '+';
+ else buf += *vref;
+ vref++;
+ }
+ buf += "\">";
+ buf += userData["lastTextNode"].c_str();
+ // let's let text resume to output again
+ userData["suspendTextPassThru"] = "false";
+ buf += "</a>";
+ }
+ }
+
+ else if (!strncmp(token, "div class=\"sechead\"", 19)) {
+ userData["SecHead"] = "true";
+ buf += "<br /><b><i>";
+ }
+ else if (!strncmp(token, "div class=\"title\"", 19)) {
+ userData["SecHead"] = "true";
+ buf += "<br /><b><i>";
+ }
+ else if (!strncmp(token, "/div", 4)) {
+ if (userData["SecHead"] == "true") {
+ buf += "</i></b><br />";
+ userData["SecHead"] = "false";
+ }
+ }
+
+ else if(!strncmp(token, "note", 4)) {
+ buf += " <small><font color=\"#008000\">{";
+ }
+
+ else {
+ buf += '<';
+ for (i = 0; i < strlen(token); i++)
+ buf += token[i];
+ buf += '>';
+ //return false; // we still didn't handle token
+ }
+ }
+ return true;
+}
+
+
+
+
+
+
+SWORD_NAMESPACE_END
diff --git a/utilities/diatheke/thmlcgi.h b/utilities/diatheke/thmlcgi.h
new file mode 100644
index 0000000..efa9018
--- /dev/null
+++ b/utilities/diatheke/thmlcgi.h
@@ -0,0 +1,38 @@
+/***************************************************************************
+ thmlcgi.h - OSIS to Diatheke/CGI format
+ -------------------
+ begin : 2001-11-12
+ copyright : 2001 by CrossWire Bible Society
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef THMLCGI_H
+#define THMLCGI_H
+
+#include <swbasicfilter.h>
+#include <map>
+
+#include <defs.h>
+
+SWORD_NAMESPACE_START
+
+typedef std::map<SWBuf, SWBuf> DualStringMap;
+/** this filter converts ThML text to Diatheke/CGI format
+ */
+class SWDLLEXPORT ThMLCGI : public SWBasicFilter {
+protected:
+ virtual bool handleToken(SWBuf &buf, const char *token, DualStringMap &userData);
+public:
+ ThMLCGI();
+};
+
+SWORD_NAMESPACE_END
+#endif
diff --git a/utilities/emptyvss.cpp b/utilities/emptyvss.cpp
new file mode 100644
index 0000000..366aa21
--- /dev/null
+++ b/utilities/emptyvss.cpp
@@ -0,0 +1,54 @@
+#include <swmgr.h>
+#include <swmodule.h>
+#include <versekey.h>
+#include <iostream>
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::SWMgr;
+using sword::VerseKey;
+using sword::ModMap;
+using sword::SWKey;
+using sword::SWModule;
+using sword::SW_POSITION;
+#endif
+
+int main(int argc, char **argv) {
+ if (argc < 2) {
+ fprintf(stderr, "usage: %s <Mod Name>\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);
+ }
+
+ SWModule *mod = it->second;
+
+ SWKey *key = (*mod);
+ VerseKey *vkey = 0;
+ SWTRY {
+ vkey = dynamic_cast<VerseKey *>(key);
+ }
+ SWCATCH (...) {}
+
+ 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()) {
+
+ if (vkey->Verse())
+ if (!strlen ((const char *)(*mod)))
+ std::cout << *vkey << std::endl;
+ (*mod)++;
+ }
+}
diff --git a/utilities/gbfidx.cpp b/utilities/gbfidx.cpp
new file mode 100644
index 0000000..88921ac
--- /dev/null
+++ b/utilities/gbfidx.cpp
@@ -0,0 +1,288 @@
+/*****************************************************************************
+ *
+ * This code wreaks but works (at least for WEB). Good luck!
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <fcntl.h>
+#include <versekey.h>
+#include <filemgr.h>
+
+using namespace sword;
+
+void writeidx(VerseKey &key1, VerseKey &key2, VerseKey &key3, long offset, short size);
+char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size);
+void openfiles(char *fname);
+void checkparams(int argc, char **argv);
+
+
+VerseKey key1, key2, key3;
+int fp, vfp, cfp, bfp;
+long chapoffset;
+short chapsize;
+char testmnt;
+
+
+int main(int argc, char **argv)
+{
+ long pos, offset;
+ int num1, num2, rangemax;
+ char startflag = 0;
+ short size;
+
+ checkparams(argc, argv);
+
+ openfiles(argv[1]);
+
+ testmnt = key1.Testament();
+ num1 = key1.Chapter();
+ num2 = key1.Verse();
+ pos = 0;
+ write(bfp, &pos, 4); /* Book offset for testament intros */
+ pos = 4;
+ write(cfp, &pos, 4); /* Chapter offset for testament intro */
+
+
+/* Right now just zero out intros until parsing correctly */
+ pos = 0;
+ size = 0;
+ write(vfp, &pos, 4); /* Module intro */
+ write(vfp, &size, 2);
+ write(vfp, &pos, 4); /* Testament intro */
+ write(vfp, &size, 2);
+
+ while(!findbreak(fp, &offset, &num1, &num2, &rangemax, &size)) {
+ if (!startflag) {
+ startflag = 1;
+ }
+ else {
+ if (num2 < key2.Verse()) { // new chapter
+ if (num1 <= key2.Chapter()) { // new book
+ key2.Verse(1);
+ key2.Chapter(1);
+ key2.Book(key2.Book()+1);
+ }
+ printf("Found Chapter Break: %d ('%s')\n", num1, (const char *)key2);
+ chapoffset = offset;
+ chapsize = size;
+// continue;
+ }
+ }
+ key2.Verse(1);
+ key2.Chapter(num1);
+ key2.Verse(num2);
+
+ key3 = key2;
+// key3 += (rangemax - key3.Verse());
+
+ writeidx(key1, key2, key3, offset, size);
+ }
+ close(vfp);
+ close(cfp);
+ close(bfp);
+ close(fp);
+ return 0;
+}
+
+
+/**************************************************************************
+ * ENT: key1 - current location of index
+ * key2 - minimum keyval for which this offset is valid
+ * key3 - maximum keyval for which this offset is valid
+ */
+
+void writeidx(VerseKey &key1, VerseKey &key2, VerseKey &key3, long offset, short size)
+{
+ long pos;
+ short tmp;
+
+ for (; ((key1 <= key3) && (key1.Error() != KEYERR_OUTOFBOUNDS) && (key1.Testament() == testmnt)); key1+=1) {
+ if (key1.Verse() == 1) { // new chapter
+ if (key1.Chapter() == 1) { // new book
+ pos = lseek(cfp, 0, SEEK_CUR);
+ write(bfp, &pos, 4);
+ pos = lseek(vfp, 0, SEEK_CUR); /* Book intro (cps) */
+ write(cfp, &pos, 4);
+ write(vfp, &chapoffset, 4); /* Book intro (vss) set to same as chap for now(it should be chap 1 which usually contains the book into anyway)*/
+ write(vfp, &chapsize, 2);
+ }
+ pos = lseek(vfp, 0, SEEK_CUR);
+ write(cfp, &pos, 4);
+ write(vfp, &chapoffset, 4); /* Chapter intro */
+ write(vfp, &chapsize, 2);
+ }
+ if (key1 >= key2) {
+ write(vfp, &offset, 4);
+ write(vfp, &size, 2);
+ }
+ else {
+ pos = 0;
+ tmp = 0;
+ write(vfp, &pos, 4);
+ write(vfp, &tmp, 2);
+ }
+ }
+}
+
+
+char startchap(char *buf)
+{
+ if (buf[0] != '<')
+ return 0;
+ if (buf[1] != 'S')
+ return 0;
+ if (buf[2] != 'C')
+ return 0;
+/*
+ if (!isdigit(buf[2]))
+ return 0;
+ for (loop = 3; loop < 7; loop++) {
+ if (buf[loop] == ' ')
+ break;
+ if ((!isdigit(buf[loop])) && (buf[loop] != ',') && (buf[loop] != '-'))
+ return 0;
+ }
+*/
+ return 1;
+}
+
+
+char startentry(char *buf)
+{
+ if (buf[0] != '<')
+ return 0;
+ if (buf[1] != 'S')
+ return 0;
+ if (buf[2] != 'V')
+ return 0;
+/*
+ if (!isdigit(buf[2]))
+ return 0;
+ for (loop = 3; loop < 7; loop++) {
+ if (buf[loop] == ' ')
+ break;
+ if ((!isdigit(buf[loop])) && (buf[loop] != ',') && (buf[loop] != '-'))
+ return 0;
+ }
+*/
+ return 1;
+}
+
+
+char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size)
+{
+ char buf[7];
+ int loop;
+ long offset2;
+ int ch2, vs2, rm2;
+ bool flag;
+ long chapstart = 0;
+
+ memset(buf, ' ', 7);
+
+ while (1) {
+ if (startchap(buf)) {
+ chapstart = lseek(fp, 0, SEEK_CUR) - 7;
+ memset(buf, ' ', 3);
+ flag = false;
+ for (loop = 3; loop < 6; loop++) {
+ if (isdigit(buf[loop]))
+ flag = true;
+ else {
+ buf[loop] = 0;
+ break;
+ }
+ }
+ if (flag)
+ *num1 = atoi(buf);
+ else (*num1)++;
+ }
+ if (startentry(buf)) {
+ memset(buf, ' ', 3);
+ flag = false;
+ for (loop = 3; loop < 6; loop++) {
+ if (isdigit(buf[loop]))
+ flag = true;
+ else {
+ buf[loop] = 0;
+ break;
+ }
+ if (flag)
+ *num2 = atoi(buf);
+ else (*num2)++;
+ }
+ loop++;
+ if (size)
+ *offset = lseek(fp, 0, SEEK_CUR) - (7 - loop);
+ else *offset = (chapstart) ? chapstart : lseek(fp, 0, SEEK_CUR) - 7;
+ if (size) {
+ ch2 = *num1;
+ vs2 = *num2;
+ if (findbreak(fp, &offset2, &ch2, &vs2, &rm2, 0)) {
+ *size = (short) (lseek(fp, 0, SEEK_END) - (*offset));
+ }
+ else {
+ if (vs2) {
+ *size = (offset2 - (*offset));
+ }
+ }
+ lseek(fp, *offset, SEEK_SET);
+ }
+ return 0;
+ }
+ memmove(buf, &buf[1], 6);
+ if (read(fp, &buf[6], 1) != 1)
+ return 1;
+ }
+}
+
+
+void openfiles(char *fname)
+{
+ SWBuf buf;
+
+ if ((fp = FileMgr::openFileReadOnly(fname)) < 0) {
+ fprintf(stderr, "Couldn't open file: %s\n", fname);
+ exit(1);
+ }
+
+ buf.setFormatted("%s.vss", fname);
+ if ((vfp = FileMgr::createPathAndFile(buf.c_str())) < 0) {
+ fprintf(stderr, "Couldn't open file: %s\n", buf.c_str());
+ exit(1);
+ }
+
+ buf.setFormatted("%s.cps", fname);
+ if ((cfp = FileMgr::createPathAndFile(buf.c_str())) < 0) {
+ fprintf(stderr, "Couldn't open file: %s\n", buf.c_str());
+ exit(1);
+ }
+
+ buf.setFormatted("%s.bks", fname);
+ if ((bfp = FileMgr::createPathAndFile(buf.c_str())) < 0) {
+ fprintf(stderr, "Couldn't open file: %s\n", buf.c_str());
+ exit(1);
+ }
+}
+
+
+void checkparams(int argc, char **argv)
+{
+ if (argc < 2) {
+ fprintf(stderr, "usage: %s <file to process> [nt - for new testmt file]\n", argv[0]);
+ exit(1);
+ }
+ if (argc == 3)
+ key1 = key2 = key3 = "Matthew 1:1";
+ else key1 = key2 = key3 = "Genesis 1:1";
+}
diff --git a/utilities/genbookutil.cpp b/utilities/genbookutil.cpp
new file mode 100644
index 0000000..e9beb72
--- /dev/null
+++ b/utilities/genbookutil.cpp
@@ -0,0 +1,201 @@
+#include <entriesblk.h>
+#include <iostream>
+#include <stdio.h>
+#include <treekeyidx.h>
+#include <rawgenbook.h>
+#ifndef NO_SWORD_NAMESPACE
+using namespace sword;
+#endif
+
+void printTree(TreeKeyIdx treeKey, TreeKeyIdx *target = 0, int level = 1) {
+ if (!target)
+ target = &treeKey;
+
+ unsigned long currentOffset = target->getOffset();
+ std::cout << ((currentOffset == treeKey.getOffset()) ? "==>" : "");
+ for (int i = 0; i < level; i++) std::cout << "\t";
+ std::cout << treeKey.getLocalName() << "/\n";
+ if (treeKey.firstChild()) {
+ printTree(treeKey, target, level+1);
+ treeKey.parent();
+ }
+ if (treeKey.nextSibling())
+ printTree(treeKey, target, level);
+
+}
+
+
+void printLocalName(TreeKeyIdx *treeKey) {
+ std::cout << "locaName: " << treeKey->getLocalName() << "\n";
+}
+
+
+void setLocalName(TreeKeyIdx *treeKey) {
+ char buf[1023];
+ std::cout << "Enter New Node Name: ";
+ fgets(buf, 1000, stdin);
+ SWBuf name = buf;
+ treeKey->setLocalName(name.trim());
+ treeKey->save();
+}
+
+
+void gotoPath(TreeKeyIdx *treeKey) {
+ char buf[1023];
+ std::cout << "Enter Path: ";
+ fgets(buf, 1000, stdin);
+ SWBuf path = buf;
+ (*treeKey) = path.trim();
+}
+
+
+void assurePath(TreeKeyIdx *treeKey) {
+ char buf[1023];
+ std::cout << "Enter Path: ";
+ fgets(buf, 1000, stdin);
+ SWBuf path = buf;
+ treeKey->assureKeyPath(path.trim());
+}
+
+
+void viewEntryText(RawGenBook *book) {
+ std::cout << "\n";
+ std::cout << book->RenderText();
+ std::cout << "\n";
+}
+
+
+void setEntryText(RawGenBook *book) {
+ SWBuf body;
+ TreeKeyIdx *treeKey = (TreeKeyIdx *)(SWKey *)(*book);
+ if (treeKey->getOffset()) {
+ char buf[1023];
+ std::cout << "Enter New Entry Text ('.' on a line by itself to end): \n";
+ do {
+ fgets(buf, 1000, stdin);
+ SWBuf text = buf;
+ text.trim();
+ if ((text[0] == '.') && (text[1] == 0))
+ break;
+ body += text;
+ body += "\n";
+ } while (true);
+
+ (*book) << body.c_str();
+ }
+ else std::cout << "Can't add entry text to root node\n";
+}
+
+
+void appendSibbling(TreeKeyIdx *treeKey) {
+ if (treeKey->getOffset()) {
+ char buf[1023];
+ std::cout << "Enter New Sibbling Name: ";
+ fgets(buf, 1000, stdin);
+ SWBuf name = buf;
+ treeKey->append();
+ treeKey->setLocalName(name.trim());
+ treeKey->save();
+ }
+ else std::cout << "Can't add sibling to root node\n";
+}
+
+
+void appendChild(TreeKeyIdx *treeKey) {
+ char buf[1023];
+ std::cout << "Enter New Child Name: ";
+ fgets(buf, 1000, stdin);
+ SWBuf name = buf;
+ treeKey->appendChild();
+ treeKey->setLocalName(name.trim());
+ treeKey->save();
+}
+
+
+void deleteNode(TreeKeyIdx *treeKey) {
+ std::cout << "Removing entry [" << treeKey->getText() << "]\n";
+ treeKey->remove();
+}
+
+
+void removeEntry(EntriesBlock *eb, int index) {
+ if (index < eb->getCount()) {
+ std::cout << "Removing entry [" << index << "]\n";
+ eb->removeEntry(index);
+ }
+ else std::cout << "Invalid entry number\n\n";
+}
+
+
+int main(int argc, char **argv) {
+
+ if (argc != 2) {
+ fprintf(stderr, "usage: %s <tree/key/data/path>\n", *argv);
+ exit(-1);
+ }
+
+ TreeKeyIdx *treeKey = new TreeKeyIdx(argv[1]);
+
+ if (treeKey->Error()) {
+ RawGenBook::createModule(argv[1]);
+ }
+ delete treeKey;
+
+ RawGenBook *book = new RawGenBook(argv[1]);
+ TreeKeyIdx root = *((TreeKeyIdx *)((SWKey *)(*book)));
+ treeKey = (TreeKeyIdx *)(SWKey *)(*book);
+
+ SWBuf input;
+ char line[1024];
+
+ do {
+ std::cout << "[" << treeKey->getText() << "] > ";
+ fgets(line, 1000, stdin);
+ input = line;
+ input.trim();
+ if (input.length() > 0) {
+ switch (input[0]) {
+ case 'n': printLocalName(treeKey); break;
+ case 's': setLocalName(treeKey); break;
+ case 'g': gotoPath(treeKey); break;
+ case 'G': assurePath(treeKey); break;
+ case 'p': root.root(); printTree(root, treeKey); break;
+ case 'a': appendSibbling(treeKey); break;
+ case 'c': appendChild(treeKey); break;
+ case 'd': deleteNode(treeKey); break;
+ case 'j': treeKey->nextSibling(); break;
+ case 'k': treeKey->previousSibling(); break;
+ case 'h': treeKey->parent(); break;
+ case 'l': treeKey->firstChild(); break;
+ case 'r': treeKey->root(); break;
+ case 't': setEntryText(book); break;
+ case 'v': viewEntryText(book); break;
+ case 'q': break;
+ case '?':
+ default:
+ std::cout << "\n p - print tree\n";
+ std::cout << " n - get local name\n";
+ std::cout << " s - set local name\n";
+ std::cout << " j - next sibbling\n";
+ std::cout << " k - previous sibbling\n";
+ std::cout << " h - parent\n";
+ std::cout << " l - first child\n";
+ std::cout << " r - root\n";
+ std::cout << " g - goto path\n";
+ std::cout << " G goto path; create if it doesn't exist\n";
+ std::cout << " a - append sibbling\n";
+ std::cout << " c - append child\n";
+ std::cout << " d - delete node\n";
+ std::cout << " v - view entry text\n";
+ std::cout << " t - set entry text\n";
+ std::cout << " q - quit\n\n";
+ break;
+ }
+ }
+ }
+ while (input.compare("q"));
+
+ delete treeKey;
+
+ return 0;
+}
diff --git a/utilities/imp2gbs.cpp b/utilities/imp2gbs.cpp
new file mode 100644
index 0000000..9488eef
--- /dev/null
+++ b/utilities/imp2gbs.cpp
@@ -0,0 +1,254 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
+
+#include <entriesblk.h>
+#include <iostream>
+#include <treekeyidx.h>
+#include <rawgenbook.h>
+#include <utilstr.h>
+#include <filemgr.h>
+#include <utf8greekaccents.h>
+#include <stringmgr.h>
+
+#ifdef _ICU_
+
+#include <unicode/utypes.h>
+#include <unicode/ucnv.h>
+#include <unicode/ustring.h>
+#include <unicode/uchar.h>
+
+#include <unicode/unistr.h>
+#include <unicode/translit.h>
+
+#include <unicode/locid.h>
+
+#endif
+
+#ifndef NO_SWORD_NAMESPACE
+using namespace sword;
+#endif
+
+SWBuf outPath;
+SWBuf inFile;
+bool toUpper = false;
+bool greekFilter = false;
+bool augMod = false;
+bool augEnt = true;
+int lexLevels = 0;
+UTF8GreekAccents greekAccentsFilter;
+
+
+void usage(const char *app) {
+ fprintf(stderr, "imp2gbs 1.0 General Book module creation tool for the SWORD Project\n\n");
+ fprintf(stderr, "usage: %s <inFile> [OPTIONS]\n", app);
+ fprintf(stderr, "\t-o <outPath>\n\t\tSpecify an output Path other than inFile location.\n");
+ fprintf(stderr, "\t-a\n\t\tAugment Module [default: create new]\n");
+ fprintf(stderr, "\t-O\n\t\tOverwrite entries of same key [default: append to]\n");
+ fprintf(stderr, "\t-U\n\t\tKey filter: Convert toUpper\n");
+ fprintf(stderr, "\t-g\n\t\tKey filter: Strip Greek diacritics\n");
+ fprintf(stderr, "\t-l <levels>\n\t\tKey filter: Pseudo-Lexicon n-level generation using first character\n");
+ fprintf(stderr, "\t\te.g. -l 2 \"Abbey\" -> \"A/AB/Abbey\"\n");
+ fprintf(stderr, "\n");
+ exit (-1);
+}
+
+
+void parseParams(int argc, char **argv) {
+
+ if (argc < 2) {
+ usage(*argv);
+ }
+
+ inFile = argv[1];
+
+ for (int i = 2; i < argc; i++) {
+ if (!strcmp(argv[i], "-o")) {
+ if ((i+1 < argc) && (argv[i+1][0] != '-')) {
+ outPath = argv[i+1];
+ i++;
+ }
+ else usage(*argv);
+ }
+ else if (!strcmp(argv[i], "-U")) {
+ if (StringMgr::hasUTF8Support()) {
+ toUpper = true;
+ }
+ else {
+ fprintf(stderr, "Error: %s. Cannot reliably toUpper without UTF8 support\n\t(recompile with ICU enabled)\n\n", *argv);
+ usage(*argv);
+ }
+ }
+ else if (!strcmp(argv[i], "-g")) {
+ greekFilter = true;
+ }
+ else if (!strcmp(argv[i], "-O")) {
+ augEnt = false;
+ }
+ else if (!strcmp(argv[i], "-a")) {
+ augMod = true;
+ }
+ else if (!strcmp(argv[i], "-l")) {
+ if (i+1 < argc) {
+ lexLevels = atoi(argv[i+1]);
+ i++;
+ }
+ if (!lexLevels) usage(*argv);
+ }
+ }
+ if (!outPath.size()) {
+ outPath = inFile;
+ unsigned int i;
+ for (i = 0; (i < outPath.size() && outPath[i] != '.'); i++);
+ outPath.size(i);
+ }
+}
+
+
+void writeEntry(SWModule *book, SWBuf keyBuffer, SWBuf entBuffer) {
+
+
+ if (greekFilter) {
+ greekAccentsFilter.processText(keyBuffer);
+ }
+
+ if (toUpper) {
+ unsigned size = (keyBuffer.size()+5)*3;
+ keyBuffer.setFillByte(0);
+ keyBuffer.resize(size);
+ StringMgr::getSystemStringMgr()->upperUTF8(keyBuffer.getRawData(), size-2);
+ }
+
+// Added for Hesychius, but this stuff should be pushed back into new StringMgr
+// functionality
+#ifdef _ICU_
+// if (lexLevels) {
+ if (lexLevels && !keyBuffer.startsWith("/Intro")) {
+ unsigned size = (keyBuffer.size()+(lexLevels*2));
+ keyBuffer.setFillByte(0);
+ keyBuffer.resize(size);
+
+ UErrorCode err = U_ZERO_ERROR;
+
+ int max = (size+5)*3;
+ UChar *ubuffer = new UChar[max+10];
+ int32_t len;
+
+ u_strFromUTF8(ubuffer, max+9, &len, keyBuffer.c_str(), -1, &err);
+ if (err == U_ZERO_ERROR) {
+ UChar *upper = new UChar[(lexLevels+1)*3];
+ memcpy(upper, ubuffer, lexLevels*sizeof(UChar));
+ upper[lexLevels] = 0;
+ len = u_strToUpper(upper, (lexLevels+1)*3, upper, -1, 0, &err);
+ memmove(ubuffer+len+1, ubuffer, (max-len)*sizeof(UChar));
+ memcpy(ubuffer, upper, len*sizeof(UChar));
+ ubuffer[len] = '/';
+ delete [] upper;
+
+ int totalShift = 0;
+ for (int i = lexLevels-1; i; i--) {
+ int shift = (i < len)? i : len;
+ memmove(ubuffer+(shift+1), ubuffer, (max-shift)*sizeof(UChar));
+ ubuffer[shift] = '/';
+ totalShift += (shift+1);
+ }
+ u_strToUTF8(keyBuffer.getRawData(), max, 0, ubuffer, -1, &err);
+ }
+
+/*
+ u_strFromUTF8(ubuffer, max+9, &len, keyBuffer.c_str(), -1, &err);
+ if (err == U_ZERO_ERROR) {
+ int totalShift = 0;
+ for (int i = lexLevels; i; i--) {
+ int shift = (i < len)? i : len;
+ memmove(ubuffer+(shift+1), ubuffer, (max-shift)*sizeof(UChar));
+ ubuffer[shift] = '/';
+ totalShift += (shift+1);
+ }
+ UChar *upper = new UChar[(totalShift+1)*3];
+ memcpy(upper, ubuffer, totalShift*sizeof(UChar));
+ upper[totalShift] = 0;
+ len = u_strToUpper(upper, (totalShift+1)*3, upper, -1, 0, &err);
+ memmove(ubuffer+len, ubuffer+totalShift, (max-totalShift)*sizeof(UChar));
+ memcpy(ubuffer, upper, len*sizeof(UChar));
+ delete [] upper;
+ u_strToUTF8(keyBuffer.getRawData(), max, 0, ubuffer, -1, &err);
+ }
+*/
+
+ delete [] ubuffer;
+ }
+#endif
+
+ std::cout << keyBuffer << std::endl;
+
+ book->setKey(keyBuffer.c_str());
+
+ // check to see if we already have an entry
+ for (int i = 2; book->getKey()->Error() != KEYERR_OUTOFBOUNDS; i++) {
+ SWBuf key;
+ key.setFormatted("%s {%d}", keyBuffer.c_str(), i);
+ std::cout << "dup key, trying: " << key << std::endl;
+ book->setKey(key.c_str());
+ }
+
+ book->setEntry(entBuffer);
+}
+
+
+int main(int argc, char **argv) {
+ greekAccentsFilter.setOptionValue("Off"); // off = accents off
+ parseParams(argc, argv);
+
+ // Let's see if we can open our input file
+ FileDesc *fd = FileMgr::getSystemFileMgr()->open(inFile, FileMgr::RDONLY);
+ if (fd->getFd() < 0) {
+ fprintf(stderr, "error: %s: couldn't open input file: %s \n", argv[0], inFile.c_str());
+ exit(-2);
+ }
+
+ RawGenBook *book;
+
+ // Do some initialization stuff
+ if (!augMod) {
+ RawGenBook::createModule(outPath);
+ }
+ book = new RawGenBook(outPath);
+
+ SWBuf lineBuffer;
+ SWBuf keyBuffer;
+ SWBuf entBuffer;
+
+ bool more = true;
+ do {
+ more = FileMgr::getLine(fd, lineBuffer);
+ if (lineBuffer.startsWith("$$$")) {
+ if ((keyBuffer.size()) && (entBuffer.size())) {
+ writeEntry(book, keyBuffer, entBuffer);
+ }
+ keyBuffer = lineBuffer;
+ keyBuffer << 3;
+ keyBuffer.trim();
+ entBuffer.size(0);
+ }
+ else {
+ if (keyBuffer.size()) {
+ entBuffer += lineBuffer;
+ entBuffer += "\n";
+ }
+ }
+ } while (more);
+ if ((keyBuffer.size()) && (entBuffer.size())) {
+ writeEntry(book, keyBuffer, entBuffer);
+ }
+
+ delete book;
+
+ FileMgr::getSystemFileMgr()->close(fd);
+
+ return 0;
+}
+
+
+
diff --git a/utilities/imp2ld.cpp b/utilities/imp2ld.cpp
new file mode 100644
index 0000000..bde5b18
--- /dev/null
+++ b/utilities/imp2ld.cpp
@@ -0,0 +1,175 @@
+#include <string>
+#include <vector>
+#include <fstream>
+#include <iostream>
+#include <rawld.h>
+#include <rawld4.h>
+#include <zld.h>
+#include <zipcomprs.h>
+#include <stdio.h>
+
+using std::string;
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::zLD;
+using sword::ZipCompress;
+using sword::RawLD4;
+using sword::RawLD;
+using sword::SWKey;
+#endif
+
+
+int main(int argc, char **argv) {
+
+ const char * helptext ="imp2ld 1.0 Lexicon/Dictionary/Daily Devotional/Glossary module creation tool for the SWORD Project\n usage:\n %s <filename> [modname] [ 4 (default) | 2 | z - module driver]\n";
+
+ signed long i = 0;
+ string keybuffer;
+ string entbuffer;
+ string linebuffer;
+ char modname[16];
+ char links = 0;
+ std::vector<string> linkbuffer;
+
+ if (argc > 2) {
+ strcpy (modname, argv[2]);
+ }
+ else if (argc > 1) {
+ for (i = 0; (i < 16) && (argv[1][i]) && (argv[1][i] != '.'); i++) {
+ modname[i] = argv[1][i];
+ }
+ modname[i] = 0;
+ }
+ else {
+ fprintf(stderr, helptext, argv[0]);
+ exit(-1);
+ }
+
+ std::ifstream infile(argv[1]);
+
+ char mode = 1;
+ if (argc > 3) {
+ switch (*argv[3]) {
+ case 'z':
+ mode = 3;
+ break;
+ case '2':
+ mode = 2;
+ break;
+ default:
+ mode = 1;
+ }
+ }
+
+ zLD* modZ = NULL;
+ RawLD* mod2 = NULL;
+ RawLD4* mod4 = NULL;
+ SWKey* key;
+
+ if (mode == 3) {
+ zLD::createModule(modname);
+ modZ = new zLD(modname, 0, 0, 30, new ZipCompress());
+ key = modZ->CreateKey();
+ }
+ else if (mode == 2) {
+ RawLD::createModule(modname);
+ mod2 = new RawLD(modname);
+ key = mod2->CreateKey();
+ }
+ else if (mode == 1) {
+ RawLD4::createModule(modname);
+ mod4 = new RawLD4(modname);
+ key = mod4->CreateKey();
+ }
+
+ key->Persist(1);
+
+ while (!infile.eof()) {
+ std::getline(infile, linebuffer);
+ if (linebuffer.size() > 3 && linebuffer.substr(0,3) == "$$$") {
+ if (keybuffer.size() && entbuffer.size()) {
+ std::cout << keybuffer << std::endl;
+ *key = keybuffer.c_str();
+
+ if (mode == 3) {
+ modZ->setKey(*key);
+ modZ->setEntry(entbuffer.c_str(), entbuffer.size());
+ for (i = 0; i < links; i++) {
+ SWKey tmpkey = linkbuffer[i].c_str();
+ modZ->linkEntry(&tmpkey);
+ std::cout << "Linking: " << linkbuffer[i] << std::endl;
+ }
+ }
+ else if (mode == 2) {
+ mod2->setKey(*key);
+ mod2->setEntry(entbuffer.c_str(), entbuffer.size());
+ for (i = 0; i < links; i++) {
+ SWKey tmpkey = linkbuffer[i].c_str();
+ mod2->linkEntry(&tmpkey);
+ std::cout << "Linking: " << linkbuffer[i] << std::endl;
+ }
+ }
+ else if (mode == 1) {
+ mod4->setKey(*key);
+ mod4->setEntry(entbuffer.c_str(), entbuffer.size());
+ for (i = 0; i < links; i++) {
+ SWKey tmpkey = linkbuffer[i].c_str();
+ mod4->linkEntry(&tmpkey);
+ std::cout << "Linking: " << linkbuffer[i] << std::endl;
+ }
+ }
+ }
+ if (linebuffer.size() > 3)
+ keybuffer = linebuffer.substr(3,linebuffer.size()) ;
+ entbuffer.resize(0);
+ linkbuffer.clear();
+ links = 0;
+ }
+ else if (linebuffer.size() > 3 && linebuffer.substr(0,3) == "%%%") {
+ linkbuffer.push_back(linebuffer.substr(3,linebuffer.size()));
+ links++;
+ }
+ else {
+ entbuffer += linebuffer;
+ }
+ }
+
+ //handle final entry
+ if (keybuffer.size() && entbuffer.size()) {
+ std::cout << keybuffer << std::endl;
+ *key = keybuffer.c_str();
+
+ if (mode == 3) {
+ modZ->setKey(*key);
+ modZ->setEntry(entbuffer.c_str(), entbuffer.size());
+ for (i = 0; i < links; i++) {
+ SWKey tmpkey = linkbuffer[i].c_str();
+ modZ->linkEntry(&tmpkey);
+ std::cout << "Linking: " << linkbuffer[i] << std::endl;
+ }
+ }
+ else if (mode == 2) {
+ mod2->setKey(*key);
+ mod2->setEntry(entbuffer.c_str(), entbuffer.size());
+ for (i = 0; i < links; i++) {
+ SWKey tmpkey = linkbuffer[i].c_str();
+ mod2->linkEntry(&tmpkey);
+ std::cout << "Linking: " << linkbuffer[i] << std::endl;
+ }
+
+ }
+ else if (mode == 1) {
+ mod4->setKey(*key);
+ mod4->setEntry(entbuffer.c_str(), entbuffer.size());
+ for (i = 0; i < links; i++) {
+ SWKey tmpkey = linkbuffer[i].c_str();
+ mod4->linkEntry(&tmpkey);
+ std::cout << "Linking: " << linkbuffer[i] << std::endl;
+ }
+
+ }
+ }
+ infile.close();
+
+ return 0;
+}
diff --git a/utilities/imp2vs.cpp b/utilities/imp2vs.cpp
new file mode 100644
index 0000000..9ae3881
--- /dev/null
+++ b/utilities/imp2vs.cpp
@@ -0,0 +1,182 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string>
+#include <fstream>
+using namespace std;
+
+#include <iostream>
+#include <rawtext.h>
+ #include <rawtext4.h>
+#include <versekey.h>
+
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::RawText;
+using sword::RawText4;
+using sword::VerseKey;
+using sword::SWText;
+using sword::ListKey;
+#endif
+
+int main(int argc, char **argv) {
+
+ const string helptext ="imp2vs 1.0 Bible/Commentary module creation tool for the SWORD Project\n usage:\n %s <filename> [output dir] \n";
+
+ string keybuffer = "";
+ string entbuffer = "";
+ string linebuffer = "";
+ string modname = "";
+
+ if (argc > 2) {
+ modname = argv[2];
+ }
+ else if (argc > 1) {
+ modname = "./";
+ }
+ else {
+ fprintf(stderr, helptext.c_str(), argv[0]);
+ exit(-1);
+ }
+ int mode = 1;
+ if (argc > 3) {
+ switch (*argv[3]) {
+ case '4':
+ mode = 2;
+ break;
+ default:
+ mode = 1;
+ }
+ }
+
+
+
+ try {
+
+ ifstream infile(argv[1]);
+
+ SWText* mod;
+ RawText * modRaw;
+ RawText4 * modRaw4;
+
+ if (mode == 1) {
+ RawText::createModule(modname.c_str());
+ modRaw= new RawText(modname.c_str());
+ mod = modRaw;
+ } else {
+ RawText4::createModule(modname.c_str());
+ modRaw4= new RawText4(modname.c_str());
+ mod = modRaw4;
+ }
+
+ VerseKey* vkey = new VerseKey;
+ vkey->Headings(1);
+ vkey->AutoNormalize(0);
+ vkey->Persist(1);
+ mod->setKey(*vkey);
+ char final; // 2 == pre-final line; 1 == final line; 0 == EOF
+
+ getline(infile,linebuffer);
+ final = (!infile.eof()) + 1;
+
+ while (final) {
+ if (final == 1 || (linebuffer.size() > 3 && linebuffer.substr(0,3) == "$$$")) {
+ if (keybuffer.size() && entbuffer.size()) {
+ std::cout << "from file: " << keybuffer << std::endl;
+ *vkey = keybuffer.c_str();
+ if (!vkey->Chapter()) {
+ // bad hack: 0:0 is Book intro; (chapter):0 is Chapter intro; 0:2 is Module intro; 0:1 is Testament intro
+ int backstep = vkey->Verse();
+ if (backstep) {
+ vkey->Verse(1);
+ vkey->Chapter(1);
+ switch (backstep) {
+ case 2:
+ vkey->Book(1);
+ vkey->Testament(0);
+ case 1:
+ vkey->Book(0);
+ vkey->Chapter(0);
+ }
+ vkey->Verse(0);
+ }
+
+ std::cout << "adding entry: " << *vkey << " length " << entbuffer.size() << "/" << (unsigned short)entbuffer.size() << std::endl;
+ mod->setEntry(entbuffer.c_str(), entbuffer.size());
+ }
+ else {
+ ListKey listkey = vkey->ParseVerseList(keybuffer.c_str(), "Gen1:1", true);
+ int i;
+ bool havefirst = false;
+ VerseKey firstverse;
+ firstverse.Headings(1);
+ firstverse.AutoNormalize(0);
+ for (i = 0; i < listkey.Count(); i++) {
+ VerseKey *element = SWDYNAMIC_CAST(VerseKey, listkey.GetElement(i));
+ if (element) {
+ *vkey = element->LowerBound();
+ VerseKey finalkey = element->UpperBound();
+ finalkey.Headings(1);
+ finalkey.AutoNormalize(0);
+ if (!havefirst) {
+ havefirst = true;
+ firstverse = *vkey;
+
+ std::cout << "adding entry: " << *vkey << " length " << entbuffer.size() << "/" << (unsigned short)entbuffer.size() << std::endl;
+ mod->setEntry(entbuffer.c_str(), entbuffer.size());
+ (*vkey)++;
+ }
+ while (! (finalkey < (*vkey))) {
+ std::cout << "linking entry: " << *vkey << " to " << firstverse << std::endl;
+ *mod << &firstverse;
+ (*vkey)++;
+ }
+ }
+ else {
+ if (havefirst) {
+ *vkey = (*listkey.GetElement(i));
+ std::cout << "linking entry: " << *vkey << " to " << firstverse << std::endl;
+ *mod << &firstverse;
+ }
+ else {
+ *vkey = (*listkey.GetElement(i));
+ havefirst = true;
+ firstverse = *vkey;
+
+ std::cout << "adding entry: " << *vkey << " length " << entbuffer.size() << "/" << (unsigned short)entbuffer.size() << std::endl;
+ mod->setEntry(entbuffer.c_str(), entbuffer.size());
+ }
+ }
+ }
+ }
+ }
+ if (linebuffer.size() > 3)
+ keybuffer = linebuffer.substr(3,linebuffer.size()) ;
+ entbuffer.resize(0);
+ }
+ else {
+ entbuffer.append(linebuffer);
+ }
+ final--;
+ if (final) {
+ getline(infile,linebuffer);
+ final = (!infile.eof()) + 1;
+ }
+ }
+ }
+ catch (const std::exception& e) {
+ std::cerr << "Exception: imp2vs failed: " << e.what() << std::endl;
+ std::cerr << "Line: " << linebuffer.size() << " " << linebuffer << std::endl;
+ std::cerr << "Key: " << keybuffer.size() << " " << keybuffer << std::endl;
+ std::cerr << "Ent: " << entbuffer.size() << " " << entbuffer << std::endl;
+ return -2;
+ }
+ catch (...) {
+ std::cerr << "Exception: imp2vs failed" << std::endl;
+ return -3;
+ }
+
+ return 0;
+}
diff --git a/utilities/installmgr.cpp b/utilities/installmgr.cpp
new file mode 100644
index 0000000..60fc7ce
--- /dev/null
+++ b/utilities/installmgr.cpp
@@ -0,0 +1,287 @@
+#include <swmgr.h>
+#include <installmgr.h>
+#include <filemgr.h>
+#include <iostream>
+#include <map>
+#include <swmodule.h>
+#include <stdio.h>
+#include <swlog.h>
+
+using namespace sword;
+using std::cout;
+using std::cerr;
+using std::cin;
+using std::map;
+
+
+SWMgr *mgr;
+InstallMgr *installMgr;
+
+
+void finish(int status) {
+ delete installMgr;
+ delete mgr;
+ cout << "\n";
+ exit(status);
+}
+
+
+void usage(const char *progName) {
+ fprintf(stderr, "usage: %s <option>\nOptions:\n"
+ "\t-init\t\t\t\tcreate a basic user config file.\n"
+ "\t\t\t\t\t\tWARNING: overwrites existing.\n"
+ "\t-l\t\t\t\tlist installed modules\n"
+ "\t-u <modName>\t\t\tuninstall module\n"
+ "\t-s\t\t\t\tlist remote sources\n"
+ "\t-r <remoteSrcName>\t\trefresh remote source\n"
+ "\t-rl <remoteSrcName>\t\tlist available modules from remote source\n"
+ "\t-rd <remoteSrcName>\t\tlist new/updated modules from remote source\n"
+ "\t-ri <remoteSrcName> <modName>\tinstall module from remote source\n"
+ "\t-ll <path>\t\t\tlist available modules at local path\n"
+ "\t-li <path> <modName>\t\tinstall module from local path\n"
+ , progName);
+ finish(-1);
+}
+
+
+void initConfig() {
+ cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
+ cout << " -=+* WARNING *+=- -=+* WARNING *+=-\n\n\n";
+ cout << "Although Install Manager provides a convenient way for installing\n";
+ cout << "and upgrading SWORD components, it also uses a systematic method\n";
+ cout << "for accessing sites which gives packet sniffers a target to lock\n";
+ cout << "into for singling out users. \n\n\n";
+ cout << "IF YOU LIVE IN A PERSECUTED COUNTRY AND DO NOT WISH TO RISK DETECTION,\n";
+ cout << "YOU SHOULD *NOT* USE INSTALL MANAGER'S REMOTE SOURCE FEATURES.\n\n\n";
+ cout << "if you understand this and are willing to enable remote source features\n";
+ cout << "then type yes at the prompt\n\n";
+ cout << "enable? [no] ";
+ char prompt[10];
+ fgets(prompt, 9, stdin);
+ bool enable = (!strcmp(prompt, "yes\n"));
+ char *envhomedir = getenv ("HOME");
+ SWBuf confPath = (envhomedir) ? envhomedir : ".";
+ confPath += "/.sword/InstallMgr/InstallMgr.conf";
+ FileMgr::createParent(confPath.c_str());
+ remove(confPath.c_str());
+
+ InstallSource is("FTP");
+ is.caption = "CrossWire";
+ is.source = "ftp.crosswire.org";
+ is.directory = "/pub/sword/raw";
+
+ SWConfig config(confPath.c_str());
+ config["General"]["PassiveFTP"] = "true";
+ if (enable) {
+ config["Sources"]["FTPSource"] = is.getConfEnt();
+ }
+ config.Save();
+ cout << "\n\nInitialized basic config file at [" << confPath << "]\n";
+ cout << "with remote source features " << ((enable) ? "ENABLED" : "DISABLED") << "\n";
+}
+
+
+void listModules(SWMgr *mgr) {
+ cout << "Installed Modules:\n\n";
+ SWModule *module;
+ for (ModMap::iterator it = mgr->Modules.begin(); it != mgr->Modules.end(); it++) {
+ module = it->second;
+ cout << "[" << module->Name() << "] \t- " << module->Description() << "\n";
+ }
+}
+
+
+void uninstallModule(const char *modName) {
+ SWModule *module;
+ ModMap::iterator it = mgr->Modules.find(modName);
+ if (it == mgr->Modules.end()) {
+ fprintf(stderr, "Couldn't find module [%s] to remove\n", modName);
+ finish(-2);
+ }
+ module = it->second;
+ installMgr->removeModule(mgr, module->Name());
+ cout << "Removed module: [" << modName << "]\n";
+}
+
+
+void listRemoteSources() {
+ cout << "Remote Sources:\n\n";
+ for (InstallSourceMap::iterator it = installMgr->sources.begin(); it != installMgr->sources.end(); it++) {
+ cout << "[" << it->second->caption << "]\n";
+ cout << "\tType ; " << it->second->type << "\n";
+ cout << "\tSource ; " << it->second->source << "\n";
+ cout << "\tDirectory; " << it->second->directory << "\n";
+ }
+}
+
+
+void refreshRemoteSource(const char *sourceName) {
+ InstallSourceMap::iterator source = installMgr->sources.find(sourceName);
+ if (source == installMgr->sources.end()) {
+ fprintf(stderr, "Couldn't find remote source [%s]\n", sourceName);
+ finish(-3);
+ }
+ if (!installMgr->refreshRemoteSource(source->second))
+ cout << "Remote Source Refreshed\n";
+ else cerr << "Error Refreshing Remote Source\n";
+}
+
+
+void remoteNewModules(const SWMgr *base, const char *sourceName) {
+ cout << "Updated and New Modules:\n(be sure to refresh remote source (-r) first for most current list)\n\n";
+ InstallSourceMap::iterator source = installMgr->sources.find(sourceName);
+ if (source == installMgr->sources.end()) {
+ fprintf(stderr, "Couldn't find remote source [%s]\n", sourceName);
+ finish(-3);
+ }
+ map<SWModule *, int> modStats = installMgr->getModuleStatus(*base, *source->second->getMgr());
+ SWModule *module;
+ int status;
+ bool updated;
+ for (map<SWModule *, int>::iterator it = modStats.begin(); it != modStats.end(); it++) {
+ module = it->first;
+ status = it->second;
+ updated = (status & InstallMgr::MODSTAT_UPDATED);
+ if ((status & InstallMgr::MODSTAT_NEW) || (updated)) {
+ cout << ((updated)?"U":"N") << " [" << module->Name() << "] \t- " << module->Description() << "\n";
+ }
+ }
+}
+
+
+void remoteListModules(const char *sourceName) {
+ cout << "Available Modules:\n(be sure to refresh remote source (-r) first for most current list)\n\n";
+ InstallSourceMap::iterator source = installMgr->sources.find(sourceName);
+ if (source == installMgr->sources.end()) {
+ fprintf(stderr, "Couldn't find remote source [%s]\n", sourceName);
+ finish(-3);
+ }
+ listModules(source->second->getMgr());
+}
+
+
+void localDirListModules(const char *dir) {
+ cout << "Available Modules:\n\n";
+ SWMgr mgr(dir);
+ listModules(&mgr);
+}
+
+
+void remoteInstallModule(const char *sourceName, const char *modName) {
+ InstallSourceMap::iterator source = installMgr->sources.find(sourceName);
+ if (source == installMgr->sources.end()) {
+ fprintf(stderr, "Couldn't find remote source [%s]\n", sourceName);
+ finish(-3);
+ }
+ InstallSource *is = source->second;
+ SWMgr *rmgr = is->getMgr();
+ SWModule *module;
+ ModMap::iterator it = rmgr->Modules.find(modName);
+ if (it == rmgr->Modules.end()) {
+ fprintf(stderr, "Remote source [%s] does not make available module [%s]\n", sourceName, modName);
+ finish(-4);
+ }
+ module = it->second;
+ int error = installMgr->installModule(mgr, 0, module->Name(), is);
+ if (error) {
+ cout << "Error installing module: [" << module->Name() << "] (write permissions?)\n";
+ } else cout << "Installed module: [" << module->Name() << "]\n";
+}
+
+
+void localDirInstallModule(const char *dir, const char *modName) {
+ SWMgr lmgr(dir);
+ SWModule *module;
+ ModMap::iterator it = lmgr.Modules.find(modName);
+ if (it == lmgr.Modules.end()) {
+ fprintf(stderr, "Module [%s] not available at path [%s]\n", modName, dir);
+ finish(-4);
+ }
+ module = it->second;
+ int error = installMgr->installModule(mgr, dir, module->Name());
+ if (error) {
+ cout << "Error installing module: [" << module->Name() << "] (write permissions?)\n";
+ } else cout << "Installed module: [" << module->Name() << "]\n";
+}
+
+
+int main(int argc, char **argv) {
+
+ mgr = new SWMgr();
+ char *envhomedir = getenv ("HOME");
+ SWBuf baseDir = (envhomedir) ? envhomedir : ".";
+ baseDir += "/.sword/InstallMgr";
+ installMgr = new InstallMgr(baseDir);
+
+ SWLog::getSystemLog()->setLogLevel(SWLog::LOG_DEBUG);
+
+ cout << "\n";
+
+ if (argc < 2)
+ usage(*argv);
+
+ switch (argv[1][1]) {
+ case 'i':
+ if (strcmp(argv[1], "-init"))
+ usage(*argv);
+ initConfig();
+ break;
+ case 'l':
+ switch (argv[1][2]) {
+ case 0: // -l list installed modules
+ listModules(mgr);
+ break;
+ case 'l': // -ll list from local directory
+ if (argc < 3)
+ usage(*argv);
+ localDirListModules(argv[2]);
+ break;
+ case 'i': // -li remote install
+ if (argc < 4)
+ usage(*argv);
+ localDirInstallModule(argv[2], argv[3]);
+ break;
+ default: usage(*argv);
+ }
+ break;
+ case 'u':
+ if (argc < 3)
+ usage(*argv);
+
+ uninstallModule(argv[2]);
+ break;
+ case 's':
+ listRemoteSources();
+ break;
+ case 'r': // remote option
+ switch (argv[1][2]) {
+ case 0: // -r refresh
+ if (argc < 3)
+ usage(*argv);
+ refreshRemoteSource(argv[2]);
+ break;
+ case 'l': // -rl remote list
+ if (argc < 3)
+ usage(*argv);
+ remoteListModules(argv[2]);
+ break;
+ case 'd': // -rl remote list
+ if (argc < 3)
+ usage(*argv);
+ remoteNewModules(mgr, argv[2]);
+ break;
+ case 'i': // -ri remote install
+ if (argc < 4)
+ usage(*argv);
+ remoteInstallModule(argv[2], argv[3]);
+ break;
+ default: usage(*argv);
+ }
+ break;
+ default: usage(*argv);
+ }
+
+ finish(0);
+
+ return 0;
+}
diff --git a/utilities/kylixmake/Makefile.am b/utilities/kylixmake/Makefile.am
new file mode 100644
index 0000000..b0fd873
--- /dev/null
+++ b/utilities/kylixmake/Makefile.am
@@ -0,0 +1,8 @@
+swkylixmakedir = $(top_srcdir)/utilities/kylixmake
+
+EXTRA_DIST += $(swkylixmakedir)/libsword.bpf
+EXTRA_DIST += $(swkylixmakedir)/mod2zmod.bpf
+EXTRA_DIST += $(swkylixmakedir)/mod2zmod.res
+EXTRA_DIST += $(swkylixmakedir)/libsword.bpr
+EXTRA_DIST += $(swkylixmakedir)/mod2zmod.bpr
+EXTRA_DIST += $(swkylixmakedir)/utilities.bpg
diff --git a/utilities/kylixmake/libsword.bpf b/utilities/kylixmake/libsword.bpf
new file mode 100644
index 0000000..f881306
--- /dev/null
+++ b/utilities/kylixmake/libsword.bpf
@@ -0,0 +1,8 @@
+//---------------------------------------------------------------------------
+
+
+#define Library
+
+// To add a file to the library use the Project menu 'Add to Project'.
+
+ \ No newline at end of file
diff --git a/utilities/kylixmake/libsword.bpr b/utilities/kylixmake/libsword.bpr
new file mode 100644
index 0000000..e634040
--- /dev/null
+++ b/utilities/kylixmake/libsword.bpr
@@ -0,0 +1,238 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.10"/>
+ <PROJECT value="libsword.a"/>
+ <OBJFILES value="../../src/utilfuns/Greek2Greek.o ../../src/utilfuns/swunicod.o
+ ../../src/utilfuns/swversion.o ../../src/utilfuns/utilconf.o
+ ../../src/utilfuns/utilstr.o ../../src/keys/listkey.o
+ ../../src/keys/strkey.o ../../src/keys/swkey.o ../../src/keys/treekey.o
+ ../../src/keys/treekeyidx.o ../../src/keys/versekey.o
+ ../../src/mgr/encfiltmgr.o ../../src/mgr/filemgr.o
+ ../../src/mgr/localemgr.o ../../src/mgr/markupfiltmgr.o
+ ../../src/mgr/swcacher.o ../../src/mgr/swconfig.o
+ ../../src/mgr/swfiltermgr.o ../../src/mgr/swlocale.o ../../src/mgr/swmgr.o
+ ../../src/frontend/swdisp.o ../../src/frontend/swlog.o
+ ../../src/modules/swmodule.o ../../src/modules/comments/swcom.o
+ ../../src/modules/comments/hrefcom/hrefcom.o
+ ../../src/modules/comments/rawcom/rawcom.o
+ ../../src/modules/comments/rawfiles/rawfiles.o
+ ../../src/modules/comments/zcom/zcom.o
+ ../../src/modules/common/entriesblk.o
+ ../../src/modules/common/lzsscomprs.o ../../src/modules/common/rawstr4.o
+ ../../src/modules/common/rawstr.o ../../src/modules/common/rawverse.o
+ ../../src/modules/common/sapphire.o ../../src/modules/common/swcipher.o
+ ../../src/modules/common/swcomprs.o ../../src/modules/common/zipcomprs.o
+ ../../src/modules/common/zstr.o ../../src/modules/common/zverse.o
+ ../../src/modules/filters/cipherfil.o
+ ../../src/modules/filters/gbffootnotes.o
+ ../../src/modules/filters/gbfheadings.o
+ ../../src/modules/filters/gbfhtml.o
+ ../../src/modules/filters/gbfhtmlhref.o
+ ../../src/modules/filters/gbfmorph.o ../../src/modules/filters/gbfosis.o
+ ../../src/modules/filters/gbfplain.o ../../src/modules/filters/gbfrtf.o
+ ../../src/modules/filters/gbfstrongs.o ../../src/modules/filters/gbfthml.o
+ ../../src/modules/filters/greeklexattribs.o
+ ../../src/modules/filters/latin1utf16.o
+ ../../src/modules/filters/latin1utf8.o
+ ../../src/modules/filters/plainfootnotes.o
+ ../../src/modules/filters/plainhtml.o ../../src/modules/filters/rtfhtml.o
+ ../../src/modules/filters/rwphtml.o ../../src/modules/filters/rwprtf.o
+ ../../src/modules/filters/scsuutf8.o
+ ../../src/modules/filters/swbasicfilter.o
+ ../../src/modules/filters/thmlfootnotes.o
+ ../../src/modules/filters/thmlgbf.o
+ ../../src/modules/filters/thmlheadings.o
+ ../../src/modules/filters/thmlhtml.o
+ ../../src/modules/filters/thmlhtmlhref.o
+ ../../src/modules/filters/thmllemma.o
+ ../../src/modules/filters/thmlmorph.o
+ ../../src/modules/filters/thmlosis.o ../../src/modules/filters/thmlplain.o
+ ../../src/modules/filters/thmlrtf.o
+ ../../src/modules/filters/thmlscripref.o
+ ../../src/modules/filters/thmlstrongs.o
+ ../../src/modules/filters/thmlvariants.o
+ ../../src/modules/filters/unicodertf.o
+ ../../src/modules/filters/utf16utf8.o
+ ../../src/modules/filters/utf8arshaping.o
+ ../../src/modules/filters/utf8bidireorder.o
+ ../../src/modules/filters/utf8cantillation.o
+ ../../src/modules/filters/utf8greekaccents.o
+ ../../src/modules/filters/utf8hebrewpoints.o
+ ../../src/modules/filters/utf8html.o
+ ../../src/modules/filters/utf8latin1.o ../../src/modules/filters/utf8nfc.o
+ ../../src/modules/filters/utf8nfkd.o
+ ../../src/modules/filters/utf8transliterator.o
+ ../../src/modules/filters/utf8utf16.o
+ ../../src/modules/genbook/swgenbook.o
+ ../../src/modules/genbook/rawgenbook/rawgenbook.o
+ ../../src/modules/lexdict/swld.o ../../src/modules/lexdict/rawld/rawld.o
+ ../../src/modules/lexdict/rawld4/rawld4.o
+ ../../src/modules/lexdict/zld/zld.o ../../src/modules/texts/swtext.o
+ ../../src/modules/texts/rawtext/rawtext.o
+ ../../src/modules/texts/ztext/ztext.o ../../src/utilfuns/roman.o"/>
+ <RESFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value=""/>
+ <LIBRARIES value=""/>
+ <PACKAGES value="rtl.bpi visualclx.bpi dataclx.bpi visualdbclx.bpi netclx.bpi
+ netdataclx.bpi xmlrtl.bpi indy.bpi webdsnapclx.bpi websnapclx.bpi
+ soaprtl.bpi"/>
+ <PATHCPP value=".;../../src/utilfuns:../../src/keys:../../src/mgr:../../src/frontend:../../src/modules:../../src/modules/comments:../../src/modules/comments/hrefcom:../../src/modules/comments/rawcom:../../src/modules/comments/rawfiles:../../src/modules/comments/zcom:../../src/modules/common:../../src/modules/filters:../../src/modules/genbook:../../src/modules/genbook/rawgenbook:../../src/modules/lexdict:../../src/modules/lexdict/rawld:../../src/modules/lexdict/rawld4:../../src/modules/lexdict/zld:../../src/modules/texts:../../src/modules/texts/rawtext:../../src/modules/texts/ztext"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <LINKER value="ar"/>
+ <USERDEFINES value="_DEBUG"/>
+ <SYSDEFINES value=""/>
+ <MAINSOURCE value="libsword.bpf"/>
+ <INCLUDEPATH value="../../src/modules/texts/ztext:../../src/modules/texts/rawtext:../../src/modules/texts:../../src/modules/lexdict/zld:../../src/modules/lexdict/rawld4:../../src/modules/lexdict/rawld:../../src/modules/lexdict:../../src/modules/genbook/rawgenbook:../../src/modules/genbook:../../src/modules/filters:../../src/modules/common:../../src/modules/comments/zcom:../../src/modules/comments/rawfiles:../../src/modules/comments/rawcom:../../src/modules/comments/hrefcom:../../src/modules/comments:../../src/modules:../../src/frontend:../../src/mgr:../../src/keys:../../src/utilfuns:../../include:$(BCB)/include/stlport:$(BCB)/include:$(BCB)/include/vcl:/usr/include"/>
+ <LIBPATH value="../../src/modules/texts/ztext:../../src/modules/texts/rawtext:../../src/modules/texts:../../src/modules/lexdict/zld:../../src/modules/lexdict/rawld4:../../src/modules/lexdict/rawld:../../src/modules/lexdict:../../src/modules/genbook/rawgenbook:../../src/modules/genbook:../../src/modules/filters:../../src/modules/common:../../src/modules/comments/zcom:../../src/modules/comments/rawfiles:../../src/modules/comments/rawcom:../../src/modules/comments/hrefcom:../../src/modules/comments:../../src/modules:../../src/frontend:../../src/mgr:../../src/keys:../../src/utilfuns:$(BCB)/lib/obj:$(BCB)/lib:/usr/lib:/lib:/usr/X11R6/lib:$(BCB)/bin"/>
+ <WARNINGS value="-w-par"/>
+ <LISTFILE value=""/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <CFLAG1 value="-Od -H=$(HOME)/.borland/clx69.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v
+ -vi- -c -t"/>
+ <PFLAGS value="-$YD -$W -$O- -$A8 -v -JPHNE -M"/>
+ <AFLAGS value="/mx /w2 /zd"/>
+ <LFLAGS value="-rsc"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="$(OBJFILES)"/>
+ <ALLLIB value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="libsword.bpf" FORMNAME="" UNITNAME="libsword" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/utilfuns/Greek2Greek.cpp" FORMNAME="" UNITNAME="Greek2Greek.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/utilfuns/swunicod.cpp" FORMNAME="" UNITNAME="swunicod.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/utilfuns/swversion.cpp" FORMNAME="" UNITNAME="swversion.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/utilfuns/utilconf.cpp" FORMNAME="" UNITNAME="utilconf.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/utilfuns/utilstr.cpp" FORMNAME="" UNITNAME="utilstr.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/keys/listkey.cpp" FORMNAME="" UNITNAME="listkey.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/keys/strkey.cpp" FORMNAME="" UNITNAME="strkey.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/keys/swkey.cpp" FORMNAME="" UNITNAME="swkey.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/keys/treekey.cpp" FORMNAME="" UNITNAME="treekey.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/keys/treekeyidx.cpp" FORMNAME="" UNITNAME="treekeyidx.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/keys/versekey.cpp" FORMNAME="" UNITNAME="versekey.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/mgr/encfiltmgr.cpp" FORMNAME="" UNITNAME="encfiltmgr.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/mgr/filemgr.cpp" FORMNAME="" UNITNAME="filemgr.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/mgr/localemgr.cpp" FORMNAME="" UNITNAME="localemgr.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/mgr/markupfiltmgr.cpp" FORMNAME="" UNITNAME="markupfiltmgr.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/mgr/swcacher.cpp" FORMNAME="" UNITNAME="swcacher.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/mgr/swconfig.cpp" FORMNAME="" UNITNAME="swconfig.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/mgr/swfiltermgr.cpp" FORMNAME="" UNITNAME="swfiltermgr.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/mgr/swlocale.cpp" FORMNAME="" UNITNAME="swlocale.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/mgr/swmgr.cpp" FORMNAME="" UNITNAME="swmgr.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/frontend/swdisp.cpp" FORMNAME="" UNITNAME="swdisp.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/frontend/swlog.cpp" FORMNAME="" UNITNAME="swlog.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/swmodule.cpp" FORMNAME="" UNITNAME="swmodule" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/comments/swcom.cpp" FORMNAME="" UNITNAME="swcom" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/comments/hrefcom/hrefcom.cpp" FORMNAME="" UNITNAME="hrefcom" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/comments/rawcom/rawcom.cpp" FORMNAME="" UNITNAME="rawcom" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/comments/rawfiles/rawfiles.cpp" FORMNAME="" UNITNAME="rawfiles" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/comments/zcom/zcom.cpp" FORMNAME="" UNITNAME="zcom" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/common/entriesblk.cpp" FORMNAME="" UNITNAME="entriesblk.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/common/lzsscomprs.cpp" FORMNAME="" UNITNAME="lzsscomprs.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/common/rawstr4.cpp" FORMNAME="" UNITNAME="rawstr4.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/common/rawstr.cpp" FORMNAME="" UNITNAME="rawstr.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/common/rawverse.cpp" FORMNAME="" UNITNAME="rawverse.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/common/sapphire.cpp" FORMNAME="" UNITNAME="sapphire.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/common/swcipher.cpp" FORMNAME="" UNITNAME="swcipher.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/common/swcomprs.cpp" FORMNAME="" UNITNAME="swcomprs.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/common/zipcomprs.cpp" FORMNAME="" UNITNAME="zipcomprs.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/common/zstr.cpp" FORMNAME="" UNITNAME="zstr.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/common/zverse.cpp" FORMNAME="" UNITNAME="zverse.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/cipherfil.cpp" FORMNAME="" UNITNAME="cipherfil.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/gbffootnotes.cpp" FORMNAME="" UNITNAME="gbffootnotes.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/gbfheadings.cpp" FORMNAME="" UNITNAME="gbfheadings.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/gbfhtml.cpp" FORMNAME="" UNITNAME="gbfhtml.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/gbfhtmlhref.cpp" FORMNAME="" UNITNAME="gbfhtmlhref.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/gbfmorph.cpp" FORMNAME="" UNITNAME="gbfmorph.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/gbfosis.cpp" FORMNAME="" UNITNAME="gbfosis.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/gbfplain.cpp" FORMNAME="" UNITNAME="gbfplain.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/gbfrtf.cpp" FORMNAME="" UNITNAME="gbfrtf.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/gbfstrongs.cpp" FORMNAME="" UNITNAME="gbfstrongs.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/gbfthml.cpp" FORMNAME="" UNITNAME="gbfthml.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/greeklexattribs.cpp" FORMNAME="" UNITNAME="greeklexattribs.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/latin1utf16.cpp" FORMNAME="" UNITNAME="latin1utf16.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/latin1utf8.cpp" FORMNAME="" UNITNAME="latin1utf8.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/plainfootnotes.cpp" FORMNAME="" UNITNAME="plainfootnotes.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/plainhtml.cpp" FORMNAME="" UNITNAME="plainhtml.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/rtfhtml.cpp" FORMNAME="" UNITNAME="rtfhtml.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/rwphtml.cpp" FORMNAME="" UNITNAME="rwphtml.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/rwprtf.cpp" FORMNAME="" UNITNAME="rwprtf.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/scsuutf8.cpp" FORMNAME="" UNITNAME="scsuutf8.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/swbasicfilter.cpp" FORMNAME="" UNITNAME="swbasicfilter.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmlfootnotes.cpp" FORMNAME="" UNITNAME="thmlfootnotes.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmlgbf.cpp" FORMNAME="" UNITNAME="thmlgbf.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmlheadings.cpp" FORMNAME="" UNITNAME="thmlheadings.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmlhtml.cpp" FORMNAME="" UNITNAME="thmlhtml.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmlhtmlhref.cpp" FORMNAME="" UNITNAME="thmlhtmlhref.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmllemma.cpp" FORMNAME="" UNITNAME="thmllemma.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmlmorph.cpp" FORMNAME="" UNITNAME="thmlmorph.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmlosis.cpp" FORMNAME="" UNITNAME="thmlosis.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmlplain.cpp" FORMNAME="" UNITNAME="thmlplain.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmlrtf.cpp" FORMNAME="" UNITNAME="thmlrtf.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmlscripref.cpp" FORMNAME="" UNITNAME="thmlscripref.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmlstrongs.cpp" FORMNAME="" UNITNAME="thmlstrongs.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/thmlvariants.cpp" FORMNAME="" UNITNAME="thmlvariants.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/unicodertf.cpp" FORMNAME="" UNITNAME="unicodertf.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/utf16utf8.cpp" FORMNAME="" UNITNAME="utf16utf8.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/utf8arshaping.cpp" FORMNAME="" UNITNAME="utf8arshaping.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/utf8bidireorder.cpp" FORMNAME="" UNITNAME="utf8bidireorder.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/utf8cantillation.cpp" FORMNAME="" UNITNAME="utf8cantillation.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/utf8greekaccents.cpp" FORMNAME="" UNITNAME="utf8greekaccents.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/utf8hebrewpoints.cpp" FORMNAME="" UNITNAME="utf8hebrewpoints.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/utf8html.cpp" FORMNAME="" UNITNAME="utf8html.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/utf8latin1.cpp" FORMNAME="" UNITNAME="utf8latin1.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/utf8nfc.cpp" FORMNAME="" UNITNAME="utf8nfc.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/utf8nfkd.cpp" FORMNAME="" UNITNAME="utf8nfkd.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/utf8transliterator.cpp" FORMNAME="" UNITNAME="utf8transliterator.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/filters/utf8utf16.cpp" FORMNAME="" UNITNAME="utf8utf16.cpp" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/genbook/swgenbook.cpp" FORMNAME="" UNITNAME="swgenbook" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/genbook/rawgenbook/rawgenbook.cpp" FORMNAME="" UNITNAME="rawgenbook" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/lexdict/swld.cpp" FORMNAME="" UNITNAME="swld" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/lexdict/rawld/rawld.cpp" FORMNAME="" UNITNAME="rawld" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/lexdict/rawld4/rawld4.cpp" FORMNAME="" UNITNAME="rawld4" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/lexdict/zld/zld.cpp" FORMNAME="" UNITNAME="zld" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/texts/swtext.cpp" FORMNAME="" UNITNAME="swtext" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/texts/rawtext/rawtext.cpp" FORMNAME="" UNITNAME="rawtext" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/modules/texts/ztext/ztext.cpp" FORMNAME="" UNITNAME="ztext" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../../src/utilfuns/roman.c" FORMNAME="" UNITNAME="roman" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[HistoryLists\hlIncludePath]
+Count=2
+Item0=../../include:$(BCB)/include/stlport:$(BCB)/include:$(BCB)/include/vcl:/usr/include
+Item1=../../src/modules/texts/ztext:../../src/modules/texts/rawtext:../../src/modules/texts:../../src/modules/lexdict/zld:../../src/modules/lexdict/rawld4:../../src/modules/lexdict/rawld:../../src/modules/lexdict:../../src/modules/genbook/rawgenbook:../../src/modules/genbook:../../src/modules/filters:../../src/modules/common:../../src/modules/comments/zcom:../../src/modules/comments/rawfiles:../../src/modules/comments/rawcom:../../src/modules/comments/hrefcom:../../src/modules/comments:../../src/modules:../../src/frontend:../../src/mgr:../../src/keys:../../src/utilfuns:$(BCB)/include/stlport:$(BCB)/include:$(BCB)/include/vcl:/usr/include
+
+[HistoryLists\hlLibraryPath]
+Count=1
+Item0=../../src/modules/texts/ztext:../../src/modules/texts/rawtext:../../src/modules/texts:../../src/modules/lexdict/zld:../../src/modules/lexdict/rawld4:../../src/modules/lexdict/rawld:../../src/modules/lexdict:../../src/modules/genbook/rawgenbook:../../src/modules/genbook:../../src/modules/filters:../../src/modules/common:../../src/modules/comments/zcom:../../src/modules/comments/rawfiles:../../src/modules/comments/rawcom:../../src/modules/comments/hrefcom:../../src/modules/comments:../../src/modules:../../src/frontend:../../src/mgr:../../src/keys:../../src/utilfuns:$(BCB)/lib/obj:$(BCB)/lib:/usr/lib:/lib:/usr/X11R6/lib:$(BCB)/bin
+
+[HistoryLists\hlConditionals]
+Count=1
+Item0=_DEBUG
+
+[Debugging]
+DebugSourceDirs=
+
+[Parameters]
+RunParams=
+Launcher=/usr/X11R6/bin/xterm -T KylixDebuggerOutput -e bash -i -c %debuggee%
+UseLauncher=0
+DebugCWD=
+HostApplication=
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT>
diff --git a/utilities/kylixmake/mod2zmod.bpf b/utilities/kylixmake/mod2zmod.bpf
new file mode 100644
index 0000000..32eb16c
--- /dev/null
+++ b/utilities/kylixmake/mod2zmod.bpf
@@ -0,0 +1,5 @@
+This file is used by the project manager only and should be treated like the project file
+
+To add a file to this project use the Project menu 'Add to Project'
+
+main \ No newline at end of file
diff --git a/utilities/kylixmake/mod2zmod.bpr b/utilities/kylixmake/mod2zmod.bpr
new file mode 100644
index 0000000..dc399a7
--- /dev/null
+++ b/utilities/kylixmake/mod2zmod.bpr
@@ -0,0 +1,84 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.10"/>
+ <PROJECT value="mod2zmod"/>
+ <OBJFILES value="../mod2zmod.o"/>
+ <RESFILES value="mod2zmod.res"/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value="libsword.a /usr/lib/libz.a"/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value=""/>
+ <PACKAGES value="rtl.bpi visualclx.bpi dataclx.bpi visualdbclx.bpi netclx.bpi
+ netdataclx.bpi xmlrtl.bpi indy.bpi webdsnapclx.bpi websnapclx.bpi
+ soaprtl.bpi"/>
+ <PATHCPP value=".;.."/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)/lib/debug"/>
+ <RELEASELIBPATH value="$(BCB)/lib/release"/>
+ <LINKER value="ilink"/>
+ <USERDEFINES value="_DEBUG"/>
+ <SYSDEFINES value="_NO_VCL"/>
+ <MAINSOURCE value="mod2zmod.bpf"/>
+ <INCLUDEPATH value="../:..:../../include:$(BCB)/include/stlport:$(BCB)/include:$(BCB)/include/vcl:/usr/include"/>
+ <LIBPATH value="../:..:src/sword/utilities:$(BCB)/lib/obj:$(BCB)/lib:/usr/lib:/lib:/usr/X11R6/lib:$(BCB)/bin"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <CFLAG1 value="-tC -Od -H=$(HOME)/.borland/clx69.csm -Hc -Vx -X- -r- -a8 -b- -k -y -v
+ -vi- -c"/>
+ <PFLAGS value="-$YD -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zd"/>
+ <LFLAGS value="-D&quot;&quot; -ap -Tpe -x -Gn -v"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="borinit.o crt1.o $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) libborcrtl.a libborstl.a libborunwind.a
+ libpthread.so libc.so libm.so libdl.so "/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="mod2zmod.res" FORMNAME="" UNITNAME="mod2zmod.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="mod2zmod.bpf" FORMNAME="" UNITNAME="mod2zmod" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="../mod2zmod.cpp" FORMNAME="" UNITNAME="mod2zmod" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="libsword.a" FORMNAME="" UNITNAME="libsword.a" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="/usr/lib/libz.a" FORMNAME="" UNITNAME="libz.a" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[HistoryLists\hlIncludePath]
+Count=2
+Item0=../:../../include:$(BCB)/include/stlport:$(BCB)/include:$(BCB)/include/vcl:/usr/include
+Item1=../:src/sword/utilities:$(BCB)/include/stlport:$(BCB)/include:$(BCB)/include/vcl:/usr/include
+
+[HistoryLists\hlLibraryPath]
+Count=1
+Item0=../:src/sword/utilities:$(BCB)/lib/obj:$(BCB)/lib:/usr/lib:/lib:/usr/X11R6/lib:$(BCB)/bin
+
+[HistoryLists\hlConditionals]
+Count=1
+Item0=_DEBUG
+
+[Debugging]
+DebugSourceDirs=
+
+[Parameters]
+RunParams=TEST ~/.sword/ztest/ 3 2
+Launcher=/usr/X11R6/bin/xterm -T KylixDebuggerOutput -e bash -i -c %debuggee%
+UseLauncher=0
+DebugCWD=/space/home/scribe/src/sword/utilities/kylixmake
+HostApplication=
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/utilities/kylixmake/mod2zmod.res b/utilities/kylixmake/mod2zmod.res
new file mode 100644
index 0000000..36f26e2
--- /dev/null
+++ b/utilities/kylixmake/mod2zmod.res
Binary files differ
diff --git a/utilities/kylixmake/utilities.bpg b/utilities/kylixmake/utilities.bpg
new file mode 100644
index 0000000..4ee3e7e
--- /dev/null
+++ b/utilities/kylixmake/utilities.bpg
@@ -0,0 +1,24 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.02.5
+#------------------------------------------------------------------------------
+ifndef ROOT
+ROOT = /home/scribe/kylix3
+endif
+#------------------------------------------------------------------------------
+MAKE = make -$(MAKEFLAGS) -f$**
+DCC =dcc $<
+#------------------------------------------------------------------------------
+PROJECTS = libsword.a mod2zmod
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+libsword.a: libsword.bpr
+ $(ROOT)/bin/bpr2mak -t$(ROOT)/bin/deflib.gmk $<
+ make -$(MAKEFLAGS) -f$(basename $<).mak
+
+mod2zmod: mod2zmod.bpr
+ $(ROOT)/bin/bpr2mak $<
+ make -$(MAKEFLAGS) -f$(basename $<).mak
+
+
diff --git a/utilities/lexdump.c b/utilities/lexdump.c
new file mode 100644
index 0000000..25ff5d7
--- /dev/null
+++ b/utilities/lexdump.c
@@ -0,0 +1,52 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+int main(int argc, char **argv) {
+ char *tmpbuf;
+ int idxfd, datfd;
+ long offset;
+ unsigned int size;
+ char datbuf[255];
+
+ if (argc != 3) {
+ fprintf(stderr, "usage: %s <datapath/datafilebasename> <index>\n", argv[0]);
+ exit(1);
+ }
+
+ tmpbuf = calloc(strlen(argv[1]) + 11,1);
+ sprintf(tmpbuf, "%s.idx", argv[1]);
+ idxfd = open(tmpbuf, O_RDONLY|O_BINARY, S_IREAD|S_IWRITE|S_IRGRP|S_IROTH);
+ sprintf(tmpbuf, "%s.dat", argv[1]);
+ datfd = open(tmpbuf, O_RDONLY|O_BINARY, S_IREAD|S_IWRITE|S_IRGRP|S_IROTH);
+ free(tmpbuf);
+
+ offset = atoi(argv[2]) * 6;
+ lseek(idxfd, offset, SEEK_SET);
+ read(idxfd, &offset, 4);
+ read(idxfd, &size, 2);
+ printf("offset: %ld; size: %d\n", offset, size);
+ lseek(datfd, offset, SEEK_SET);
+ read(datfd, datbuf, 40);
+ datbuf[40] = 0;
+ printf("%s\n", datbuf);
+ close(datfd);
+ close(idxfd);
+ return 0;
+
+}
diff --git a/utilities/mkfastmod.cpp b/utilities/mkfastmod.cpp
new file mode 100644
index 0000000..eeebcaf
--- /dev/null
+++ b/utilities/mkfastmod.cpp
@@ -0,0 +1,72 @@
+#include <stdio.h>
+#include <rawtext.h>
+#include <swmgr.h>
+#include <versekey.h>
+#include <markupfiltmgr.h>
+#include <swbuf.h>
+
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::SWMgr;
+using sword::SWModule;
+using sword::ListKey;
+using sword::VerseKey;
+using sword::ModMap;
+using sword::SWBuf;
+#endif
+
+void percentUpdate(char percent, void *userData) {
+ static char printed = 0;
+ char maxHashes = *((char *)userData);
+
+ while ((((float)percent)/100) * maxHashes > printed) {
+ printf("=");
+ printed++;
+ fflush(stdout);
+ }
+/*
+ std::cout << (int)percent << "% ";
+*/
+ fflush(stdout);
+}
+
+
+int main(int argc, char **argv)
+{
+
+ if (argc != 2) {
+ fprintf(stderr, "usage: %s <modname>\n", argv[0]);
+ exit(-1);
+ }
+
+ SWModule *target;
+ ListKey listkey;
+ VerseKey vk;
+ ModMap::iterator it;
+
+ SWMgr manager;
+ it = manager.Modules.find(argv[1]);
+ if (it == manager.Modules.end()) {
+ fprintf(stderr, "Could not find module [%s]. Available modules:\n", argv[1]);
+ for (it = manager.Modules.begin(); it != manager.Modules.end(); it++) {
+ fprintf(stderr, "[%s]\t - %s\n", (*it).second->Name(), (*it).second->Description());
+ }
+ exit(-1);
+ }
+ target = it->second;
+
+ if (!target->hasSearchFramework()) {
+ fprintf(stderr, "%s: error: %s does not support a search framework.\n", *argv, it->second->Name());
+ exit(-2);
+ }
+
+ printf("Deleting any existing framework...\n");
+ target->deleteSearchFramework();
+ printf("Building framework, please wait...\n");
+ char lineLen = 70;
+ printf("[0=================================50===============================100]\n ");
+ char error = target->createSearchFramework(&percentUpdate, &lineLen);
+ if (error) {
+ fprintf(stderr, "%s: couldn't create search framework (permissions?)\n", *argv);
+ }
+}
diff --git a/utilities/mod2imp.cpp b/utilities/mod2imp.cpp
new file mode 100644
index 0000000..a979407
--- /dev/null
+++ b/utilities/mod2imp.cpp
@@ -0,0 +1,75 @@
+// Compression on variable granularity
+
+#include <fcntl.h>
+#include <iostream>
+#include <fstream>
+#include <string>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <ztext.h>
+#include <zld.h>
+#include <zcom.h>
+#include <swmgr.h>
+#include <lzsscomprs.h>
+#include <zipcomprs.h>
+#include <versekey.h>
+#include <stdio.h>
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::SWModule;
+using sword::SWMgr;
+using sword::ModMap;
+using sword::SWKey;
+using sword::VerseKey;
+using sword::SW_POSITION;
+#endif
+
+
+void errorOutHelp(char *appName) {
+ std::cerr << appName << " - a tool to output a Sword module in SWORD's 'imp' import format\n";
+ std::cerr << "usage: "<< appName << " <modname> \n";
+ std::cerr << "\n\n";
+ exit(-1);
+}
+
+
+int main(int argc, char **argv)
+{
+ SWModule *inModule = 0;
+
+ if ((argc != 2)) {
+ errorOutHelp(argv[0]);
+ }
+
+ if ((!strcmp(argv[1], "-h")) || (!strcmp(argv[1], "--help")) || (!strcmp(argv[1], "/?")) || (!strcmp(argv[1], "-?")) || (!strcmp(argv[1], "-help"))) {
+ errorOutHelp(argv[0]);
+ }
+
+ 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);
+ }
+
+ inModule = it->second;
+
+ SWKey *key = (SWKey *)*inModule;
+ VerseKey *vkey = SWDYNAMIC_CAST(VerseKey, key);
+
+ if (vkey)
+ vkey->Headings(1);
+
+ for ((*inModule) = TOP; !inModule->Error(); (*inModule)++) {
+ std::cout << "$$$" << inModule->KeyText() << std::endl;
+ std::cout << inModule->getRawEntry() << std::endl;
+ }
+ return 0;
+}
+
diff --git a/utilities/mod2osis.cpp b/utilities/mod2osis.cpp
new file mode 100644
index 0000000..ee71e25
--- /dev/null
+++ b/utilities/mod2osis.cpp
@@ -0,0 +1,200 @@
+// Compression on variable granularity
+#include <fcntl.h>
+#include <iostream>
+#include <fstream>
+#include <string>
+
+#include <ztext.h>
+#include <zld.h>
+#include <zcom.h>
+#include <swmgr.h>
+#include <lzsscomprs.h>
+#include <zipcomprs.h>
+#include <versekey.h>
+#include <thmlosis.h>
+#include <stdio.h>
+#include <markupfiltmgr.h>
+#include <algorithm>
+
+#ifndef NO_SWORD_NAMESPACE
+using namespace sword;
+#endif
+using std::endl;
+using std::cerr;
+using std::cout;
+
+void errorOutHelp(char *appName) {
+ cerr << appName << " - a tool to output a Sword module in OSIS format\n";
+ cerr << "usage: "<< appName << " <modname> \n";
+ cerr << "\n\n";
+ exit(-1);
+}
+
+
+int main(int argc, char **argv)
+{
+ SWModule *inModule = 0;
+ ThMLOSIS filter;
+
+ if ((argc != 2)) {
+ errorOutHelp(argv[0]);
+ }
+
+ if ((!strcmp(argv[1], "-h")) || (!strcmp(argv[1], "--help")) || (!strcmp(argv[1], "/?")) || (!strcmp(argv[1], "-?")) || (!strcmp(argv[1], "-help"))) {
+ errorOutHelp(argv[0]);
+ }
+
+ SWMgr mgr(new MarkupFilterMgr(FMT_OSIS));
+ StringList options = mgr.getGlobalOptions();
+ for (StringList::iterator it = options.begin(); it != options.end(); it++) {
+ StringList values = mgr.getGlobalOptionValues(it->c_str());
+ if (find(values.begin(), values.end(), "On") != values.end()) {
+ mgr.setGlobalOption(it->c_str(), "On");
+ }
+ if (find(values.begin(), values.end(), "All Readings") != values.end()) {
+ mgr.setGlobalOption(it->c_str(), "All Readings");
+ }
+ }
+
+// mgr.setGlobalOption("Strong's Numbers", "Off");
+// mgr.setGlobalOption("Morphological Tags", "Off");
+
+ 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);
+ }
+
+ inModule = it->second;
+// inModule->AddRenderFilter(&filter);
+
+ SWKey *key = (SWKey *)*inModule;
+ VerseKey *vkey = SWDYNAMIC_CAST(VerseKey, key);
+
+ char buf[1024];
+ bool opentest = false;
+ bool openbook = false;
+ bool openchap = false;
+ int lastTest = 5;
+ int lastBook = 9999;
+ int lastChap = 9999;
+ if (!vkey) {
+ cerr << "Currently mod2zmod only works with verse keyed modules\n\n";
+ exit(-1);
+ }
+
+ vkey->Headings(0);
+
+ cout << "<?xml version=\"1.0\" ";
+ if (inModule->getConfigEntry("Encoding")) {
+ if (*(inModule->getConfigEntry("Encoding")))
+ cout << "encoding=\"" << inModule->getConfigEntry("Encoding") << "\" ";
+ else cout << "encoding=\"UTF-8\" ";
+ }
+ else cout << "encoding=\"UTF-8\" ";
+ cout << "?>\n\n";
+
+
+ cout << "<osis";
+ cout << " xmlns=\"http://www.bibletechnologies.net/2003/OSIS/namespace\"";
+ cout << " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"";
+ cout << " xsi:schemaLocation=\"http://www.bibletechnologies.net/2003/OSIS/namespace osisCore.2.5.xsd\">\n\n";
+ cout << "<osisText";
+ cout << " osisIDWork=\"";
+ cout << inModule->Name() << "\"";
+ cout << " osisRefWork=\"defaultReferenceScheme\"";
+ if (inModule->Lang()) {
+ if (strlen(inModule->Lang()))
+ cout << " xml:lang=\"" << inModule->Lang() << "\"";
+ }
+ cout << ">\n\n";
+
+ cout << "\t<header>\n";
+ cout << "\t\t<work osisWork=\"";
+ cout << inModule->Name() << "\">\n";
+ cout << "\t\t\t<title>" << inModule->Description() << "</title>\n";
+ cout << "\t\t\t<identifier type=\"OSIS\">Bible." << inModule->Name() << "</identifier>\n";
+ cout << "\t\t\t<refSystem>Bible.KJV</refSystem>\n";
+ cout << "\t\t</work>\n";
+ cout << "\t\t<work osisWork=\"defaultReferenceScheme\">\n";
+ cout << "\t\t\t<refSystem>Bible.KJV</refSystem>\n";
+ cout << "\t\t</work>\n";
+ cout << "\t</header>\n\n";
+
+
+ (*inModule) = TOP;
+// for ((*inModule) = TOP; (inModule->Key() < (VerseKey)"Mat 2:1"); (*inModule)++) {
+// for ((*vkey) = "Mark6:29"; !inModule->Error(); (*inModule)++) {
+
+ VerseKey tmpKey;
+ tmpKey.Headings(1);
+ tmpKey.AutoNormalize(0);
+
+ for ((*inModule) = TOP; !inModule->Error(); (*inModule)++) {
+ bool newTest = false;
+ bool newBook = false;
+
+ if (!strlen(inModule->RenderText())) {
+ continue;
+ }
+
+ if ((vkey->Testament() != lastTest)) {
+ if (openchap)
+ cout << "\t</chapter>\n";
+ if (openbook)
+ cout << "\t</div>\n";
+ if (opentest)
+ cout << "\t</div>\n";
+ cout << "\t<div type=\"x-testament\">\n";
+ opentest = true;
+ newTest = true;
+ }
+ if ((vkey->Book() != lastBook) || newTest) {
+ if (!newTest) {
+ if (openchap)
+ cout << "\t</chapter>\n";
+ if (openbook)
+ cout << "\t</div>\n";
+ }
+ *buf = 0;
+ tmpKey = *vkey;
+ tmpKey.Chapter(0);
+ tmpKey.Verse(0);
+ sprintf(buf, "\t<div type=\"book\" osisID=\"%s\">\n", tmpKey.getOSISRef());
+// filter.ProcessText(buf, 200 - 3, &lastHeading, inModule);
+ cout << "" << buf << endl;
+ openbook = true;
+ newBook = true;
+ }
+ if ((vkey->Chapter() != lastChap) || newBook) {
+ if (!newBook) {
+ if (openchap)
+ cout << "\t</chapter>\n";
+ }
+ *buf = 0;
+ tmpKey = *vkey;
+ tmpKey.Verse(0);
+ sprintf(buf, "\t<chapter osisID=\"%s\">\n", tmpKey.getOSISRef());
+// filter.ProcessText(buf, 200 - 3, &lastHeading, inModule);
+ cout << "" << buf;
+ openchap = true;
+ }
+ SWBuf verseText = inModule->getRawEntry();
+ sprintf(buf, "\t\t<verse osisID=\"%s\">", vkey->getOSISRef());
+ cout << buf << verseText.c_str() << "</verse>\n" << endl;
+ lastChap = vkey->Chapter();
+ lastBook = vkey->Book();
+ lastTest = vkey->Testament();
+ }
+ if (openchap)
+ cout << "\t</chapter>\n";
+ if (openbook)
+ cout << "\t</div>\n";
+ if (opentest)
+ cout << "\t</div>\n";
+ cout << "\t</osisText>\n";
+ cout << "</osis>\n";
+ return 0;
+}
+
+
diff --git a/utilities/mod2vpl.cpp b/utilities/mod2vpl.cpp
new file mode 100644
index 0000000..edcbfc6
--- /dev/null
+++ b/utilities/mod2vpl.cpp
@@ -0,0 +1,85 @@
+#include <swmgr.h>
+#include <swmodule.h>
+#include <swkey.h>
+#include <versekey.h>
+#include <stdio.h>
+#include <iostream>
+#ifndef NO_SWORD_NAMESPACE
+using sword::SWMgr;
+using sword::VerseKey;
+using sword::SWModule;
+using sword::SWKey;
+using sword::SW_POSITION;
+using sword::ModMap;
+#endif
+
+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;
+ SWTRY {
+ vkey = dynamic_cast<VerseKey *>(key);
+ }
+ SWCATCH (...) {}
+
+ 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)) {
+ std::cout << (const char *)(*vkey) << " ";
+ std::cout << buffer << std::endl;
+ }
+ }
+ else std::cout << buffer << std::endl;
+
+ delete [] buffer;
+ (*mod)++;
+ }
+}
diff --git a/utilities/mod2zmod.cpp b/utilities/mod2zmod.cpp
new file mode 100644
index 0000000..4e91ea3
--- /dev/null
+++ b/utilities/mod2zmod.cpp
@@ -0,0 +1,189 @@
+// Compression on variable granularity
+
+#include <fcntl.h>
+#include <iostream>
+#include <fstream>
+#include <string>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <ztext.h>
+#include <zld.h>
+#include <zcom.h>
+#include <swmgr.h>
+#include <lzsscomprs.h>
+#include <zipcomprs.h>
+#include <versekey.h>
+#include <stdio.h>
+#include <cipherfil.h>
+
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::SWCompress;
+using sword::CipherFilter;
+using sword::SWModule;
+using sword::SWMgr;
+using sword::ModMap;
+using sword::zText;
+using sword::zLD;
+using sword::zCom;
+using sword::SWFilter;
+using sword::VerseKey;
+using sword::SWKey;
+using sword::SW_POSITION;
+using sword::ZipCompress;
+using sword::LZSSCompress;
+#endif
+
+using std::cerr;
+using std::string;
+using std::cout;
+
+void errorOutHelp(char *appName) {
+ cerr << appName << " - a tool to create compressed Sword modules\n";
+ cerr << "version 0.1\n\n";
+ cerr << "usage: "<< appName << " <modname> <datapath> [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";
+ cerr << "\n\n";
+ exit(-1);
+}
+
+
+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 > 6)) {
+ errorOutHelp(argv[0]);
+ }
+
+ if (argc > 3) {
+ iType = atoi(argv[3]);
+ if (argc > 4) {
+ compType = atoi(argv[4]);
+ if (argc > 5) {
+ cipherKey = argv[5];
+ }
+ }
+ }
+
+ if ((iType < 2) || (compType < 1) || (compType > 2) || (!strcmp(argv[1], "-h")) || (!strcmp(argv[1], "--help")) || (!strcmp(argv[1], "/?")) || (!strcmp(argv[1], "-?")) || (!strcmp(argv[1], "-help"))) {
+ errorOutHelp(argv[0]);
+ }
+
+ 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);
+ }
+
+ inModule = it->second;
+
+ // Try to initialize a default set of datafiles and indicies at our
+ // datapath location passed to us from the user.
+
+#define BIBLE 1
+#define LEX 2
+#define COM 3
+
+ int modType = 0;
+ if (!strcmp(inModule->Type(), "Biblical Texts")) modType = BIBLE;
+ if (!strcmp(inModule->Type(), "Lexicons / Dictionaries")) modType = LEX;
+ if (!strcmp(inModule->Type(), "Commentaries")) modType = COM;
+
+ switch (compType) { // these are deleted by zText
+ case 1: compressor = new LZSSCompress(); break;
+ case 2: compressor = new ZipCompress(); break;
+ }
+
+ int result = 0;
+ switch (modType) {
+ case BIBLE:
+ case COM:
+ result = zText::createModule(argv[2], iType);
+ break;
+ case LEX:
+ result = zLD::createModule(argv[2]);
+ break;
+ }
+
+ if (result) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s\n", argv[0], argv[2]);
+ exit(-3);
+ }
+
+ switch (modType) {
+ case BIBLE:
+ case COM:
+ outModule = new zText(argv[2], 0, 0, iType, compressor); // open our datapath with our RawText driver.
+ ((VerseKey *)(SWKey *)(*inModule))->Headings(1);
+ break;
+ case LEX:
+ outModule = new zLD(argv[2], 0, 0, iType, compressor); // open our datapath with our RawText driver.
+ break;
+ }
+
+ SWFilter *cipherFilter = 0;
+ if (!cipherKey.empty()) {
+ cipherFilter = new CipherFilter(cipherKey.c_str());
+ outModule->AddRawFilter(cipherFilter);
+ }
+
+ string lastBuffer = "Something that would never be first module entry";
+ SWKey bufferKey;
+ SWKey lastBufferKey;
+ SWKey *outModuleKey = outModule->CreateKey();
+ VerseKey *vkey = SWDYNAMIC_CAST(VerseKey, outModuleKey);
+ outModuleKey->Persist(1);
+ if (vkey) {
+ vkey->Headings(1);
+ vkey->AutoNormalize(0);
+ }
+ outModule->setKey(*outModuleKey);
+
+ inModule->setSkipConsecutiveLinks(false);
+ (*inModule) = TOP;
+ while (!inModule->Error()) {
+ bufferKey = *(SWKey *)(*inModule);
+ // pseudo-check for link. Will get most common links.
+ if ((lastBuffer == inModule->getRawEntry()) &&(lastBuffer.length() > 0)) {
+ *outModuleKey = bufferKey;
+ outModule->linkEntry(&lastBufferKey); // link to last key
+ cout << "Adding [" << bufferKey << "] link to: [" << lastBufferKey << "]\n";
+ }
+ else {
+ lastBuffer = inModule->getRawEntry();
+ lastBufferKey = inModule->KeyText();
+ if (lastBuffer.length() > 0) {
+ cout << "Adding [" << bufferKey << "] new text.\n";
+ *outModuleKey = bufferKey;
+// outModule->getRawEntry(); // snap
+// outModule->setKey(bufferKey);
+ (*outModule) << lastBuffer.c_str(); // save new text;
+ }
+ else {
+ cout << "Skipping [" << bufferKey << "] no entry in Module.\n";
+ }
+ }
+ (*inModule)++;
+ }
+ delete outModule;
+ delete outModuleKey;
+ if (cipherFilter)
+ delete cipherFilter;
+}
+
diff --git a/utilities/mod2zmod2.cpp b/utilities/mod2zmod2.cpp
new file mode 100644
index 0000000..d552e35
--- /dev/null
+++ b/utilities/mod2zmod2.cpp
@@ -0,0 +1,205 @@
+// Compression on variable granularity
+
+#include <fcntl.h>
+#include <iostream>
+#include <fstream>
+#include <string>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+//#include <ztext.h>
+#include <ztext2.h>
+//#include <zld.h>
+//#include <zcom.h>
+#include <swmgr.h>
+#include <lzsscomprs.h>
+#include <zipcomprs.h>
+#include <versekey.h>
+#include <versekey2.h>
+#include <stdio.h>
+#include <cipherfil.h>
+#ifndef NO_SWORD_NAMESPACE
+using sword::SWCompress;
+using sword::CipherFilter;
+using sword::SWModule;
+using sword::SWMgr;
+using sword::ModMap;
+using sword::zText2;
+//using sword::zLD;
+//using sword::zCom;
+using sword::SWFilter;
+using sword::VerseKey2;
+using sword::VerseKey;
+using sword::SWKey;
+using sword::SW_POSITION;
+using sword::ZipCompress;
+using sword::LZSSCompress;
+#endif
+
+using std::cerr;
+using std::string;
+using std::cout;
+using std::endl;
+
+void errorOutHelp(char *appName) {
+ cerr << appName << " - a tool to create compressed Sword modules\n";
+ cerr << "version 0.1\n\n";
+ cerr << "usage: "<< appName << " <modname> <datapath> [blockType [blockNum [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 << "blockNum : (default 1)\n\tnumber of blockType per block\n";
+ cerr << "compressType: (default 1):\n\t1 - LZSS\n\t2 - Zip\n";
+ cerr << "\n\n";
+ exit(-1);
+}
+
+
+int main(int argc, char **argv)
+{
+ int iType = 4;
+ int iPerBlock = 1;
+ int compType = 1;
+ string cipherKey = "";
+ SWCompress *compressor = 0;
+ SWModule *inModule = 0;
+ SWModule *outModule = 0;
+
+
+ if ((argc < 3) || (argc > 6)) {
+ errorOutHelp(argv[0]);
+ }
+
+ if (argc > 3) {
+ iType = atoi(argv[3]);
+ if (argc > 4) {
+ iPerBlock = atoi(argv[4]);
+ if (argc > 5) {
+ compType = atoi(argv[5]);
+ if (argc > 6) {
+ cipherKey = argv[6];
+ }
+ }
+ }
+ }
+
+ if ((iType < 2) || (iType > 5) || (iPerBlock < 1) || (compType < 1) || (compType > 2) || (!strcmp(argv[1], "-h")) ||
+ (!strcmp(argv[1], "--help")) || (!strcmp(argv[1], "/?")) || (!strcmp(argv[1], "-?")) || (!strcmp(argv[1], "-help"))) {
+ errorOutHelp(argv[0]);
+ }
+
+ 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);
+ }
+
+ inModule = it->second;
+
+ // Try to initialize a default set of datafiles and indicies at our
+ // datapath location passed to us from the user.
+
+#define BIBLE 1
+#define LEX 2
+#define COM 3
+
+ int modType = 0;
+ if (!strcmp(inModule->Type(), "Biblical Texts")) modType = BIBLE;
+ if (!strcmp(inModule->Type(), "Lexicons / Dictionaries")) modType = LEX;
+ if (!strcmp(inModule->Type(), "Commentaries")) modType = COM;
+
+ switch (compType) { // these are deleted by zText
+ case 1: compressor = new LZSSCompress(); break;
+ case 2: compressor = new ZipCompress(); break;
+ }
+ cout << "Creating module " << argv[2] << endl;
+ int result = 1;
+ switch (modType) {
+ case BIBLE:
+ result = zText2::createModule(argv[2], iType);
+ break;
+ case LEX:
+ //result = zLD::createModule(argv[2]);
+ result = 1;
+ break;
+ case COM:
+ result = zText2::createModule(argv[2], iType);
+ break;
+ }
+
+ if (result) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s \n", argv[0], argv[2]);
+ exit(-3);
+ }
+
+ cout << "Opening datapath with driver " << argv[2] << " Type " << iType << " PerBlock " << iPerBlock << endl;
+ switch (modType) {
+ case BIBLE:
+ outModule = new zText2(argv[2], 0, 0, iType, iPerBlock, compressor); // open our datapath with our RawText driver.
+ ((VerseKey *)(SWKey *)(*inModule))->Headings(1);
+ break;
+ case LEX:
+ //outModule = new zLD(argv[2], 0, 0, iType, compressor); // open our datapath with our RawText driver.
+ break;
+ case COM:
+ outModule = new zText2(argv[2], 0, 0, iType, iPerBlock, compressor); // open our datapath with our RawText driver.
+ ((VerseKey *)(SWKey *)(*inModule))->Headings(1);
+ break;
+ }
+
+ SWFilter *cipherFilter = 0;
+ if (!cipherKey.empty()) {
+ cipherFilter = new CipherFilter(cipherKey.c_str());
+ outModule->AddRawFilter(cipherFilter);
+ }
+
+ string lastBuffer = "Something that would never be first module entry";
+ SWKey bufferKey;
+ SWKey lastBufferKey;
+ SWKey *outModuleKey = outModule->CreateKey();
+ VerseKey2 *vkey = SWDYNAMIC_CAST(VerseKey2, outModuleKey);
+ outModuleKey->Persist(1);
+ if (vkey) {
+ vkey->Headings(1);
+ vkey->AutoNormalize(0);
+ }
+ outModule->setKey(*outModuleKey);
+
+ inModule->setSkipConsecutiveLinks(false);
+ (*inModule) = TOP;
+ while (!inModule->Error()) {
+ bufferKey = *(SWKey *)(*inModule);
+ cout << bufferKey << endl;
+ // pseudo-check for link. Will get most common links.
+ if ((lastBuffer == inModule->getRawEntry()) &&(lastBuffer.length() > 0)) {
+ *outModuleKey = bufferKey;
+ outModule->linkEntry(&lastBufferKey); // link to last key
+ //cout << "Adding [" << bufferKey << "] link to: [" << lastBufferKey << "]\n";
+ }
+ else {
+ lastBuffer = inModule->getRawEntry();
+ lastBufferKey = inModule->KeyText();
+ if (lastBuffer.length() > 0) {
+ //cout << "Adding [" << bufferKey << "] new text. \n";
+ *outModuleKey = bufferKey;
+// outModule->getRawEntry(); // snap
+// outModule->setKey(bufferKey);
+ (*outModule) << lastBuffer.c_str(); // save new text;
+ }
+ else {
+ cout << "Skipping [" << bufferKey << "] no entry in inModule. \n";
+ }
+ }
+ (*inModule)++;
+ }
+ delete outModule;
+ delete outModuleKey;
+ if (cipherFilter)
+ delete cipherFilter;
+}
+
diff --git a/utilities/modwrite.cpp b/utilities/modwrite.cpp
new file mode 100644
index 0000000..deec68e
--- /dev/null
+++ b/utilities/modwrite.cpp
@@ -0,0 +1,63 @@
+// Compression on variable granularity
+
+#include <fcntl.h>
+#include <iostream>
+#include <fstream>
+//#include <string>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <swmgr.h>
+#include <swmodule.h>
+#include <stdio.h>
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::SWMgr;
+using sword::SWModule;
+using sword::ModMap;
+using sword::SWKey;
+#endif
+
+using std::cerr;
+
+int main(int argc, char **argv)
+{
+ int action = 0;
+
+ if ((argc < 4) || (argc > 6)) {
+ cerr << "usage: " << argv[0] << " <mod_name> <key> <key|buf|""-delete> [0(deflt) - normal; 1 - link]\n";
+ exit(-1);
+ }
+
+ if (argc > 4)
+ action = atoi(argv[4]);
+
+ 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);
+ }
+
+ SWModule *module = it->second;
+ module->setKey(argv[2]);
+
+ switch (action) {
+ case 0:
+ if (strlen(argv[3]))
+ (*module) << argv[3];
+ else module->deleteEntry();
+ break;
+ case 1:
+ (*module) << (SWKey)argv[3];
+ break;
+ default:
+ cerr << "Unknown action " << action << "\n";
+ exit(-3);
+ }
+}
diff --git a/utilities/no13.c b/utilities/no13.c
new file mode 100644
index 0000000..5245d27
--- /dev/null
+++ b/utilities/no13.c
@@ -0,0 +1,34 @@
+#include <fcntl.h>
+#include <stdio.h>
+
+main(int argc, char **argv)
+{
+ int fd, loop;
+ char ch;
+ char breakcnt = 0;
+
+ if (argc != 2) {
+ fprintf(stderr, "This program writes to stdout, so to be useful,\n\tit should be redirected (e.g no13 bla > bla.dat)\nusage: %s <filename>\n", argv[0]);
+ exit(1);
+ }
+ fd = open(argv[1], O_RDONLY, S_IREAD|S_IWRITE|S_IRGRP|S_IROTH);
+ while (read(fd, &ch, 1) == 1) {
+ if (ch == 0x0d) { // CR
+ breakcnt++;
+ continue;
+ }
+ if (ch == 0x1a) // Ctrl-Z
+ continue;
+
+ if (ch != 0x0a) { // LF
+ if (breakcnt > 1) {
+ for (loop = breakcnt; loop > 0; loop--)
+ putchar(0x0d);
+ putchar(0x0a);
+ }
+ breakcnt=0;
+ }
+ putchar(ch);
+ }
+ close(fd);
+}
diff --git a/utilities/osis2mod.cpp b/utilities/osis2mod.cpp
new file mode 100644
index 0000000..69d984d
--- /dev/null
+++ b/utilities/osis2mod.cpp
@@ -0,0 +1,1090 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string>
+#include <stack>
+#include <iostream>
+#include <fstream>
+
+#include <utilstr.h>
+#include <swmgr.h>
+#include <rawtext.h>
+#include <swbuf.h>
+#include <utilxml.h>
+#include <listkey.h>
+#include <versekey.h>
+
+#include <ztext.h>
+// #include <zld.h>
+// #include <zcom.h>
+#include <lzsscomprs.h>
+#include <zipcomprs.h>
+#include <cipherfil.h>
+
+#ifdef _ICU_
+#include <utf8nfc.h>
+#include <latin1utf8.h>
+#endif
+
+//#define DEBUG
+
+// Debug for simple transformation stack
+//#define DEBUG_XFORM
+
+// Debug for parsing osisRefs
+//#define DEBUG_REF
+
+// Debug for tag stack
+//#define DEBUG_STACK
+
+#ifndef NO_SWORD_NAMESPACE
+using namespace sword;
+#endif
+
+using namespace std;
+
+#ifdef _ICU_
+UTF8NFC normalizer;
+int normalized = 0;
+
+Latin1UTF8 converter;
+int converted = 0;
+#endif
+
+SWText *module = 0;
+VerseKey *currentVerse = 0;
+char activeOsisID[255];
+char currentOsisID[255];
+const char *osisabbrevs[] = {"Gen", "Exod", "Lev", "Num", "Deut", "Josh", "Judg",
+ "Ruth", "1Sam", "2Sam", "1Kgs", "2Kgs", "1Chr", "2Chr", "Ezra", "Neh",
+ "Esth", "Job", "Ps", "Prov", "Eccl", "Song", "Isa", "Jer", "Lam", "Ezek",
+ "Dan", "Hos", "Joel", "Amos", "Obad", "Jonah", "Mic", "Nah", "Hab",
+ "Zeph", "Hag", "Zech", "Mal",
+
+ "Matt", "Mark", "Luke", "John", "Acts", "Rom", "1Cor", "2Cor", "Gal",
+ "Eph", "Phil", "Col", "1Thess", "2Thess", "1Tim", "2Tim", "Titus",
+ "Phlm", "Heb", "Jas", "1Pet", "2Pet", "1John", "2John", "3John",
+ "Jude", "Rev"};
+
+static bool inCanonicalOSISBook = true; // osisID is for a book that is not in Sword's canon
+static bool normalize = true; // Whether to normalize UTF-8 to NFC
+
+bool isOSISAbbrev(const char *buf) {
+ bool match = false;
+ for (int i = 0; i < 66; i++) {
+ if (!strcmp(buf, osisabbrevs[i])) {
+ match = true;
+ break;
+ }
+ }
+ return match;
+}
+
+
+/**
+ * Determine whether the string contains a valid unicode sequence.
+ * The following table give the pattern of a valid UTF-8 character.
+ * Unicode Range 1st 2nd 3rd 4th
+ * U-00000000 - U-0000007F 0nnnnnnn
+ * U-00000080 - U-000007FF 110nnnnn 10nnnnnn
+ * U-00000800 - U-0000FFFF 1110nnnn 10nnnnnn 10nnnnnn
+ * U-00010000 - U-001FFFFF 11110nnn 10nnnnnn 10nnnnnn 10nnnnnn
+ * Note:
+ * 1. The latest UTF-8 RFC allows for a max of 4 bytes.
+ * Earlier allowed 6.
+ * 2. The number of bits of the leading byte before the first 0
+ * is the total number of bytes.
+ * 3. The "n" are the bits of the unicode codepoint.
+ * This routine does not check to see if the code point is in the range.
+ * It could.
+ *
+ * param txt the text to check
+ * return 1 if all high order characters form a valid unicode sequence
+ * -1 if there are no high order characters.
+ * Note: this is also a valid unicode sequence
+ * 0 if there are high order characters that do not form
+ * a valid unicode sequence
+ * author DM Smith
+ */
+int detectUTF8(const char *txt) {
+ unsigned int countUTF8 = 0;
+ int count = 0;
+
+ // Cast it to make masking and shifting easier
+ const unsigned char *p = (const unsigned char*) txt;
+ while (*p) {
+ // Is the high order bit set?
+ if (*p & 0x80) {
+ // Then count the number of high order bits that are set.
+ // This determines the number of following bytes
+ // that are a part of the unicode character
+ unsigned char i = *p;
+ for (count = 0; i & 0x80; count++) {
+ i <<= 1;
+ }
+
+ // Validate count:
+ // Count 0: bug in code that would cause core walking
+ // Count 1: is a pattern of 10nnnnnn,
+ // which does not signal the start of a unicode character
+ // Count 5 to 8: 111110nn, 1111110n and 11111110 and 11111111
+ // are not legal starts, either
+ if (count < 2 || count > 4) return 0;
+
+ // At this point we expect (count - 1) following characters
+ // of the pattern 10nnnnnn
+ while (--count && *++p) {
+ // The pattern of each following character must be: 10nnnnnn
+ // So, compare the top 2 bits.
+ if ((0xc0 & *p) != 0x80) return 0;
+ }
+
+ // Oops, we've run out of bytes too soon: Cannot be UTF-8
+ if (count) return 0;
+
+ // We have a valid UTF-8 character, so count it
+ countUTF8++;
+ }
+
+ // Advance to the next character to examine.
+ p++;
+ }
+
+ // At this point it is either UTF-8 or 7-bit ascii
+ return countUTF8 ? 1 : -1;
+}
+
+// This routine converts an osisID or osisRef into one that SWORD can parse into a verse list
+// An osisRef is made up of:
+// a single osisID
+// an osisID-osisID
+// or
+// an osisRef osisRef
+//
+// An osisID can have a work prefix which is terminated by a : and may have a grain
+// which is started by a !
+//
+// However, SWORD cannot handle work prefixes or grains and expects ranges to be
+// separated with a single;
+void prepareSWVerseKey(SWBuf &buf) {
+ // This routine modifies the buf in place
+ char* s = buf.getRawData();
+ char* p = s;
+ bool inRange = false;
+ while (*p) {
+ if (inRange) {
+#ifdef DEBUG_REF
+ cout << "Copy range marker:" << *p << endl;;
+#endif
+ // Range markers are copied as is
+ *s++ = *p++;
+ }
+
+ // Look ahead to see if we are in a work prefix
+ // but don't look past an osisID
+ char *n = p;
+ while (*n && *n != ':' && *n != ' ' && *n != '-') {
+ n++;
+ }
+
+ // We have found a work prefix
+ if (*n == ':') {
+ // set p to skip the work prefix
+ p = n + 1;
+#ifdef DEBUG_REF
+ cout << "Found a work prefix ";
+ for (char *x = s; x <= n; x++) {
+ cout << *x;
+ }
+ cout << endl;
+#endif
+ }
+
+ // Now we are in the meat of an osisID.
+ // Copy it to its end but stop on a grain marker of '!'
+#ifdef DEBUG_REF
+ cout << "Copy osisID:";
+#endif
+ while (*p && *p != '!' && *p != ' ' && *p != '-') {
+#ifdef DEBUG_REF
+ cout << *p;
+#endif
+ *s++ = *p++;
+ }
+#ifdef DEBUG_REF
+ cout << endl;
+#endif
+
+ // The ! and everything following until we hit
+ // the end of the osisID is part of the grain reference
+ if (*p == '!') {
+ n = p;
+ while (*n && *n != ' ' && *n != '-') {
+ n++;
+ }
+#ifdef DEBUG_REF
+ cout << "Found a grain suffix ";
+ for (char *x = p; x < n; x++) {
+ cout << *x;
+ }
+ cout << endl;
+#endif
+ p = n;
+ }
+
+ // At this point we have processed an osisID
+
+ // if we are not in a range and the next characer is a -
+ // then we are entering a range
+ inRange = !inRange && *p == '-';
+
+#ifdef DEBUG_REF
+ if (inRange) {
+ cout << "Found a range" << endl;
+ }
+#endif
+
+ // between ranges and stand alone osisIDs we might have whitespace
+ if (!inRange && *p == ' ') {
+ // skip this and subsequent spaces
+ while (*p == ' ') {
+ p++;
+ }
+ // replacing them all with a ';'
+ *s++ = ';';
+#ifdef DEBUG_REF
+ cout << "replacing space with ;. Remaining: " << p << endl;
+#endif
+ }
+ }
+
+ // Determine whether we have modified the buffer
+ // We have modified the buffer if s is not sitting on the null byte of the original
+ if (*s) {
+ // null terminate the reference
+ *s = '\0';
+ // Since we modified the swbuf, we need to tell it what we have done
+ buf.setSize(s - buf.c_str());
+#ifdef DEBUG_REF
+ cout << "shortended keyVal to`" << buf.c_str() << "`"<< endl;
+#endif
+ }
+}
+
+bool isKJVRef(const char *buf) {
+ VerseKey vk, test;
+ vk.AutoNormalize(0);
+ vk.Headings(1); // turn on mod/testmnt/book/chap headings
+ vk.Persist(1);
+ // lets do some tests on the verse --------------
+ vk = buf;
+ test = buf;
+
+ if (vk.Testament() && vk.Book() && vk.Chapter() && vk.Verse()) { // if we're not a heading
+#ifdef DEBUG
+ cout << (const char*)vk << " == " << (const char*)test << endl;
+#endif
+ return (vk == test);
+ }
+ else return true; // no check if we're a heading... Probably bad.
+}
+
+
+void makeKJVRef(VerseKey &key) {
+ cout << "re-versified " << key;
+#ifdef DEBUG
+ cout << "\tC" << (int)(key.builtin_books[key.Testament()-1][key.Book()-1].chapmax) << ":V" << (int)(key.builtin_books[key.Testament()-1][key.Book()-1].versemax[key.Chapter()-1]);
+#endif
+ if (key.Chapter() > key.builtin_books[key.Testament()-1][key.Book()-1].chapmax) {
+ key.Chapter(key.builtin_books[key.Testament()-1][key.Book()-1].chapmax);
+ key.Verse(key.builtin_books[key.Testament()-1][key.Book()-1].versemax[key.Chapter()-1]);
+ }
+ else if (key.Verse() > key.builtin_books[key.Testament()-1][key.Book()-1].versemax[key.Chapter()-1]) {
+ key.Verse(key.builtin_books[key.Testament()-1][key.Book()-1].versemax[key.Chapter()-1]);
+ }
+ cout << "\tas " << key << endl;
+}
+
+
+void writeEntry(VerseKey &key, SWBuf &text, bool force = false) {
+ static SWBuf activeVerseText;
+ char keyOsisID[255];
+
+ if (inCanonicalOSISBook) {
+ strcpy(keyOsisID, key.getOSISRef());
+
+ // set keyOsisID to anything that an osisID cannot be.
+ if (force) {
+ strcpy(keyOsisID, "-force");
+ }
+
+ static VerseKey lastKey;
+ lastKey.AutoNormalize(0);
+ lastKey.Headings(1);
+
+ VerseKey saveKey;
+ saveKey.AutoNormalize(0);
+ saveKey.Headings(1);
+ saveKey = key;
+
+ // If we have seen a verse and the supplied one is different then we output the collected one.
+ if (*activeOsisID && strcmp(activeOsisID, keyOsisID)) {
+
+ key = lastKey;
+
+ if (!isKJVRef(key)) {
+ makeKJVRef(key);
+ }
+
+#ifdef _ICU_
+ int utf8State = detectUTF8(activeVerseText.c_str());
+ if (normalize) {
+ // Don't need to normalize text that is ASCII
+ // But assume other non-UTF-8 text is Latin1 (cp1252) and convert it to UTF-8
+ if (!utf8State) {
+ cout << "Warning: " << activeOsisID << ": Converting to UTF-8 (" << activeVerseText << ")" << endl;
+ converter.processText(activeVerseText, (SWKey *)2); // note the hack of 2 to mimic a real key. TODO: remove all hacks
+ converted++;
+
+ // Prepare for double check. This probably can be removed.
+ // But for now we are running the check again.
+ // This is to determine whether we need to normalize output of the conversion.
+ utf8State = detectUTF8(activeVerseText.c_str());
+ }
+
+ // Double check. This probably can be removed.
+ if (!utf8State) {
+ cout << "Error: " << activeOsisID << ": Converting to UTF-8 (" << activeVerseText << ")" << endl;
+ }
+
+ if (utf8State > 0) {
+ SWBuf before = activeVerseText;
+ normalizer.processText(activeVerseText, (SWKey *)2); // note the hack of 2 to mimic a real key. TODO: remove all hacks
+ if (before != activeVerseText) {
+ normalized++;
+ }
+ }
+ }
+#endif
+
+ SWBuf currentText = module->getRawEntry();
+ if (currentText.length()) {
+ cout << "Appending entry: " << key.getOSISRef() << ": " << activeVerseText << endl;
+ activeVerseText = currentText + " " + activeVerseText;
+ }
+
+#ifdef DEBUG
+ cout << "Write: " << activeOsisID << ":" << key.getOSISRef() << ": " << activeVerseText << endl;
+#endif
+
+ module->setEntry(activeVerseText);
+ activeVerseText = "";
+ }
+
+ // eliminate leading whitespace on the beginning of each verse and
+ // before we append to current content, since we just added one
+ text.trimStart();
+ if (activeVerseText.length()) {
+ activeVerseText += " ";
+ activeVerseText += text;
+ }
+ else {
+ activeVerseText = text;
+ }
+
+ key = saveKey;
+ lastKey = key;
+ strcpy(activeOsisID, keyOsisID);
+ }
+}
+
+
+void linkToEntry(VerseKey& dest) {
+ //cout << "Verse: " << key << "\n";
+ //cout << "TEXT: " << text << "\n\n";
+ //SWBuf currentText = module->getRawEntry();
+ //if (currentText.length())
+ // text = currentText + " " + text;
+ VerseKey saveKey;
+ saveKey.AutoNormalize(0);
+ saveKey.Headings(1);
+ saveKey = *currentVerse;
+
+ if (!isKJVRef(*currentVerse)) {
+ makeKJVRef(*currentVerse);
+ }
+
+ cout << "Linking " << module->KeyText() << " to " << dest.getText() << "\n";
+ module->linkEntry(&dest);
+
+ *currentVerse = saveKey;
+}
+
+// Return true if the content was handled or is to be ignored.
+// false if the what has been seen is to be accumulated and considered later.
+bool handleToken(SWBuf &text, XMLTag *token) {
+
+ // Everything between the begin book tag and the first begin chapter tag is inBookHeader
+ static bool inBookHeader = false;
+ // Everything between the begin chapter tag and the first begin verse tag is inChapterHeader
+ static bool inChapterHeader = false;
+
+ // Flags to indicate whether we are in a book, chapter and/or verse
+ //static bool inBook = false;
+ //static bool inChapter = false;
+ static bool inVerse = true;
+
+ static SWBuf header = "";
+
+ // Used to remember titles that need to be handle specially
+ static SWBuf lastTitle = "";
+ static int titleOffset = -1;
+ static bool inTitle = false;
+ static int titleDepth = 0;
+
+ static ListKey lastVerseIDs = ListKey();
+
+ // Stack of elements used to validate that books, chapters and verses are well-formed
+ // This goes beyond simple xml well-formed and also considers milestoned div, chapter and verse
+ // to be begin and end tags, too.
+ // It is an error if books and chapters are not well formed (though not required by OSIS)
+ // It is a warning that verses are not well formed (because some clients are not ready)
+ static std::stack<XMLTag*> tagStack;
+ // The following are used to validate well-formedness
+ static int chapterDepth = 0;
+ static int bookDepth = 0;
+ static int verseDepth = 0;
+
+ int tagDepth = tagStack.size();
+ const char *tokenName = token->getName();
+ bool isEndTag = token->isEndTag() || token->getAttribute("eID");
+ const char *typeAttr = token->getAttribute("type");
+
+ //Titles are treated specially.
+ // If the title has an attribute type of "main" or "chapter"
+ // it belongs to its <div> or <chapter> and is treated as part of its heading
+ // Otherwise if it a title in a chapter before the first the first verse it
+ // is put into the verse as a preverse title.
+ if (!token->isEmpty() && !isEndTag && titleDepth == 0 && (!strcmp(tokenName, "title")) && (!typeAttr || (strcmp(typeAttr, "main") && strcmp(typeAttr, "chapter")))) {
+ titleOffset = text.length(); //start of the title tag
+ lastTitle = "";
+ inTitle = true;
+ tagStack.push(token);
+#ifdef DEBUG_STACK
+ cout << currentOsisID << ": push (" << tagStack.size() << ") " << token->getName() << endl;
+#endif
+ titleDepth = tagStack.size();
+ return false;
+ }
+ // Check titleDepth since titles can be nested. Don't want to quit too early.
+ else if (isEndTag && tagDepth == titleDepth && (!strcmp(tokenName, "title"))) {
+ lastTitle.append(text.c_str() + titleOffset); //<title ...> up to the end </title>
+ lastTitle.append(*token); //</title>
+
+#ifdef DEBUG
+ cout << currentOsisID << ":" << endl;
+ cout << "\tlastTitle: " << lastTitle.c_str() << endl;
+ cout << "\ttext-lastTitle: " << text.c_str()+titleOffset << endl;
+ cout << "\ttext: " << text.c_str() << endl;
+#endif
+ inTitle = false;
+ titleDepth = 0;
+#ifdef DEBUG_STACK
+ cout << currentOsisID << ": pop(" << tagStack.size() << ") " << tagStack.top()->getName() << endl;
+#endif
+ tagStack.pop();
+ return false; // don't add </title> to the text itself
+ }
+
+
+
+//-- START TAG -------------------------------------------------------------------------
+
+ if (!isEndTag) {
+
+ // Remember non-empty start tags
+ if (!token->isEmpty()) {
+ tagStack.push(token);
+#ifdef DEBUG_STACK
+ cout << currentOsisID << ": push (" << tagStack.size() << ") " << token->getName() << endl;
+#endif
+ }
+
+ //-- WITH OSIS ID -------------------------------------------------------------------------
+ //-- OR ANNOTATE REF -------------------------------------------------------------------------
+ if (token->getAttribute("osisID") || token->getAttribute("annotateRef")) {
+
+ // BOOK START
+ if ((!strcmp(tokenName, "div")) && (typeAttr && !strcmp(typeAttr, "book"))) {
+ inVerse = false;
+ if (inBookHeader || inChapterHeader) { // this one should never happen, but just in case
+#ifdef DEBUG
+ cout << currentOsisID << ": HEADING ";
+#endif
+ currentVerse->Testament(0);
+ currentVerse->Book(0);
+ currentVerse->Chapter(0);
+ currentVerse->Verse(0);
+ writeEntry(*currentVerse, text);
+ }
+ strcpy(currentOsisID, token->getAttribute("osisID"));
+ *currentVerse = currentOsisID;
+ currentVerse->Chapter(0);
+ currentVerse->Verse(0);
+ inBookHeader = true;
+ inChapterHeader = false;
+ lastTitle = "";
+ text = "";
+ bookDepth = tagStack.size();
+ chapterDepth = 0;
+ verseDepth = 0;
+
+ inCanonicalOSISBook = isOSISAbbrev(token->getAttribute("osisID"));
+
+ return true;
+ }
+
+ // CHAPTER START
+ else if (((!strcmp(tokenName, "div")) && (typeAttr && !strcmp(typeAttr, "chapter")))
+ || (!strcmp(tokenName, "chapter"))
+ ) {
+ inVerse = false;
+ if (inBookHeader) {
+#ifdef DEBUG
+ cout << currentOsisID << ": BOOK HEADING "<< text.c_str() << endl;
+#endif
+ writeEntry(*currentVerse, text);
+ }
+
+ strcpy(currentOsisID, token->getAttribute("osisID"));
+ *currentVerse = currentOsisID;
+ currentVerse->Verse(0);
+ inBookHeader = false;
+ inChapterHeader = true;
+ lastTitle = "";
+ text = "";
+ chapterDepth = tagStack.size();
+ verseDepth = 0;
+
+ return true;
+ }
+
+ // VERSE OR COMMENTARY START
+ else if (!strcmp(tokenName, "verse") ||
+ (!strcmp(tokenName, "div") &&
+ token->getAttribute("annotateType"))) {
+#ifdef DEBUG
+ cout << "Entering verse" << endl;
+#endif
+ inVerse = true;
+ if (inChapterHeader) {
+ SWBuf heading = text;
+
+ //make sure we don't insert the preverse title which belongs to the first verse of this chapter!
+ // Did we have a preverse title?
+ if (lastTitle.length())
+ {
+ //Was the preVerse title in the header (error if not)?
+ const char* header = heading.c_str();
+ const char* preVerse = strstr(header, lastTitle);
+ if (preVerse) {
+ if (preVerse == header) {
+ heading = ""; // do nothing
+ }
+ else {
+ // remove everything before the title from the beginning.
+ text = preVerse;
+ // Remove text from the end of the header.
+ heading.setSize(preVerse - header);
+ }
+ }
+ else {
+ cout << currentOsisID << ": Warning: Bug in code. Could not find title." << endl;
+ }
+ }
+ else {
+ text = "";
+ }
+
+ if (heading.length()) {
+#ifdef DEBUG
+ cout << currentOsisID << ": CHAPTER HEADING "<< heading.c_str() << endl;
+#endif
+ writeEntry(*currentVerse, heading);
+ }
+
+ inChapterHeader = false;
+ }
+
+ SWBuf keyVal = token->getAttribute(strcmp(tokenName, "verse") ? "annotateRef" : "osisID");
+ prepareSWVerseKey(keyVal);
+ lastVerseIDs = currentVerse->ParseVerseList(keyVal, *currentVerse, true);
+
+ // set currentVerse to the first value in the keyVal
+ VerseKey *element = SWDYNAMIC_CAST(VerseKey, lastVerseIDs.GetElement(0));
+ if (element) {
+ *currentVerse = element->LowerBound().getText();
+ }
+ else {
+ *currentVerse = lastVerseIDs.GetElement(0)->getText();
+ }
+
+ strcpy(currentOsisID, currentVerse->getOSISRef());
+#ifdef DEBUG
+ cout << "Current verse is " << *currentVerse << endl;
+ cout << "osisID/annotateRef is adjusted to" << keyVal << endl;
+#endif
+
+ verseDepth = tagStack.size();
+
+ return true;
+ }
+ }
+ // Handle stuff between the verses
+ // Whitespace producing empty tokens are appended to prior entry
+ // Also the quote
+ // This is a hack to get ESV to work
+ else if (!inTitle && !inVerse && token->isEmpty()) { // && !inBookHeader && !inChapterHeader) {
+ if (!strcmp(tokenName, "p") ||
+ !strcmp(tokenName, "div") ||
+ !strcmp(tokenName, "q") ||
+ !strcmp(tokenName, "l") ||
+ !strcmp(tokenName, "lb") ||
+ !strcmp(tokenName, "lg")
+ ) {
+#ifdef DEBUG
+ if (token) {
+ cout << currentOsisID << ": appending interverse start token " << *token << ":" << text.c_str() << endl;
+ }
+#endif
+ SWBuf tmp = token->toString();
+ writeEntry(*currentVerse, tmp);
+ return true;
+ }
+#ifdef DEBUG
+ else {
+ if (token) {
+ cout << currentOsisID << ": interverse start token " << *token << ":" << text.c_str() << endl;
+ }
+ }
+#endif
+ }
+ }
+
+//-- EMPTY and END TAG ---------------------------------------------------------------------------------------------
+
+ else {
+
+ if (tagStack.empty()) {
+ cout << currentOsisID << ": tag expected" << endl;
+ exit(1);
+ }
+
+ XMLTag* topToken = 0;
+ if (!token->isEmpty()) {
+ topToken = tagStack.top();
+ tagDepth = tagStack.size();
+#ifdef DEBUG_STACK
+ cout << currentOsisID << ": pop(" << tagDepth << ") " << topToken->getName() << endl;
+#endif
+ tagStack.pop();
+
+ if (strcmp(topToken->getName(), tokenName)) {
+ cout << "Error: " << currentOsisID << ": Expected " << topToken->getName() << " found " << tokenName << endl;
+// exit(1); // I'm sure this validity check is a good idea, but there's a but somewhere that's killing the converter here.
+ // So I'm disabling this line. Unvalidated OSIS files shouldn't be run through the converter anyway.
+ }
+ }
+
+ // VERSE and COMMENTARY END
+ if (!strcmp(tokenName, "verse") || (inVerse && !strcmp(tokenName, "div"))) {
+ inVerse = false;
+
+ if (tagDepth != verseDepth) {
+ cout << "Warning verse " << currentOsisID << " is not well formed:(" << verseDepth << "," << tagDepth << ")" << endl;
+ }
+
+ if (lastTitle.length()) {
+ const char* end = strchr(lastTitle, '>');
+#ifdef DEBUG
+ cout << currentOsisID << ":" << endl;
+ cout << "\t" << lastTitle << endl;
+ cout << "\tlength=" << int(end+1 - lastTitle.c_str()) << ", tag:" << lastTitle.c_str() << endl;
+#endif
+
+ SWBuf titleTagText;
+ titleTagText.append(lastTitle.c_str(), end+1 - lastTitle.c_str());
+#ifdef DEBUG
+ cout << currentOsisID << ": tagText: " << titleTagText.c_str() << endl;;
+#endif
+
+ XMLTag titleTag(titleTagText);
+ titleTag.setAttribute("type", "section");
+ titleTag.setAttribute("subType", "x-preverse");
+
+ //we insert the title into the text again - make sure to remove the old title text
+ const char* pos = strstr(text, lastTitle);
+ if (pos) {
+ SWBuf temp;
+ temp.append(text, pos-text.c_str());
+ temp.append(pos+lastTitle.length());
+ text = temp;
+ }
+
+ //if a title was already inserted at the beginning insert this one after that first title
+ int titlePos = 0;
+ if (!strncmp(text.c_str(),"<title ",7)) {
+ const char* tmp = strstr(text.c_str(), "</title>");
+ if (tmp) {
+ titlePos = (tmp-text.c_str()) + 8;
+ }
+ }
+ text.insert(titlePos, end+1);
+ text.insert(titlePos, titleTag);
+ }
+ // text += token;
+ writeEntry(*currentVerse, text);
+
+ // If we found an osisID like osisID="Gen.1.1 Gen.1.2 Gen.1.3" we have to link Gen.1.2 and Gen.1.3 to Gen.1.1
+ VerseKey dest = *currentVerse;
+ VerseKey linkKey;
+ linkKey.AutoNormalize(0);
+ linkKey.Headings(1); // turn on mod/testmnt/book/chap headings
+ linkKey.Persist(1);
+ for (lastVerseIDs = TOP; !lastVerseIDs.Error(); lastVerseIDs++) {
+ linkKey = lastVerseIDs;
+
+ if (linkKey.Verse() != dest.Verse() ||
+ linkKey.Chapter() != dest.Chapter() ||
+ linkKey.Book() != dest.Book() ||
+ linkKey.Testament() != dest.Testament())
+ {
+ *currentVerse = linkKey;
+ linkToEntry(dest);
+ }
+ }
+
+ lastTitle = "";
+ text = "";
+ verseDepth = 0;
+ return true;
+ }
+ else if (!inTitle && !inVerse && !inBookHeader && !inChapterHeader) {
+ // Is this the end of a chapter.
+ if (tagDepth == chapterDepth && (!strcmp(tokenName, "div") || !strcmp(tokenName, "chapter"))) {
+ chapterDepth = 0;
+ verseDepth = 0;
+ text = "";
+ return true;
+ }
+ // Or is it the end of a book
+ else if (tagDepth == bookDepth && (!strcmp(tokenName, "div"))) {
+ bookDepth = 0;
+ chapterDepth = 0;
+ verseDepth = 0;
+ text = "";
+ return true;
+ }
+ // Or is it the end of an osis document
+ else if (!strcmp(tokenName, "osisText") || !strcmp(tokenName, "osis")) {
+ bookDepth = 0;
+ chapterDepth = 0;
+ verseDepth = 0;
+ text = "";
+ return true;
+ }
+ // OTHER MISC END TAGS WHEN !INVERSE
+ // Test that is between verses, or after the last is appended to the preceeding verse.
+ else if (!strcmp(tokenName, "p") ||
+ !strcmp(tokenName, "div") ||
+ !strcmp(tokenName, "q") ||
+ !strcmp(tokenName, "l") ||
+ !strcmp(tokenName, "lb") ||
+ !strcmp(tokenName, "lg")
+ ) {
+ text.append(*token);
+ writeEntry(*currentVerse, text);
+ text = "";
+#ifdef DEBUG
+ cout << currentOsisID << ": appending interverse end tag: " << tokenName << "(" << tagDepth << "," << chapterDepth << "," << bookDepth << ")" << endl;
+#endif
+ return true;
+ }
+#ifdef DEBUG
+ cout << currentOsisID << ": interverse end tag: " << tokenName << "(" << tagDepth << "," << chapterDepth << "," << bookDepth << ")" << endl;
+#endif
+ }
+ }
+ return false;
+}
+
+XMLTag* transform(XMLTag* t) {
+ static std::stack<XMLTag*> tagStack;
+ static int sID = 1;
+ char buf[11];
+
+ // Support simplification transformations
+ if (!t->isEmpty()) {
+ if (!t->isEndTag()) {
+ tagStack.push(t);
+#ifdef DEBUG_XFORM
+ cout << currentOsisID << ": xform push (" << tagStack.size() << ") " << t->getName() << endl;
+#endif
+ // Transform <q> into <q sID=""/> except for <q who="Jesus">
+ if ((!strcmp(t->getName(), "q")) && (!t->getAttribute("who") || strcmp(t->getAttribute("who"), "Jesus"))) {
+ t->setEmpty(true);
+ sprintf(buf, "q%d", sID++);
+ t->setAttribute("sID", buf);
+ }
+
+ // Transform <p> into <lb type="x-begin-paragraph"/>
+ else if (!strcmp(t->getName(), "p")) {
+ // note there is no process that should care about type, it is there for reversability
+ t->setText("<lb type=\"x-begin-paragraph\" />");
+ }
+ }
+ else {
+ XMLTag *topToken = tagStack.top();
+#ifdef DEBUG_XFORM
+ cout << currentOsisID << ": xform pop(" << tagStack.size() << ") " << topToken->getName() << endl;
+#endif
+ tagStack.pop();
+
+ // If we have found an end tag for a <q> that was transformed then transform this one as well.
+ if ((!strcmp(t->getName(), "q")) && (!strcmp(topToken->getName(), "q")) && (!topToken->getAttribute("who") || strcmp(topToken->getAttribute("who"), "Jesus"))) {
+ // make this a clone of the start tag with sID changed to eID
+ *t = *topToken;
+ t->setAttribute("eID", t->getAttribute("sID"));
+ t->setAttribute("sID", 0);
+ }
+
+ // Look for paragraph tags.
+ // If we have found an end tag for a <p> that was transformed then transform this as well.
+ else if ((!strcmp(t->getName(), "p")) && (!strcmp(topToken->getName(), "lb"))) {
+ t->setText("<lb type=\"x-end-paragraph\" />");
+ }
+ }
+ }
+ return t;
+}
+
+void usage(const char *app, const char *error = 0) {
+
+ if (error) fprintf(stderr, "\n%s: %s\n", app, error);
+
+ fprintf(stderr, "\nusage: %s <output/path> <osisDoc> [OPTIONS]\n", app);
+ fprintf(stderr, " -a\t\t\t augment module if exists (default is to create new)\n");
+ fprintf(stderr, " -z\t\t\t use ZIP compression (default no compression)\n");
+ fprintf(stderr, " -Z\t\t\t use LZSS compression (default no compression)\n");
+ fprintf(stderr, " -b <2|3|4>\t\t compression block size (default 4):\n");
+ fprintf(stderr, "\t\t\t\t 2 - verse; 3 - chapter; 4 - book\n");
+ fprintf(stderr, " -c <cipher_key>\t encipher module using supplied key\n");
+ fprintf(stderr, "\t\t\t\t (default no enciphering)\n");
+ fprintf(stderr, " -N\t\t\t Do not convert UTF-8 or normalize UTF-8 to NFC\n");
+ fprintf(stderr, "\t\t\t\t (default is to convert to UTF-8, if needed, and then normalize to NFC");
+ fprintf(stderr, "\t\t\t\t Note: all UTF-8 texts should be normalized to NFC\n");
+ exit(-1);
+}
+
+int main(int argc, char **argv) {
+
+ fprintf(stderr, "You are running osis2mod: $Rev: 2169 $\n");
+
+ // Let's test our command line arguments
+ if (argc < 3) {
+ usage(*argv);
+ }
+
+ // variables for arguments, holding defaults
+ const char* program = argv[0];
+ const char* path = argv[1];
+ const char* osisDoc = argv[2];
+ int append = 0;
+ int compType = 0;
+ int iType = 4;
+ string cipherKey = "";
+
+ SWCompress *compressor = 0;
+
+ for (int i = 3; i < argc; i++) {
+ if (!strcmp(argv[i], "-a")) {
+ append = 1;
+ }
+ else if (!strcmp(argv[i], "-z")) {
+ if (compType) usage(*argv, "Cannot specify both -z and -Z");
+ compType = 2;
+ }
+ else if (!strcmp(argv[i], "-Z")) {
+ if (compType) usage(*argv, "Cannot specify both -z and -Z");
+ compType = 1;
+ }
+ else if (!strcmp(argv[i], "-b")) {
+ if (i+1 < argc) {
+ iType = atoi(argv[++i]);
+ if ((iType >= 2) && (iType <= 4)) continue;
+ }
+ usage(*argv, "-b requires one of <2|3|4>");
+ }
+ else if (!strcmp(argv[i], "-N")) {
+ normalize = false;
+ }
+ else if (!strcmp(argv[i], "-c")) {
+ if (i+1 < argc) cipherKey = argv[++i];
+ else usage(*argv, "-c requires <cipher_key>");
+ }
+ else usage(*argv, (((SWBuf)"Unknown argument: ")+ argv[i]).c_str());
+ }
+
+ switch (compType) { // these are deleted by zText
+ case 0: break;
+ case 1: compressor = new LZSSCompress(); break;
+ case 2: compressor = new ZipCompress(); break;
+ }
+
+#ifndef _ICU_
+ if (normalize) {
+ normalize = false;
+ cout << program << " is not compiled with support for ICU. Ignoring -n flag." << endl;
+ }
+#endif
+
+#ifdef DEBUG
+ cout << "path: " << path << " osisDoc: " << osisDoc << " create: " << append << " compressType: " << compType << " blockType: " << iType << " cipherKey: " << cipherKey.c_str() << " normalize: " << normalize << "\n";
+ cout << "";
+// exit(-3);
+#endif
+
+
+ if (!append) { // == 0 then create module
+ // Try to initialize a default set of datafiles and indicies at our
+ // datapath location passed to us from the user.
+ if ( compressor ) {
+ if ( zText::createModule(path, iType) ) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s \n", program, path);
+ exit(-3);
+ }
+ }
+ else if (RawText::createModule(path)) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s \n", program, path);
+ exit(-3);
+ }
+ }
+
+ // Let's see if we can open our input file
+ ifstream infile(osisDoc);
+ if (infile.fail()) {
+ fprintf(stderr, "error: %s: couldn't open input file: %s \n", program, osisDoc);
+ exit(-2);
+ }
+
+ // Do some initialization stuff
+ if (compressor) {
+ module = new zText(path, 0, 0, iType, compressor);
+ }
+ else{
+ module = new RawText(path); // open our datapath with our RawText driver.
+ }
+
+ SWFilter *cipherFilter = 0;
+
+ if (!cipherKey.empty()) {
+ fprintf(stderr, "Adding cipher filter with phrase: %s\n", cipherKey.c_str() );
+ cipherFilter = new CipherFilter(cipherKey.c_str());
+ module->AddRawFilter(cipherFilter);
+ }
+
+ if (!module->isWritable()) {
+ fprintf(stderr, "The module is not writable. Writing text to it will not work.\nExiting.\n" );
+ exit(-1);
+ }
+
+ activeOsisID[0] = '\0';
+ strcpy(currentOsisID,"N/A");
+
+ currentVerse = new VerseKey();
+ currentVerse->AutoNormalize(0);
+ currentVerse->Headings(1); // turn on mod/testmnt/book/chap headings
+ currentVerse->Persist(1);
+
+ module->setKey(*currentVerse);
+
+ (*module) = TOP;
+
+ SWBuf token;
+ SWBuf text;
+ bool intoken = false;
+ bool inWhitespace = false;
+ bool seeingSpace = false;
+ char curChar = '\0';
+
+ while (infile.good()) {
+
+ curChar = infile.get();
+
+ // skip the character if it is bad. infile.good() will catch the problem
+ if (curChar == -1) {
+ continue;
+ }
+
+ if (!intoken && curChar == '<') {
+ intoken = true;
+ token = "<";
+ continue;
+ }
+
+ // Outside of tokens merge adjacent whitespace
+ if (!intoken) {
+ seeingSpace = isspace(curChar);
+ if (seeingSpace) {
+ if (inWhitespace) {
+ continue;
+ }
+ // convert all whitespace to blanks
+ curChar = ' ';
+ }
+ inWhitespace = seeingSpace;
+ }
+
+ if (intoken && curChar == '>') {
+ intoken = false;
+ inWhitespace = false;
+ token.append('>');
+ // take this isalpha if out to check for bugs in text
+ if ((isalpha(token[1])) || (isalpha(token[2]))) {
+ //cout << "Handle:" << token.c_str() << endl;
+ XMLTag *t = new XMLTag(token.c_str());
+
+ if (!handleToken(text, transform(t))) {
+ text.append(*t);
+ }
+ }
+ continue;
+ }
+
+ if (intoken)
+ token.append(curChar);
+ else
+ switch (curChar) {
+ case '>' : text.append("&gt;"); break;
+ case '<' : text.append("&lt;"); break;
+ default : text.append(curChar); break;
+ }
+ }
+
+ // Force the last entry from the text buffer.
+ text = "";
+ writeEntry(*currentVerse, text, true);
+ delete module;
+ delete currentVerse;
+ if (cipherFilter)
+ delete cipherFilter;
+ infile.close();
+
+#ifdef _ICU_
+ if (converted) fprintf(stderr, "osis2mod converted %d verses to UTF-8\n", converted);
+ if (normalized) fprintf(stderr, "osis2mod normalized %d verses to NFC\n", normalized);
+#endif
+}
+
diff --git a/utilities/perl/Makefile.am b/utilities/perl/Makefile.am
new file mode 100644
index 0000000..d9c9556
--- /dev/null
+++ b/utilities/perl/Makefile.am
@@ -0,0 +1,6 @@
+swperlutildir = $(top_srcdir)/utilities/perl
+
+EXTRA_DIST += $(swperlutildir)/cipherkeygen.pl
+EXTRA_DIST += $(swperlutildir)/linkvers.pl
+EXTRA_DIST += $(swperlutildir)/localecap.pl
+EXTRA_DIST += $(swperlutildir)/mkvsmod.pl
diff --git a/utilities/perl/cipherkeygen.pl b/utilities/perl/cipherkeygen.pl
new file mode 100755
index 0000000..db53d88
--- /dev/null
+++ b/utilities/perl/cipherkeygen.pl
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+
+# cipherkeygen.pl
+
+# generates a cipher key of the format \d{4}[a-zA-Z]{4}\d{4}[a-zA-Z]{4}.
+# because I'm lazy and not random enough.
+# and because the utilities/perl directory is kinda bare...
+
+
+# let's get a base key of \d{4}[A-Z]{4}\d{4}[A-Z]{4}
+$key = int(rand() * 10) . int(rand() * 10) . int(rand() * 10) . int(rand() * 10) . chr(int(rand() * 26) + 0x41) . chr(int(rand() * 26) + 0x41) . chr(int(rand() * 26) + 0x41) . chr(int(rand() * 26) + 0x41) . int(rand() * 10) . int(rand() * 10) . int(rand() * 10) . int(rand() * 10) . chr(int(rand() * 26) + 0x41) . chr(int(rand() * 26) + 0x41) . chr(int(rand() * 26) + 0x41) . chr(int(rand() * 26) + 0x41);
+
+# now randomly lowercase the letters, printing as we go
+foreach $c (unpack ("cccccccccccccccc", $key)) {
+ $c = chr($c);
+ if (rand() < 0.5) {
+ $c = lc($c);
+ }
+ print $c;
+}
+print "\n";
+
+
+
diff --git a/utilities/perl/linkvers.pl b/utilities/perl/linkvers.pl
new file mode 100755
index 0000000..caf3192
--- /dev/null
+++ b/utilities/perl/linkvers.pl
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+
+$vplfile = $ARGV[0];
+
+if ($vplfile eq "") {
+ die("linkvers.pl Syntax:\n./linkvers.pl <vpl file> [1 - checking mode on].\nMust be run AFTER vpl2mod is completed.\n");
+}
+
+$check = $ARGV[1];
+
+open(INF,$vplfile) or die;
+while (<INF>) {
+ $line = $_;
+
+ $line =~ /([\w ]+:[\d\-]+)\s+(.*)/;
+ $vref = $1;
+
+ if ($vref =~ /\-/) {
+ $vref =~ /(.*:)(\d+)\-(\d+)/;
+ $ch = $1;
+ $fv = $2;
+ $lv = $3;
+ if ($fv + 1 == $lv) {
+ $sv = $lv;
+ }
+ else {
+ $sv = $fv + 1;
+ $sv .= "-" . $lv;
+ }
+ $first = $ch . $fv;
+ $last = $ch . $sv;
+
+ if ($check ne "") {
+ print "$first\t\t$last\n";
+ } else {
+ `addvs -l ./ \"$first\" \"$last\"`;
+ }
+ }
+}
+close(INF);
+
+
+
+
diff --git a/utilities/perl/localecap.pl b/utilities/perl/localecap.pl
new file mode 100755
index 0000000..f5d846e
--- /dev/null
+++ b/utilities/perl/localecap.pl
@@ -0,0 +1,23 @@
+#!/usr/bin/perl
+
+# This tool is only for locales in Latin-1, not UTF-8 (should such locales be supported at a later date)
+
+use locale;
+
+$abbrevs = 0;
+
+open (INPUT, "$ARGV[0]") or print "Give the locale file as an argument.\n";
+@loc = <INPUT>;
+close (INPUT);
+open (OUTPUT, ">$ARGV[0]");
+foreach $line (@loc) {
+
+ if ($line =~ /\[Book Abbrevs\]/) {
+ $abbrevs = 1;
+ }
+ elsif ($abbrevs == 1) {
+ $line = uc($line);
+ }
+ print OUTPUT $line;
+}
+close (OUTPUT);
diff --git a/utilities/perl/mkvsmod.pl b/utilities/perl/mkvsmod.pl
new file mode 100755
index 0000000..e44c27d
--- /dev/null
+++ b/utilities/perl/mkvsmod.pl
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+
+open (INF, $ARGV[0]);
+
+`addvs -c ./`;
+while (<INF>) {
+
+ $line = $_;
+ $line =~ s/[\r\n]//g;
+ $line =~ /(.+\d+:\d+:?) +(.*)/;
+ $ref = $1;
+ $ver = $2;
+ open (BUF, ">buffer");
+ print BUF "$ver";
+ close (BUF);
+ $x = `addvs -a ./ \"$ref\" buffer`;
+ print "$ref\n";
+
+}
+
+close (INF);
diff --git a/utilities/step2vpl.cpp b/utilities/step2vpl.cpp
new file mode 100644
index 0000000..b76dd6a
--- /dev/null
+++ b/utilities/step2vpl.cpp
@@ -0,0 +1,429 @@
+#include <iostream>
+#include <string>
+#include <stdio.h>
+#include <sys/stat.h>
+
+#include <fcntl.h>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <filemgr.h>
+#include <lzsscomprs.h>
+
+using namespace std;
+#ifndef NO_SWORD_NAMESPACE
+using namespace sword;
+#endif
+
+long SECTIONSLEVELSTART = 38;
+long SECTIONSLEVELSIZE = 29;
+
+long VIEWABLEBLOCKSTART = 0;
+long VIEWABLEBLOCKSIZE = 0;
+
+typedef struct {
+ short versionRecordSize;
+ short publisherID;
+ short bookID;
+ short setID;
+ char conversionProgramVerMajor;
+ char conversionProgramVerMinor;
+ char leastCompatSTEPVerMajor;
+ char leastCompatSTEPVerMinor;
+ char encryptionType;
+ char editionID;
+ short modifiedBy;
+} Version;
+
+typedef struct {
+ short sectionsHeaderRecordSize;
+ long levelEntriesCount; // this is listed as nonGlossBlocksCount in spec!
+ long glossEntriesCount;
+ short levelEntriesSize;
+ long reserved;
+} SectionsHeader;
+
+typedef struct {
+ short viewableHeaderRecordSize;
+ long viewableBlocksCount; // this is listed as nonGlossBlocksCount in spec!
+ long glossBlocksCount;
+ char compressionType; // 0 - none; 1 - LZSS
+ char reserved1;
+ short blockEntriesSize;
+ short reserved2;
+} ViewableHeader;
+
+typedef struct {
+ short vSyncHeaderRecordSize;
+ short startBookNumber;
+ short endBookNumber;
+ short bookPointerEntriesSize;
+ short syncPointEntriesSize;
+ long reserved1_1;
+ short reserved1_2;
+} VSyncHeader;
+
+typedef struct {
+ long offset;
+ long uncompressedSize;
+ long size;
+} ViewableBlock;
+
+typedef struct {
+ long offset; // offset into VSYNC.IDX to first VSyncPoint
+ short count; // number of VSyncPoints for this book
+} VSyncBooksInfo;
+
+typedef struct {
+ short chapter;
+ short verse;
+ long offset; // offset into SECTIONS.IDX
+} VSyncPoint;
+
+typedef struct {
+ long parentOffset; // many of these are 0 if glossary
+ long previousOffset;
+ long nextOffset;
+ long viewableOffset;
+ short startLevel;
+ char level;
+ long nameOffset;
+ long outSync_1;
+ short outSync_2;
+} SectionLevelInfo;
+
+void readVersion(int fd, Version *versionRecord);
+void readHeaderControlWordAreaText(int fd, char **buf);
+void readViewableHeader(int fd, ViewableHeader *viewableHeaderRecord);
+void readVSyncHeader(int fd, VSyncHeader *vSyncHeaderRecord);
+void readVSyncBooksInfo(int fd, VSyncHeader *, VSyncBooksInfo **vSyncBooksInfo);
+void readViewableBlock(int fd, ViewableBlock *vb);
+void readViewableBlockText(int fd, ViewableBlock *vb, char **buf);
+void readSectionsHeader(int fd, SectionsHeader *sectionsHeaderRecord);
+void readSectionLevelInfo(int fd, SectionLevelInfo *sli);
+void readSectionName(int fd, SectionLevelInfo *sli, char **name);
+void displayBook(int fdbook, int fdviewable, int fdvsync, int fdsections, VSyncBooksInfo *vSyncBooksInfo);
+void extractVerseText(int fdviewable, int fdbook, SectionLevelInfo *sectionLevelInfo, char **verseText);
+void cleanBuf(char *buf);
+
+SWCompress *compress = 0;
+
+int main(int argc, char **argv) {
+
+ compress = new LZSSCompress();
+ char *buf;
+ Version versionRecord;
+ VSyncHeader vSyncHeaderRecord;
+ VSyncBooksInfo *vSyncBooksInfo;
+ SectionsHeader sectionsHeaderRecord;
+ ViewableHeader viewableHeaderRecord;
+
+
+ if (argc < 2) {
+ cerr << "usage: "<< *argv << " <database to step module>\n";
+ exit (-1);
+ }
+
+ string bookpath = argv[1];
+ string fileName;
+
+ if ((argv[1][strlen(argv[1])-1] != '/') &&
+ (argv[1][strlen(argv[1])-1] != '\\'))
+ bookpath += "/";
+
+ fileName = bookpath + "Book.dat";
+ int fdbook = FileMgr::openFileReadOnly(fileName.c_str());
+
+ if (fdbook < 1) {
+ cerr << "error, couldn't open file: " << fileName << "\n";
+ exit (-2);
+ }
+
+ readVersion(fdbook, &versionRecord);
+ readHeaderControlWordAreaText(fdbook, &buf);
+ delete [] buf;
+
+
+ fileName = bookpath + "Viewable.idx";
+ int fdviewable = FileMgr::openFileReadOnly(fileName.c_str());
+
+ if (fdviewable < 1) {
+ cerr << "error, couldn't open file: " << fileName << "\n";
+ exit (-3);
+ }
+
+ readVersion(fdviewable, &versionRecord);
+ readViewableHeader(fdviewable, &viewableHeaderRecord);
+
+ VIEWABLEBLOCKSTART = lseek(fdviewable, 0, SEEK_CUR);
+ VIEWABLEBLOCKSIZE = viewableHeaderRecord.blockEntriesSize;
+
+
+ fileName = bookpath + "Vsync.idx";
+ int fdvsync = FileMgr::openFileReadOnly(fileName.c_str());
+
+ if (fdvsync < 1) {
+ cerr << "error, couldn't open file: " << fileName << "\n";
+ exit (-4);
+ }
+
+ fileName = bookpath + "Sections.idx";
+ int fdsections = FileMgr::openFileReadOnly(fileName.c_str());
+
+ if (fdsections < 1) {
+ cerr << "error, couldn't open file: " << fileName << "\n";
+ exit (-4);
+ }
+ readVersion(fdsections, &versionRecord);
+ readSectionsHeader(fdsections, &sectionsHeaderRecord);
+ SECTIONSLEVELSTART = lseek(fdsections, 0, SEEK_CUR);
+ SECTIONSLEVELSIZE = sectionsHeaderRecord.levelEntriesSize;
+
+ readVersion(fdvsync, &versionRecord);
+ readVSyncHeader(fdvsync, &vSyncHeaderRecord);
+ readVSyncBooksInfo(fdvsync, &vSyncHeaderRecord, &vSyncBooksInfo);
+ int bookCount = vSyncHeaderRecord.endBookNumber - vSyncHeaderRecord.startBookNumber;
+ for (int i = 0; i <= bookCount; i++) {
+ displayBook(fdbook, fdviewable, fdvsync, fdsections, &vSyncBooksInfo[i]);
+ }
+
+ close(fdviewable);
+ close(fdvsync);
+ close(fdsections);
+ close(fdbook);
+
+}
+
+
+
+void readVersion(int fd, Version *versionRecord) {
+
+ read(fd, &(versionRecord->versionRecordSize), 2);
+ read(fd, &(versionRecord->publisherID), 2);
+ read(fd, &(versionRecord->bookID), 2);
+ read(fd, &(versionRecord->setID), 2);
+ read(fd, &(versionRecord->conversionProgramVerMajor), 1);
+ read(fd, &(versionRecord->conversionProgramVerMinor), 1);
+ read(fd, &(versionRecord->leastCompatSTEPVerMajor), 1);
+ read(fd, &(versionRecord->leastCompatSTEPVerMinor), 1);
+ read(fd, &(versionRecord->encryptionType), 1);
+ read(fd, &(versionRecord->editionID), 1);
+ read(fd, &(versionRecord->modifiedBy), 2);
+
+ int skip = versionRecord->versionRecordSize - 16/*sizeof(struct Version*/;
+
+ if (skip) {
+ char *skipbuf = new char[skip];
+ read(fd, skipbuf, skip);
+ delete [] skipbuf;
+ }
+}
+
+
+void readSectionsHeader(int fd, SectionsHeader *sectionsHeaderRecord) {
+
+ read(fd, &(sectionsHeaderRecord->sectionsHeaderRecordSize), 2);
+ read(fd, &(sectionsHeaderRecord->levelEntriesCount), 4);
+ read(fd, &(sectionsHeaderRecord->glossEntriesCount), 4);
+ read(fd, &(sectionsHeaderRecord->levelEntriesSize), 2);
+ read(fd, &(sectionsHeaderRecord->reserved), 4);
+
+ int skip = sectionsHeaderRecord->sectionsHeaderRecordSize - 16/*sizeof(struct ViewableHeader)*/;
+
+ if (skip) {
+ char *skipbuf = new char[skip];
+ read(fd, skipbuf, skip);
+ delete [] skipbuf;
+ }
+}
+
+
+void readViewableHeader(int fd, ViewableHeader *viewableHeaderRecord) {
+
+ read(fd, &(viewableHeaderRecord->viewableHeaderRecordSize), 2);
+ read(fd, &(viewableHeaderRecord->viewableBlocksCount), 4);
+ read(fd, &(viewableHeaderRecord->glossBlocksCount), 4);
+ read(fd, &(viewableHeaderRecord->compressionType), 1);
+ read(fd, &(viewableHeaderRecord->reserved1), 1);
+ read(fd, &(viewableHeaderRecord->blockEntriesSize), 2);
+ read(fd, &(viewableHeaderRecord->reserved2), 2);
+
+ int skip = viewableHeaderRecord->viewableHeaderRecordSize - 16/*sizeof(struct ViewableHeader)*/;
+
+ if (skip) {
+ char *skipbuf = new char[skip];
+ read(fd, skipbuf, skip);
+ delete [] skipbuf;
+ }
+}
+
+
+void readVSyncHeader(int fd, VSyncHeader *vSyncHeaderRecord) {
+
+ read(fd, &(vSyncHeaderRecord->vSyncHeaderRecordSize), 2);
+ read(fd, &(vSyncHeaderRecord->startBookNumber), 2);
+ read(fd, &(vSyncHeaderRecord->endBookNumber), 2);
+ read(fd, &(vSyncHeaderRecord->bookPointerEntriesSize), 2);
+ read(fd, &(vSyncHeaderRecord->syncPointEntriesSize), 2);
+ read(fd, &(vSyncHeaderRecord->reserved1_1), 4);
+ read(fd, &(vSyncHeaderRecord->reserved1_2), 2);
+
+ int skip = vSyncHeaderRecord->vSyncHeaderRecordSize - 16/*sizeof(VSyncHeader)*/;
+
+ if (skip) {
+ char *skipbuf = new char[skip];
+ read(fd, skipbuf, skip);
+ delete [] skipbuf;
+ }
+}
+
+
+void readViewableBlockText(int fd, ViewableBlock *vb, char **buf) {
+ unsigned long size = vb->size;
+
+ *buf = new char [ ((vb->size > vb->uncompressedSize) ? vb->size : vb->uncompressedSize) + 1 ];
+ lseek(fd, vb->offset, SEEK_SET);
+ read(fd, *buf, vb->size);
+
+ compress->zBuf(&size, *buf);
+ strcpy(*buf, compress->Buf());
+}
+
+
+void readViewableBlock(int fd, ViewableBlock *vb) {
+
+ read(fd, &(vb->offset), 4);
+ read(fd, &(vb->uncompressedSize), 4);
+ read(fd, &(vb->size), 4);
+}
+
+
+void readHeaderControlWordAreaText(int fd, char **buf) {
+ long headerControlWordAreaSize;
+ read(fd, &headerControlWordAreaSize, 4);
+
+ *buf = new char [headerControlWordAreaSize + 1];
+
+ read(fd, *buf, headerControlWordAreaSize);
+ (*buf)[headerControlWordAreaSize] = 0;
+
+}
+
+void readVSyncBooksInfo(int fd, VSyncHeader *vSyncHeaderRecord, VSyncBooksInfo **vSyncBooksInfo) {
+
+ int bookCount = vSyncHeaderRecord->endBookNumber - vSyncHeaderRecord->startBookNumber;
+ *vSyncBooksInfo = new VSyncBooksInfo[bookCount];
+ for (int i = 0; i <= bookCount; i++) {
+ read(fd, &(*vSyncBooksInfo)[i].offset, 4);
+ read(fd, &(*vSyncBooksInfo)[i].count, 2);
+ }
+}
+
+void displayBook(int fdbook, int fdviewable, int fdvsync, int fdsections, VSyncBooksInfo *vSyncBooksInfo) {
+ VSyncPoint vSyncPoint;
+
+ lseek(fdvsync, vSyncBooksInfo->offset, SEEK_SET);
+
+ for (int i = 0; i < vSyncBooksInfo->count; i++) {
+
+ SectionLevelInfo sectionLevelInfo;
+ char *sectionName;
+ char *verseText;
+
+ read(fdvsync, &(vSyncPoint.chapter), 2);
+ read(fdvsync, &(vSyncPoint.verse), 2);
+ read(fdvsync, &(vSyncPoint.offset), 4);
+ vSyncPoint.offset = SECTIONSLEVELSTART + (vSyncPoint.offset * SECTIONSLEVELSIZE);
+ lseek(fdsections, vSyncPoint.offset, SEEK_SET);
+ readSectionLevelInfo(fdsections, &sectionLevelInfo);
+ readSectionName(fdsections, &sectionLevelInfo, &sectionName);
+ cout << sectionName << " ";
+ delete [] sectionName;
+ extractVerseText(fdviewable, fdbook, &sectionLevelInfo, &verseText);
+ cleanBuf(verseText);
+ cout << verseText << "\n";
+ delete [] verseText;
+ }
+}
+
+
+void extractVerseText(int fdviewable, int fdbook, SectionLevelInfo *sectionLevelInfo, char **verseText) {
+ char numberBuf[16];
+ string startToken;
+ ViewableBlock vb;
+ int len = 0;
+ static long lastEntryOffset = -1;
+ static class FreeCachedEntryText {
+ public:
+ char *entryText;
+ FreeCachedEntryText() { entryText = 0; }
+ ~FreeCachedEntryText() { if (entryText) delete [] entryText; }
+ } _freeCachedEntryText;
+
+ if (sectionLevelInfo->viewableOffset != lastEntryOffset) {
+ if (_freeCachedEntryText.entryText)
+ delete [] _freeCachedEntryText.entryText;
+
+ lseek(fdviewable, sectionLevelInfo->viewableOffset, SEEK_SET);
+ readViewableBlock(fdviewable, &vb);
+ readViewableBlockText(fdbook, &vb, &(_freeCachedEntryText.entryText));
+ lastEntryOffset = sectionLevelInfo->viewableOffset;
+ }
+ sprintf(numberBuf, "%d", sectionLevelInfo->startLevel);
+ startToken = "\\stepstartlevel";
+ startToken += numberBuf;
+ char *start = strstr(_freeCachedEntryText.entryText, startToken.c_str());
+ if (start) {
+ start += strlen(startToken.c_str());
+ char *end = strstr(start, "\\stepstartlevel");
+ if (end)
+ len = end - start;
+ else len = strlen(start);
+ }
+ *verseText = new char [ len + 1 ];
+ strncpy(*verseText, start, len);
+ (*verseText)[len] = 0;
+}
+
+
+void readSectionName(int fd, SectionLevelInfo *sli, char **name) {
+ short size;
+ lseek(fd, sli->nameOffset, SEEK_SET);
+ read(fd, &size, 2);
+ *name = new char [ size + 1 ];
+ read(fd, *name, size);
+ (*name)[size] = 0;
+}
+
+void readSectionLevelInfo(int fd, SectionLevelInfo *sli) {
+
+ read(fd, &(sli->parentOffset), 4);
+ read(fd, &(sli->previousOffset), 4);
+ read(fd, &(sli->nextOffset), 4);
+ read(fd, &(sli->viewableOffset), 4);
+ sli->viewableOffset = VIEWABLEBLOCKSTART + (VIEWABLEBLOCKSIZE * sli->viewableOffset);
+ read(fd, &(sli->startLevel), 2);
+ read(fd, &(sli->level), 1);
+ read(fd, &(sli->nameOffset), 4);
+ read(fd, &(sli->outSync_1), 4);
+ read(fd, &(sli->outSync_2), 2);
+}
+
+void cleanBuf(char *buf) {
+ char *from = buf;
+ char *to = buf;
+
+ while (*from) {
+ if ((*from != 10) && (*from != 13)) {
+ *to++ = *from++;
+ }
+ else {
+ from++;
+ }
+ }
+ *to = 0;
+}
diff --git a/utilities/stepdump.cpp b/utilities/stepdump.cpp
new file mode 100644
index 0000000..b34bd0a
--- /dev/null
+++ b/utilities/stepdump.cpp
@@ -0,0 +1,253 @@
+#include <iostream>
+#include <string>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <filemgr.h>
+#include <lzsscomprs.h>
+
+using namespace std;
+#ifndef NO_SWORD_NAMESPACE
+using namespace sword;
+#endif
+
+typedef struct {
+ short versionRecordSize;
+ short publisherID;
+ short bookID;
+ short setID;
+ char conversionProgramVerMajor;
+ char conversionProgramVerMinor;
+ char leastCompatSTEPVerMajor;
+ char leastCompatSTEPVerMinor;
+ char encryptionType;
+ char editionID;
+ short modifiedBy;
+} Version;
+
+typedef struct {
+ short viewableHeaderRecordSize;
+ long viewableBlocksCount; // this is listed as nonGlossBlocksCount in spec!
+ long glossBlocksCount;
+ char compressionType; // 0 - none; 1 - LZSS
+ char reserved1;
+ short blockEntriesSize;
+ short reserved2;
+} ViewableHeader;
+
+typedef struct {
+ long offset;
+ long uncompressedSize;
+ long size;
+} ViewableBlock;
+
+void readVersion(int fd, Version *versionRecord);
+void readHeaderControlWordAreaText(int fd, char **buf);
+void readViewableHeader(int fd, ViewableHeader *viewableHeaderRecord);
+void readViewableBlock(int fd, ViewableBlock *vb);
+void readViewableBlockText(int fd, ViewableBlock *vb, char **buf);
+
+SWCompress *compress = 0;
+
+int main(int argc, char **argv) {
+
+ compress = new LZSSCompress();
+ char *buf;
+ Version versionRecord;
+ ViewableHeader viewableHeaderRecord;
+
+ if (argc < 2) {
+ cerr << "usage: "<< *argv << " <database to step module>\n";
+ exit (-1);
+ }
+
+ string bookpath = argv[1];
+ string fileName;
+
+ if ((argv[1][strlen(argv[1])-1] != '/') &&
+ (argv[1][strlen(argv[1])-1] != '\\'))
+ bookpath += "/";
+
+ fileName = bookpath + "Book.dat";
+ int fd = FileMgr::openFileReadOnly(fileName.c_str());
+
+ if (fd < 1) {
+ cerr << "error, couldn't open file: " << fileName << "\n";
+ exit (-2);
+ }
+
+ readVersion(fd, &versionRecord);
+ readHeaderControlWordAreaText(fd, &buf);
+ delete [] buf;
+
+
+ fileName = bookpath + "Viewable.idx";
+ int fdv = FileMgr::openFileReadOnly(fileName.c_str());
+
+ if (fdv < 1) {
+ cerr << "error, couldn't open file: " << fileName << "\n";
+ exit (-3);
+ }
+
+ readVersion(fdv, &versionRecord);
+ readViewableHeader(fdv, &viewableHeaderRecord);
+
+ ViewableBlock vb;
+
+ cout << "\n\nReading special preface viewable BLOCK 0";
+
+ readViewableBlock(fdv, &vb);
+ readViewableBlockText(fd, &vb, &buf);
+ delete [] buf;
+
+ int nonGlossBlocksCount = viewableHeaderRecord.viewableBlocksCount
+ - viewableHeaderRecord.glossBlocksCount;
+
+ cout << "\n\nReading " << nonGlossBlocksCount << " non-glossary viewable blocks";
+ // 1 because we already read the first block above
+ for (int i = 1; i < nonGlossBlocksCount; i++) {
+ cout << "\nNon-Glossary viewable block: " << i;
+ readViewableBlock(fdv, &vb);
+ readViewableBlockText(fd, &vb, &buf);
+ delete [] buf;
+ }
+
+ cout << "\n\nReading " << viewableHeaderRecord.glossBlocksCount << " glossary viewable blocks";
+ for (int i = 0; i < viewableHeaderRecord.glossBlocksCount; i++) {
+ cout << "\nGlossary viewable block: " << i;
+ readViewableBlock(fdv, &vb);
+ readViewableBlockText(fd, &vb, &buf);
+ delete [] buf;
+ }
+
+ close(fdv);
+ close(fd);
+
+}
+
+
+
+void readVersion(int fd, Version *versionRecord) {
+
+ cout << "\n\nReading Version Record (" << 16/*sizeof(struct Version)*/ << " bytes)\n\n";
+// DO NOT USE BECAUSE OF RECORD BYTE ALIGNMENT PROBLEMS
+// read(fd, &versionRecord, sizeof(struct Version));
+
+ cout << "Version Record Information\n";
+ read(fd, &(versionRecord->versionRecordSize), 2);
+ cout << "\tversionRecordSize: " << versionRecord->versionRecordSize << "\n";
+ read(fd, &(versionRecord->publisherID), 2);
+ cout << "\tpublisherID: " << versionRecord->publisherID << "\n";
+ read(fd, &(versionRecord->bookID), 2);
+ cout << "\tbookID: " << versionRecord->bookID << "\n";
+ read(fd, &(versionRecord->setID), 2);
+ cout << "\tsetID: " << versionRecord->setID << "\n";
+ read(fd, &(versionRecord->conversionProgramVerMajor), 1);
+ cout << "\tconversionProgramVerMajor: " << (int)versionRecord->conversionProgramVerMajor << "\n";
+ read(fd, &(versionRecord->conversionProgramVerMinor), 1);
+ cout << "\tconversionProgramVerMinor: " << (int)versionRecord->conversionProgramVerMinor << "\n";
+ read(fd, &(versionRecord->leastCompatSTEPVerMajor), 1);
+ cout << "\tleastCompatSTEPVerMajor: " << (int)versionRecord->leastCompatSTEPVerMajor << "\n";
+ read(fd, &(versionRecord->leastCompatSTEPVerMinor), 1);
+ cout << "\tleastCompatSTEPVerMinor: " << (int)versionRecord->leastCompatSTEPVerMinor << "\n";
+ read(fd, &(versionRecord->encryptionType), 1);
+ cout << "\tencryptionType: " << (int)versionRecord->encryptionType << "\n";
+ read(fd, &(versionRecord->editionID), 1);
+ cout << "\teditionID: " << (int)versionRecord->editionID << "\n";
+ read(fd, &(versionRecord->modifiedBy), 2);
+ cout << "\tmodifiedBy: " << versionRecord->modifiedBy << "\n";
+
+ int skip = versionRecord->versionRecordSize - 16/*sizeof(struct Version*/;
+
+ if (skip) {
+ cout << "\nSkipping " << skip << " unknown bytes.\n";
+ char *skipbuf = new char[skip];
+ read(fd, skipbuf, skip);
+ delete [] skipbuf;
+ }
+}
+
+
+void readViewableHeader(int fd, ViewableHeader *viewableHeaderRecord) {
+
+ cout << "\n\nReading Viewable Header Record (" << 16/*sizeof(struct ViewableHeader)*/ << " bytes)\n\n";
+
+// DO NOT USE BECAUSE OF RECORD BYTE ALIGNMENT PROBLEMS
+// read(fd, &viewableHeaderRecord, sizeof(struct ViewableHeader));
+
+ cout << "Viewable Header Record Information\n";
+ read(fd, &(viewableHeaderRecord->viewableHeaderRecordSize), 2);
+ cout << "\tviewableHeaderRecordSize: " << viewableHeaderRecord->viewableHeaderRecordSize << "\n";
+ read(fd, &(viewableHeaderRecord->viewableBlocksCount), 4);
+ cout << "\tviewableBlocksCount: " << viewableHeaderRecord->viewableBlocksCount << "\n";
+ read(fd, &(viewableHeaderRecord->glossBlocksCount), 4);
+ cout << "\tglossBlocksCount: " << viewableHeaderRecord->glossBlocksCount << "\n";
+ read(fd, &(viewableHeaderRecord->compressionType), 1);
+ cout << "\tcompressionType: " << (int)viewableHeaderRecord->compressionType << "(0 - none; 1 - LZSS)\n";
+ read(fd, &(viewableHeaderRecord->reserved1), 1);
+ cout << "\treserved1: " << (int)viewableHeaderRecord->reserved1 << "\n";
+ read(fd, &(viewableHeaderRecord->blockEntriesSize), 2);
+ cout << "\tblockEntriesSize: " << viewableHeaderRecord->blockEntriesSize << "\n";
+ read(fd, &(viewableHeaderRecord->reserved2), 2);
+ cout << "\treserved2: " << viewableHeaderRecord->reserved2 << "\n";
+
+ int skip = viewableHeaderRecord->viewableHeaderRecordSize - 16/*sizeof(struct ViewableHeader)*/;
+
+ if (skip) {
+ cout << "\nSkipping " << skip << " unknown bytes.\n";
+ char *skipbuf = new char[skip];
+ read(fd, skipbuf, skip);
+ delete [] skipbuf;
+ }
+}
+
+
+void readViewableBlockText(int fd, ViewableBlock *vb, char **buf) {
+ unsigned long size = vb->size;
+
+ *buf = new char [ ((vb->size > vb->uncompressedSize) ? vb->size : vb->uncompressedSize) + 1 ];
+ lseek(fd, vb->offset, SEEK_SET);
+ read(fd, *buf, vb->size);
+
+ compress->zBuf(&size, *buf);
+ strcpy(*buf, compress->Buf());
+ cout << "Viewable Block Text:\n";
+ cout << *buf << "\n\n";
+}
+
+
+void readViewableBlock(int fd, ViewableBlock *vb) {
+
+ cout << "\n\nReading Viewable Block (" << 12/*sizeof(struct ViewableHeader)*/ << " bytes)\n\n";
+
+// DO NOT USE BECAUSE OF RECORD BYTE ALIGNMENT PROBLEMS
+// read(fd, &vb, sizeof(struct ViewableBlock));
+
+ cout << "Viewable Block Information\n";
+ read(fd, &(vb->offset), 4);
+ cout << "\toffset: " << vb->offset << "\n";
+ read(fd, &(vb->uncompressedSize), 4);
+ cout << "\tuncompressedSize: " << vb->uncompressedSize << "\n";
+ read(fd, &(vb->size), 4);
+ cout << "\tsize: " << vb->size << "\n";
+}
+
+
+void readHeaderControlWordAreaText(int fd, char **buf) {
+ long headerControlWordAreaSize;
+ read(fd, &headerControlWordAreaSize, 4);
+ cout << "Reading Header Control Word Area (" << headerControlWordAreaSize << " bytes)\n\n";
+
+ *buf = new char [headerControlWordAreaSize + 1];
+
+ read(fd, *buf, headerControlWordAreaSize);
+ (*buf)[headerControlWordAreaSize] = 0;
+
+ cout << "headerControlWordArea:\n" << *buf << "\n";
+}
diff --git a/utilities/tei2mod.cpp b/utilities/tei2mod.cpp
new file mode 100644
index 0000000..a5ae6f4
--- /dev/null
+++ b/utilities/tei2mod.cpp
@@ -0,0 +1,531 @@
+/**
+ * This program handles xml files of the form:
+ * <TEI.2>
+ * <text>
+ * <body>
+ * <entry key="xxx">...</entry>
+ * <entryFree key="yyy">...</entryFree>
+ * <superentry key="zzz">...</superentry>
+ * </body>
+ * </text>
+ * </TEI.2>
+ * The document is assumed to be well-formed and valid.
+ * Three kinds of entries are allowed,
+ * <entry> - a very restricted form of a dictionary entry.
+ * <entryFree> - a very unrestricted form of a dictionary entry.
+ * <superentry> - an entry which can have other entries.
+ * The value of the key attribute is used as the key for the entry in the module.
+ * Note, for a <superentry> only it's key becomes a SWORD key.
+ * Keys of entries internal to it are not used.
+ *
+ * The entries must be sorted according to an ASCII collation of their bytes.
+ * This should be the same for Latin-1 and for UTF-8
+ *
+ * Sword will allow for any tags, but only a few have any styling.
+ *
+ * author DM Smith
+ */
+#include <string>
+#include <vector>
+#include <fstream>
+#include <iostream>
+#include <swbuf.h>
+#include <utilxml.h>
+#include <rawld.h>
+#include <rawld4.h>
+#include <zld.h>
+#include <zipcomprs.h>
+#include <lzsscomprs.h>
+#include <stdio.h>
+#include <cipherfil.h>
+
+#ifdef _ICU_
+#include <utf8nfc.h>
+#include <latin1utf8.h>
+#endif
+
+#ifndef NO_SWORD_NAMESPACE
+using namespace sword;
+#endif
+
+using namespace std;
+
+#ifdef _ICU_
+UTF8NFC normalizer;
+int normalized = 0;
+
+Latin1UTF8 converter;
+int converted = 0;
+#endif
+
+//#define DEBUG
+
+SWLD *module = NULL;
+SWKey *currentKey = NULL;
+bool normalize = true;
+
+/**
+ * Determine whether the string contains a valid unicode sequence.
+ * The following table give the pattern of a valid UTF-8 character.
+ * Unicode Range 1st 2nd 3rd 4th
+ * U-00000000 - U-0000007F 0nnnnnnn
+ * U-00000080 - U-000007FF 110nnnnn 10nnnnnn
+ * U-00000800 - U-0000FFFF 1110nnnn 10nnnnnn 10nnnnnn
+ * U-00010000 - U-001FFFFF 11110nnn 10nnnnnn 10nnnnnn 10nnnnnn
+ * Note:
+ * 1. The latest UTF-8 RFC allows for a max of 4 bytes.
+ * Earlier allowed 6.
+ * 2. The number of bits of the leading byte before the first 0
+ * is the total number of bytes.
+ * 3. The "n" are the bits of the unicode codepoint.
+ * This routine does not check to see if the code point is in the range.
+ * It could.
+ *
+ * param txt the text to check
+ * return 1 if all high order characters form a valid unicode sequence
+ * -1 if there are no high order characters.
+ * Note: this is also a valid unicode sequence
+ * 0 if there are high order characters that do not form
+ * a valid unicode sequence
+ * author DM Smith
+ */
+int detectUTF8(const char *txt) {
+ unsigned int countUTF8 = 0;
+ int count = 0;
+
+ // Cast it to make masking and shifting easier
+ const unsigned char *p = (const unsigned char*) txt;
+ while (*p) {
+ // Is the high order bit set?
+ if (*p & 0x80) {
+ // Then count the number of high order bits that are set.
+ // This determines the number of following bytes
+ // that are a part of the unicode character
+ unsigned char i = *p;
+ for (count = 0; i & 0x80; count++) {
+ i <<= 1;
+ }
+
+ // Validate count:
+ // Count 0: bug in code that would cause core walking
+ // Count 1: is a pattern of 10nnnnnn,
+ // which does not signal the start of a unicode character
+ // Count 5 to 8: 111110nn, 1111110n and 11111110 and 11111111
+ // are not legal starts, either
+ if (count < 2 || count > 4) return 0;
+
+ // At this point we expect (count - 1) following characters
+ // of the pattern 10nnnnnn
+ while (--count && *++p) {
+ // The pattern of each following character must be: 10nnnnnn
+ // So, compare the top 2 bits.
+ if ((0xc0 & *p) != 0x80) return 0;
+ }
+
+ // Oops, we've run out of bytes too soon: Cannot be UTF-8
+ if (count) return 0;
+
+ // We have a valid UTF-8 character, so count it
+ countUTF8++;
+ }
+
+ // Advance to the next character to examine.
+ p++;
+ }
+
+ // At this point it is either UTF-8 or 7-bit ascii
+ return countUTF8 ? 1 : -1;
+}
+
+void normalizeInput(SWKey &key, SWBuf &text) {
+#ifdef _ICU_
+ int utf8State = detectUTF8(text.c_str());
+ if (normalize) {
+ // Don't need to normalize text that is ASCII
+ // But assume other non-UTF-8 text is Latin1 (cp1252) and convert it to UTF-8
+ if (!utf8State) {
+ cout << "Warning: " << key << ": Converting to UTF-8 (" << text << ")" << endl;
+ converter.processText(text, (SWKey *)2); // note the hack of 2 to mimic a real key. TODO: remove all hacks
+ converted++;
+
+ // Prepare for double check. This probably can be removed.
+ // But for now we are running the check again.
+ // This is to determine whether we need to normalize output of the conversion.
+ utf8State = detectUTF8(text.c_str());
+ }
+
+ // Double check. This probably can be removed.
+ if (!utf8State) {
+ cout << "Error: " << key << ": Converting to UTF-8 (" << text << ")" << endl;
+ }
+
+ if (utf8State > 0) {
+ SWBuf before = text;
+ normalizer.processText(text, (SWKey *)2); // note the hack of 2 to mimic a real key. TODO: remove all hacks
+ if (before != text) {
+ normalized++;
+ }
+ }
+ }
+#endif
+}
+
+void writeEntry(SWKey &key, SWBuf &text) {
+#ifdef DEBUG
+ cout << key << endl;
+#endif
+
+ module->setKey(key);
+
+ normalizeInput(key, text);
+
+ module->setEntry(text);
+}
+
+void linkToEntry(SWBuf &keyBuf, vector<string> &linkBuf) {
+
+/*
+ char links = linkBuf.size();
+ for (int i = 0; i < links; i++) {
+ SWKey tmpkey = linkBuf[i].c_str();
+ module->linkEntry(&tmpkey);
+ cout << "Linking: " << linkBuf[i] << endl;
+ }
+*/
+}
+
+// Return true if the content was handled or is to be ignored.
+// false if the what has been seen is to be accumulated and considered later.
+bool handleToken(SWBuf &text, XMLTag *token) {
+ // The start token for the current entry;
+ static XMLTag startTag;
+ static SWBuf keyBuf;
+
+ // Flags to indicate whether we are in a entry, entryFree or superentry
+ static bool inEntry = false;
+ static bool inEntryFree = false;
+ static bool inSuperEntry = false;
+
+ const char *tokenName = token->getName();
+//-- START TAG -------------------------------------------------------------------------
+ if (!token->isEndTag()) {
+
+ // If we are not in an "entry" and we see one, then enter it.
+ if (!inEntry && !inEntryFree && !inSuperEntry) {
+ inEntry = !strcmp(tokenName, "entry");
+ inEntryFree = !strcmp(tokenName, "entryFree");
+ inSuperEntry = !strcmp(tokenName, "superentry");
+ if (inEntry || inEntryFree || inSuperEntry) {
+#ifdef DEBUG
+ cout << "Entering " << tokenName << endl;
+#endif
+ startTag = *token;
+ text = "";
+ *currentKey = token->getAttribute("key");
+
+ return false; // make tag be part of the output
+ }
+ }
+ }
+
+//-- EMPTY and END TAG ---------------------------------------------------------------------------------------------
+ else {
+
+ // ENTRY end
+ // If we see the end of an entry that we are in, then leave it
+ if ((inEntry && !strcmp(tokenName, "entry" )) ||
+ (inEntryFree && !strcmp(tokenName, "entryFree" )) ||
+ (inSuperEntry && !strcmp(tokenName, "superentry"))) {
+#ifdef DEBUG
+ cout << "Leaving " << tokenName << endl;
+#endif
+ // Only one is false coming into here,
+ // but all must be on leaving.
+ inEntry = false;
+ inEntryFree = false;
+ inSuperEntry = false;
+ text += token->toString();
+ writeEntry(*currentKey, text);
+
+ // Since we consumed the text, clear it
+ // and tell the caller that the tag was consumed.
+ text = "";
+ return true;
+ }
+ }
+ return false;
+}
+
+void usage(const char *app, const char *error = 0) {
+
+ if (error) fprintf(stderr, "\n%s: %s\n", app, error);
+
+ fprintf(stderr, "TEI Lexicon/Dictionary/Daily Devotional/Glossary module creation tool for the SWORD Project\n");
+ fprintf(stderr, "\nusage: %s <output/path> <teiDoc> [OPTIONS]\n", app);
+ fprintf(stderr, " -z\t\t\t use ZIP compression (default no compression)\n");
+ fprintf(stderr, " -Z\t\t\t use LZSS compression (default no compression)\n");
+ fprintf(stderr, " -s <2|4>\t\t max text size per entry(default 4):\n");
+ fprintf(stderr, " -c <cipher_key>\t encipher module using supplied key\n");
+ fprintf(stderr, "\t\t\t\t (default no enciphering)\n");
+ fprintf(stderr, " -N\t\t\t Do not convert UTF-8 or normalize UTF-8 to NFC\n");
+ fprintf(stderr, "\t\t\t\t (default is to convert to UTF-8, if needed, and then normalize to NFC");
+ fprintf(stderr, "\t\t\t\t Note: all UTF-8 texts should be normalized to NFC\n");
+ fprintf(stderr, "-z, -Z, and -s are mutually exclusive\n");
+ exit(-1);
+}
+
+int main(int argc, char **argv) {
+
+ SWBuf program = argv[0];
+ fprintf(stderr, "You are running %s: $Rev: 2138 $\n", argv[0]);
+
+ // Let's test our command line arguments
+ if (argc < 3) {
+ usage(*argv);
+ }
+
+ // variables for arguments, holding defaults
+ SWBuf path = argv[1];
+ SWBuf teiDoc = argv[2];
+ SWBuf compType = "";
+ SWBuf modDrv = "";
+ SWBuf recommendedPath = "./modules/lexdict/";
+ SWBuf cipherKey = "";
+ SWCompress *compressor = 0;
+
+ for (int i = 3; i < argc; i++) {
+ if (!strcmp(argv[i], "-z")) {
+ if (compType.size()) usage(*argv, "Cannot specify both -z and -Z");
+ if (modDrv.size()) usage(*argv, "Cannot specify both -z and -s");
+ compType = "ZIP";
+ modDrv = "zLD";
+ recommendedPath += "zld/";
+ }
+ else if (!strcmp(argv[i], "-Z")) {
+ if (compType.size()) usage(*argv, "Cannot specify both -z and -Z");
+ if (modDrv.size()) usage(*argv, "Cannot specify both -Z and -s");
+ compType = "LZSS";
+ recommendedPath += "zld/";
+ }
+ else if (!strcmp(argv[i], "-s")) {
+ if (compType.size()) usage(*argv, "Cannot specify both -s and -z or -Z");
+ if (i+1 < argc) {
+ int size = atoi(argv[++i]);
+ if (size == 2) {
+ modDrv = "RawLD";
+ recommendedPath += "rawld/";
+ continue;
+ }
+ if (size == 4) {
+ modDrv = "RawLD4";
+ recommendedPath += "rawld4/";
+ continue;
+ }
+ }
+ usage(*argv, "-s requires one of <2|4>");
+ }
+ else if (!strcmp(argv[i], "-N")) {
+ normalize = false;
+ }
+ else if (!strcmp(argv[i], "-c")) {
+ if (i+1 < argc) cipherKey = argv[++i];
+ else usage(*argv, "-c requires <cipher_key>");
+ }
+ else usage(*argv, (((SWBuf)"Unknown argument: ")+ argv[i]).c_str());
+ }
+ if (!modDrv.size()) {
+ modDrv = "RawLD4";
+ recommendedPath += "rawld4/";
+ }
+
+#ifndef _ICU_
+ if (normalize) {
+ normalize = false;
+ cout << program << " is not compiled with support for ICU. Setting -N flag." << endl;
+ }
+#endif
+
+ if (compType == "ZIP") {
+ compressor = new ZipCompress();
+ }
+ else if (compType = "LZSS") {
+ compressor = new LZSSCompress();
+ }
+
+#ifdef DEBUG
+ // cout << "path: " << path << " teiDoc: " << teiDoc << " compressType: " << compType << " ldType: " << modDrv << " cipherKey: " << cipherKey.c_str() << " normalize: " << normalize << "\n";
+ cout << "path: " << path << " teiDoc: " << teiDoc << " compressType: " << compType << " ldType: " << modDrv << " normalize: " << normalize << "\n";
+ cout << "";
+// exit(-3);
+#endif
+
+ SWBuf modName = path;
+ int pathlen = path.length();
+ char lastChar = path[pathlen - 1];
+ if (lastChar != '/' && lastChar != '\\') {
+ modName += "/";
+ }
+ modName += "dict";
+
+ SWBuf keyBuf;
+ SWBuf entBuf;
+ SWBuf lineBuf;
+ vector<string> linkBuf;
+
+ if (modDrv == "zLD") {
+ if (zLD::createModule(modName)) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s \n", program.c_str(), modName.c_str());
+ exit(-3);
+ }
+ module = new zLD(modName, 0, 0, 30, compressor);
+ }
+ else if (modDrv == "RawLD") {
+ if (RawLD::createModule(modName)) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s \n", program.c_str(), modName.c_str());
+ exit(-3);
+ }
+ module = new RawLD(modName);
+ }
+ else {
+ if (RawLD4::createModule(modName)) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s \n", program.c_str(), modName.c_str());
+ exit(-3);
+ }
+ module = new RawLD4(modName);
+ }
+
+ SWFilter *cipherFilter = 0;
+
+ if (cipherKey.size()) {
+ fprintf(stderr, "Adding cipher filter with phrase: %s\n", cipherKey.c_str() );
+ cipherFilter = new CipherFilter(cipherKey.c_str());
+ module->AddRawFilter(cipherFilter);
+ }
+
+ if (!module->isWritable()) {
+ fprintf(stderr, "The module is not writable. Writing text to it will not work.\nExiting.\n" );
+ exit(-1);
+ }
+
+ // Let's see if we can open our input file
+ ifstream infile(teiDoc);
+ if (infile.fail()) {
+ fprintf(stderr, "error: %s: couldn't open input file: %s \n", program.c_str(), teiDoc.c_str());
+ exit(-2);
+ }
+
+ currentKey = module->CreateKey();
+ currentKey->Persist(1);
+ module->setKey(*currentKey);
+
+ (*module) = TOP;
+
+ SWBuf token;
+ SWBuf text;
+ bool intoken = false;
+ char curChar = '\0';
+
+ while (infile.good()) {
+
+ curChar = infile.get();
+
+ // skip the character if it is bad. infile.good() will catch the problem
+ if (curChar == -1) {
+ continue;
+ }
+
+ if (!intoken && curChar == '<') {
+ intoken = true;
+ token = "<";
+ continue;
+ }
+
+ if (intoken && curChar == '>') {
+ intoken = false;
+ token.append('>');
+
+ XMLTag *t = new XMLTag(token.c_str());
+ if (!handleToken(text, t)) {
+ text.append(*t);
+ }
+ continue;
+ }
+
+ if (intoken)
+ token.append(curChar);
+ else
+ switch (curChar) {
+ case '>' : text.append("&gt;"); break;
+ case '<' : text.append("&lt;"); break;
+ default : text.append(curChar); break;
+ }
+ }
+
+ // Force the last entry from the text buffer.
+ //text = "";
+ //writeEntry(*currentKey, text);
+
+ delete module;
+ delete currentKey;
+ if (cipherFilter)
+ delete cipherFilter;
+ infile.close();
+
+#ifdef _ICU_
+ if (converted) fprintf(stderr, "tei2mod converted %d verses to UTF-8\n", converted);
+ if (normalized) fprintf(stderr, "tei2mod normalized %d verses to NFC\n", normalized);
+#endif
+
+ /*
+ * Suggested module name detection.
+ * Only used for suggesting a conf.
+ *
+ * Various forms of path.
+ * . and .. - no module name given, use "dict".
+ * Or one of the following where z is the module name
+ * and x may be . or ..
+ * z
+ * x/y/z
+ * x/y/z/
+ * x/y/z/z
+ */
+ SWBuf suggestedModuleName = path;
+ if (lastChar == '/' || lastChar == '\\') {
+ suggestedModuleName.setSize(--pathlen);
+ }
+
+ lastChar = suggestedModuleName[pathlen - 1];
+ if (lastChar == '.') {
+ suggestedModuleName = "???";
+ }
+ else {
+ /* At this point the suggestion is either
+ * what follows the last / or \
+ * or the entire string
+ */
+ const char *m = strrchr(suggestedModuleName.c_str(), '/');
+ if (!m) {
+ m = strrchr(suggestedModuleName.c_str(), '\\');
+ }
+ if (m) {
+ suggestedModuleName = m+1;
+ }
+ }
+
+ recommendedPath += suggestedModuleName;
+ recommendedPath += "/dict";
+
+ fprintf(stderr, "\nSuggested conf (replace ??? with appropriate values)\n\n");
+ fprintf(stderr, "[%s]\n", suggestedModuleName.c_str());
+ fprintf(stderr, "DataPath=%s\n", recommendedPath.c_str());
+ fprintf(stderr, "Description=???\n");
+ fprintf(stderr, "SourceType=TEI\n");
+ fprintf(stderr, "Encoding=%s\n", (normalize ? "UTF-8" : "???"));
+ fprintf(stderr, "ModDrv=%s\n", modDrv.c_str());
+ if (compressor) {
+ fprintf(stderr, "CompressType=%s\n", compType.c_str());
+ }
+ if (cipherKey.size()) {
+ fprintf(stderr, "CipherKey=%s\n", cipherKey.c_str());
+ }
+}
diff --git a/utilities/treeidxutil.cpp b/utilities/treeidxutil.cpp
new file mode 100644
index 0000000..7aa6a68
--- /dev/null
+++ b/utilities/treeidxutil.cpp
@@ -0,0 +1,145 @@
+#include <entriesblk.h>
+#include <iostream>
+#include <string>
+#include <stdio.h>
+#include <treekeyidx.h>
+
+#ifndef NO_SWORD_NAMESPACE
+using namespace sword;
+#endif
+
+void printTree(TreeKeyIdx treeKey, TreeKeyIdx *target = 0, int level = 1) {
+ if (!target)
+ target = &treeKey;
+
+ unsigned long currentOffset = target->getOffset();
+ std::cout << ((currentOffset == treeKey.getOffset()) ? "==>" : "");
+ for (int i = 0; i < level; i++) std::cout << "\t";
+ std::cout << treeKey.getLocalName() << std::endl;
+ if (treeKey.firstChild()) {
+ printTree(treeKey, target, level+1);
+ treeKey.parent();
+ }
+ if (treeKey.nextSibling())
+ printTree(treeKey, target, level);
+
+}
+
+
+void printLocalName(TreeKeyIdx *treeKey) {
+ std::cout << "locaName: " << treeKey->getLocalName() << std::endl;
+}
+
+
+void setLocalName(TreeKeyIdx *treeKey) {
+ char buf[1023];
+ std::cout << "Enter New Node Name: ";
+ fgets(buf, 1000, stdin);
+ treeKey->setLocalName(buf);
+ treeKey->save();
+}
+
+
+void assurePath(TreeKeyIdx *treeKey) {
+ char buf[1023];
+ std::cout << "Enter path: ";
+ fgets(buf, 1000, stdin);
+ treeKey->assureKeyPath(buf);
+}
+
+
+void appendSibbling(TreeKeyIdx *treeKey) {
+ if (treeKey->getOffset()) {
+ char buf[1023];
+ std::cout << "Enter New Sibbling Name: ";
+ fgets(buf, 1000, stdin);
+ treeKey->append();
+ treeKey->setLocalName(buf);
+ treeKey->save();
+ }
+ else std::cout << "Can't add sibling to root node\n";
+}
+
+
+void appendChild(TreeKeyIdx *treeKey) {
+ char buf[1023];
+ std::cout << "Enter New Child Name: ";
+ fgets(buf, 1000, stdin);
+ treeKey->appendChild();
+ treeKey->setLocalName(buf);
+ treeKey->save();
+}
+
+
+void removeEntry(EntriesBlock *eb, int index) {
+ if (index < eb->getCount()) {
+ std::cout << "Removing entry [" << index << "]\n";
+ eb->removeEntry(index);
+ }
+ else std::cout << "Invalid entry number\n\n";
+}
+
+
+int main(int argc, char **argv) {
+
+ if (argc != 2) {
+ fprintf(stderr, "usage: %s <tree/key/data/path>\n", *argv);
+ exit(-1);
+ }
+
+ TreeKeyIdx *treeKey = new TreeKeyIdx(argv[1]);
+
+ if (treeKey->Error()) {
+ treeKey->create(argv[1]);
+ delete treeKey;
+ treeKey = new TreeKeyIdx(argv[1]);
+ }
+ TreeKeyIdx root = *treeKey;
+
+ std::string input;
+ char line[1024];
+
+ do {
+ std::cout << "[" << treeKey->getText() << "] > ";
+ fgets(line, 1000, stdin);
+ input = line;
+ if (input.length() > 0) {
+ switch (input[0]) {
+ case 'n': printLocalName(treeKey); break;
+ case 's': setLocalName(treeKey); break;
+ case 'p': root.root(); printTree(root, treeKey); break;
+ case 'a': appendSibbling(treeKey); break;
+ case 'c': appendChild(treeKey); break;
+ case 'j': treeKey->nextSibling(); break;
+ case 'g': assurePath(treeKey); break;
+ case 'k': treeKey->previousSibling(); break;
+ case 'h': treeKey->parent(); break;
+ case 'l': treeKey->firstChild(); break;
+ case 'r': treeKey->root(); break;
+ case 'q': break;
+ case '?':
+ default:
+ std::cout << "\n p - print tree\n";
+ std::cout << " n - get local name\n";
+ std::cout << " s - set local name\n";
+ std::cout << " j - next sibbling\n";
+ std::cout << " k - previous sibbling\n";
+ std::cout << " h - parent\n";
+ std::cout << " l - first child\n";
+ std::cout << " r - root\n";
+ std::cout << " a - append sibbling\n";
+ std::cout << " c - append child\n";
+ std::cout << " u - get user data\n";
+ std::cout << " d - set user data\n";
+ std::cout << " g - goto path; create if it doesn't exist\n";
+ std::cout << " q - quit\n\n";
+ break;
+ }
+ }
+ }
+ while (input.compare("q"));
+
+ delete treeKey;
+
+ return 0;
+}
diff --git a/utilities/vpl2mod.cpp b/utilities/vpl2mod.cpp
new file mode 100644
index 0000000..ee3831c
--- /dev/null
+++ b/utilities/vpl2mod.cpp
@@ -0,0 +1,263 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <filemgr.h>
+#include <swmgr.h>
+#include <rawtext.h>
+#include <iostream>
+#include <string>
+#include <versekey.h>
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::FileMgr;
+using sword::SWMgr;
+using sword::RawText;
+using sword::VerseKey;
+using sword::SW_POSITION;
+#endif
+
+using std::string;
+
+char readline(int fd, char **buf) {
+ char ch;
+ if (*buf)
+ delete [] *buf;
+ *buf = 0;
+ int len;
+
+
+ long index = lseek(fd, 0, SEEK_CUR);
+ // clean up any preceding white space
+ while ((len = read(fd, &ch, 1)) == 1) {
+ if ((ch != 13) && (ch != ' ') && (ch != '\t'))
+ break;
+ else index++;
+ }
+
+
+ while (ch != 10) {
+ if ((len = read(fd, &ch, 1)) != 1)
+ break;
+ }
+
+ int size = (lseek(fd, 0, SEEK_CUR) - index) - 1;
+
+ *buf = new char [ size + 1 ];
+
+ if (size > 0) {
+ lseek(fd, index, SEEK_SET);
+ read(fd, *buf, size);
+ read(fd, &ch, 1); //pop terminating char
+ (*buf)[size] = 0;
+
+ // clean up any trailing junk on buf
+ for (char *it = *buf+(strlen(*buf)-1); it > *buf; it--) {
+ if ((*it != 10) && (*it != 13) && (*it != ' ') && (*it != '\t'))
+ break;
+ else *it = 0;
+ }
+ }
+ else **buf = 0;
+ return !len;
+}
+
+
+char *parseVReg(char *buf) {
+ char stage = 0;
+
+ while (*buf) {
+ switch (stage) {
+ case 0:
+ if (isalpha(*buf))
+ stage++;
+ break;
+ case 1:
+ if (isdigit(*buf))
+ stage++;
+ break;
+ case 2:
+ if (*buf == ':')
+ stage++;
+ break;
+ case 3:
+ if (isdigit(*buf))
+ stage++;
+ break;
+ case 4:
+ if (*buf == ' ') {
+ *buf = 0;
+ return ++buf;
+ }
+ break;
+ }
+ buf++;
+ }
+ return (stage == 4) ? buf : 0; // if we got to stage 4 return after key buf, else return 0;
+}
+
+
+bool isKJVRef(const char *buf) {
+ VerseKey vk, test;
+ vk.AutoNormalize(0);
+ vk.Headings(1); // turn on mod/testmnt/book/chap headings
+ vk.Persist(1);
+ // lets do some tests on the verse --------------
+ vk = buf;
+ test = buf;
+
+ if (vk.Testament() && vk.Book() && vk.Chapter() && vk.Verse()) { // if we're not a heading
+// std::cerr << (const char*)vk << " == " << (const char*)test << std::endl;
+ return (vk == test);
+ }
+ else return true; // no check if we're a heading... Probably bad.
+}
+
+
+void fixText(char *text) {
+ char *to = text;
+ while(*text) {
+ *to++ = *text++;
+ *to++ = *text++;
+ if (!*text)
+ break;
+ if (*text != ' ')
+ std::cerr << "problem\n";
+ else text++;
+ }
+ *to = 0;
+}
+
+int main(int argc, char **argv) {
+
+ // Let's test our command line arguments
+ if (argc < 2) {
+// fprintf(stderr, "usage: %s <vpl_file> </path/to/mod> [0|1 - file includes prepended verse references]\n", argv[0]);
+ fprintf(stderr, "usage: %s <source_vpl_file> </path/to/output/mod/> [0|1 - prepended verse refs] [0|1 - NT only]\n\n", argv[0]);
+ fprintf(stderr, "\tWith no verse refs, source file must contain exactly 31102 lines.\n");
+ fprintf(stderr, "\tThis is KJV verse count plus headings for MODULE,\n");
+ fprintf(stderr, "\tTESTAMENT, BOOK, CHAPTER. An example snippet follows:\n\n");
+ fprintf(stderr, "\t\tMODULE HEADER\n");
+ fprintf(stderr, "\t\tOLD TESTAMENT HEADER\n");
+ fprintf(stderr, "\t\tGENESIS HEADER\n");
+ fprintf(stderr, "\t\tCHAPTER 1 HEADER\n");
+ fprintf(stderr, "\t\tIn the beginning...\n\n");
+ fprintf(stderr, "\t... implying there must also be a CHAPTER2 HEADER,\n");
+ fprintf(stderr, "\tEXODUS HEADER, NEW TESTAMENT HEADER, etc. If there is no text for\n");
+ fprintf(stderr, "\tthe header, a blank line must, at least, hold place.\n\n");
+ fprintf(stderr, "\tWith verse refs, source file must simply contain any number of lines,\n");
+ fprintf(stderr, "\tthat begin with the verse reference for which it is an entry. e.g.:\n\n");
+ fprintf(stderr, "\t\tgen 1:0 CHAPTER 1 HEADER\n");
+ fprintf(stderr, "\t\tgen 1:1 In the beginning...\n\n");
+ exit(-1);
+ }
+
+ // Let's see if we can open our input file
+ int fd = FileMgr::openFileReadOnly(argv[1]);
+ if (fd < 0) {
+ fprintf(stderr, "error: %s: couldn't open input file: %s \n", argv[0], argv[1]);
+ exit(-2);
+ }
+
+ // Try to initialize a default set of datafiles and indicies at our
+ // datapath location passed to us from the user.
+ if (RawText::createModule(argv[2])) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s \n", argv[0], argv[2]);
+ exit(-3);
+ }
+
+ // not used yet, but for future support of a vpl file with each line
+ // prepended with verse reference, eg. "Gen 1:1 In the beginning..."
+ bool vref = false;
+ if (argc > 3)
+ vref = (argv[3][0] == '0') ? false : true;
+
+ // if 'nt' is the 4th arg, our vpl file only has the NT
+ bool ntonly = false;
+ if (argc > 4)
+ ntonly = (argv[4][0] == '0') ? false : true;
+
+ // Do some initialization stuff
+ char *buffer = 0;
+ RawText mod(argv[2]); // open our datapath with our RawText driver.
+ VerseKey vk;
+ vk.AutoNormalize(0);
+ vk.Headings(1); // turn on mod/testmnt/book/chap headings
+ vk.Persist(1);
+
+ mod.setKey(vk);
+
+ // Loop through module from TOP to BOTTOM and set next line from
+ // input file as text for this entry in the module
+ mod = TOP;
+ if (ntonly) vk = "Matthew 1:1";
+
+ int successive = 0; //part of hack below
+ while ((!mod.Error()) && (!readline(fd, &buffer))) {
+ if (*buffer == '|') // comments, ignore line
+ continue;
+ if (vref) {
+ const char *verseText = parseVReg(buffer);
+ if (!verseText) { // if we didn't find a valid verse ref
+ std::cerr << "No valid verse ref found on line: " << buffer << "\n";
+ exit(-4);
+ }
+
+ vk = buffer;
+ if (vk.Error()) {
+ std::cerr << "Error parsing key: " << buffer << "\n";
+ exit(-5);
+ }
+ string orig = mod.getRawEntry();
+
+ if (!isKJVRef(buffer)) {
+ VerseKey origVK = vk;
+ /* This block is functioning improperly -- problem with AutoNormalize???
+ do {
+ vk--;
+ }
+ while (!vk.Error() && !isKJVRef(vk)); */
+ //hack to replace above:
+ successive++;
+ vk -= successive;
+ orig = mod.getRawEntry();
+
+ std::cerr << "Not a valid KJV ref: " << origVK << "\n";
+ std::cerr << "appending to ref: " << vk << "\n";
+ orig += " [ (";
+ orig += origVK;
+ orig += ") ";
+ orig += verseText;
+ orig += " ] ";
+ verseText = orig.c_str();
+ }
+ else {
+ successive = 0;
+ }
+
+ if (orig.length() > 1)
+ std::cerr << "Warning, overwriting verse: " << vk << std::endl;
+
+ // ------------- End verse tests -----------------
+ mod << verseText; // save text to module at current position
+ }
+ else {
+ fixText(buffer);
+ mod << buffer; // save text to module at current position
+ mod++; // increment module position
+ }
+ }
+
+ // clear up our buffer that readline might have allocated
+ if (buffer)
+ delete [] buffer;
+}
diff --git a/utilities/vpl2zmod2.cpp b/utilities/vpl2zmod2.cpp
new file mode 100644
index 0000000..61e4f24
--- /dev/null
+++ b/utilities/vpl2zmod2.cpp
@@ -0,0 +1,293 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <swmgr.h>
+#include <ztext2.h>
+#include <iostream>
+#include <swbuf.h>
+#include <lzsscomprs.h>
+#include <zipcomprs.h>
+#include <versekey2.h>
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::SWMgr;
+using sword::SWBuf;
+using sword::zText2;
+using sword::VerseKey2;
+using sword::SW_POSITION;
+using sword::SWCompress;
+//using sword::CipherFilter;
+using sword::zText2;
+using sword::ZipCompress;
+using sword::LZSSCompress;
+#endif
+
+using std::string;
+
+char readline(int fd, char **buf) {
+ char ch;
+ if (*buf)
+ delete [] *buf;
+ *buf = 0;
+ int len;
+
+
+ long index = lseek(fd, 0, SEEK_CUR);
+ // clean up any preceding white space
+ while ((len = read(fd, &ch, 1)) == 1) {
+ if ((ch != 13) && (ch != ' ') && (ch != '\t'))
+ break;
+ else index++;
+ }
+
+
+ while (ch != 10) {
+ if ((len = read(fd, &ch, 1)) != 1)
+ break;
+ }
+
+ int size = (lseek(fd, 0, SEEK_CUR) - index) - 1;
+
+ *buf = new char [ size + 1 ];
+
+ if (size > 0) {
+ lseek(fd, index, SEEK_SET);
+ read(fd, *buf, size);
+ read(fd, &ch, 1); //pop terminating char
+ (*buf)[size] = 0;
+
+ // clean up any trailing junk on buf
+ for (char *it = *buf+(strlen(*buf)-1); it > *buf; it--) {
+ if ((*it != 10) && (*it != 13) && (*it != ' ') && (*it != '\t'))
+ break;
+ else *it = 0;
+ }
+ }
+ else **buf = 0;
+ return !len;
+}
+
+
+char *parseVReg(char *buf) {
+ char stage = 0;
+
+ while (*buf) {
+ switch (stage) {
+ case 0:
+ if (isalpha(*buf))
+ stage++;
+ break;
+ case 1:
+ if (isdigit(*buf))
+ stage++;
+ break;
+ case 2:
+ if (*buf == ':')
+ stage++;
+ break;
+ case 3:
+ if (isdigit(*buf))
+ stage++;
+ break;
+ case 4:
+ if (*buf == ' ') {
+ *buf = 0;
+ return ++buf;
+ }
+ break;
+ }
+ buf++;
+ }
+ return (stage == 4) ? buf : 0; // if we got to stage 4 return after key buf, else return 0;
+}
+
+
+bool isKJVRef(const char *buf) {
+ VerseKey2 vk, test;
+ vk.AutoNormalize(0);
+ vk.Headings(1); // turn on mod/testmnt/book/chap headings
+ vk.Persist(1);
+ // lets do some tests on the verse --------------
+ vk = buf;
+ test = buf;
+
+ if (vk.Book() && vk.Chapter() && vk.Verse()) { // if we're not a heading
+ //std::cerr << (const char*)vk << " == " << (const char*)test << std::endl;
+ return (vk == test);
+ }
+ else return true; // no check if we're a heading... Probably bad.
+}
+
+
+void fixText(char *text) {
+ char *to = text;
+ while(*text) {
+ *to++ = *text++;
+ *to++ = *text++;
+ if (!*text)
+ break;
+ if (*text != ' ')
+ std::cerr << "problem\n";
+ else text++;
+ }
+ *to = 0;
+}
+
+int main(int argc, char **argv) {
+ int iType = 3;
+ int iPerBlock = 7;
+ int compType = 2;
+ SWBuf cipherKey = "";
+ SWCompress *compressor = 0;
+
+ // Let's test our command line arguments
+ if (argc < 2) {
+// fprintf(stderr, "usage: %s <vpl_file> </path/to/mod> [0|1 - file includes prepended verse references]\n", argv[0]);
+ fprintf(stderr, "usage: %s <source_vpl_file> </path/to/output/mod/> [0|1 - prepended verse refs] [0|1 - NT only]\n\n", argv[0]);
+ fprintf(stderr, "\tWith no verse refs, source file must contain exactly 31102 lines.\n");
+ fprintf(stderr, "\tThis is KJV verse count plus headings for MODULE,\n");
+ fprintf(stderr, "\tTESTAMENT, BOOK, CHAPTER. An example snippet follows:\n\n");
+ fprintf(stderr, "\t\tMODULE HEADER\n");
+ fprintf(stderr, "\t\tOLD TESTAMENT HEADER\n");
+ fprintf(stderr, "\t\tGENESIS HEADER\n");
+ fprintf(stderr, "\t\tCHAPTER 1 HEADER\n");
+ fprintf(stderr, "\t\tIn the beginning...\n\n");
+ fprintf(stderr, "\t... implying there must also be a CHAPTER2 HEADER,\n");
+ fprintf(stderr, "\tEXODUS HEADER, NEW TESTAMENT HEADER, etc. If there is no text for\n");
+ fprintf(stderr, "\tthe header, a blank line must, at least, hold place.\n\n");
+ fprintf(stderr, "\tWith verse refs, source file must simply contain any number of lines,\n");
+ fprintf(stderr, "\tthat begin with the verse reference for which it is an entry. e.g.:\n\n");
+ fprintf(stderr, "\t\tgen 1:0 CHAPTER 1 HEADER\n");
+ fprintf(stderr, "\t\tgen 1:1 In the beginning...\n\n");
+ exit(-1);
+ }
+
+ // Let's see if we can open our input file
+ int fd = FileMgr::openFileReadOnly(argv[1]);
+ if (fd < 0) {
+ fprintf(stderr, "error: %s: couldn't open input file: %s \n", argv[0], argv[1]);
+ exit(-2);
+ }
+
+ // not used yet, but for future support of a vpl file with each line
+ // prepended with verse reference, eg. "Gen 1:1 In the beginning..."
+ bool vref = false;
+
+ // if 'nt' is the 4th arg, our vpl file only has the NT
+ bool ntonly = false;
+
+ if (argc > 3) {
+ vref = (argv[3][0] == '0') ? false : true;
+ if (argc > 4) {
+ ntonly = (argv[4][0] == '0') ? false : true;
+ if (argc > 5) {
+ iType = atoi(argv[5]);
+ if (argc > 6) {
+ iPerBlock = atoi(argv[6]);
+ if (argc > 7) {
+ compType = atoi(argv[7]);
+ if (argc > 8) {
+ cipherKey = argv[8];
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // Try to initialize a default set of datafiles and indicies at our
+ // datapath location passed to us from the user.
+ if (zText2::createModule(argv[2], iType)) {
+ fprintf(stderr, "error: %s: couldn't create module at path: %s \n", argv[0], argv[2]);
+ exit(-3);
+ }
+ switch (compType) { // these are deleted by zText
+ case 1: compressor = new LZSSCompress(); break;
+ case 2: compressor = new ZipCompress(); break;
+ }
+
+ // Do some initialization stuff
+ char *buffer = 0;
+ zText2 mod(argv[2], 0, 0, iType, iPerBlock, compressor); // open our datapath with our zText2 driver.
+ VerseKey2 vk;
+ vk.AutoNormalize(0);
+ vk.Headings(1); // turn on mod/testmnt/book/chap headings
+ vk.Persist(1);
+
+ mod.setKey(vk);
+
+ // Loop through module from TOP to BOTTOM and set next line from
+ // input file as text for this entry in the module
+ mod = TOP;
+ if (ntonly) vk = "Matthew 1:1";
+
+ int successive = 0; //part of hack below
+ while ((!mod.Error()) && (!readline(fd, &buffer))) {
+ if (*buffer == '|') // comments, ignore line
+ continue;
+ if (vref) {
+ const char *verseText = parseVReg(buffer);
+ if (!verseText) { // if we didn't find a valid verse ref
+ std::cerr << "No valid verse ref found on line: " << buffer << "\n";
+ exit(-4);
+ }
+
+ vk = buffer;
+ if (vk.Error()) {
+ std::cerr << "Error parsing key: " << buffer << "\n";
+ exit(-5);
+ }
+ string orig = mod.getRawEntry();
+
+ if (!isKJVRef(buffer)) {
+ VerseKey2 origVK = vk;
+ /* This block is functioning improperly -- problem with AutoNormalize???
+ do {
+ vk--;
+ }
+ while (!vk.Error() && !isKJVRef(vk)); */
+ //hack to replace above:
+ successive++;
+ vk -= successive;
+ orig = mod.getRawEntry();
+
+ std::cerr << "Not a valid KJV ref: " << origVK << "\n";
+ std::cerr << "appending to ref: " << vk << "\n";
+ orig += " [ (";
+ orig += origVK;
+ orig += ") ";
+ orig += verseText;
+ orig += " ] ";
+ verseText = orig.c_str();
+ }
+ else {
+ successive = 0;
+ }
+
+ if (orig.length() > 1)
+ std::cerr << "Warning, overwriting verse: " << vk << std::endl;
+
+ // ------------- End verse tests -----------------
+ mod << verseText; // save text to module at current position
+ }
+ else {
+ fixText(buffer);
+ mod << buffer; // save text to module at current position
+ mod++; // increment module position
+ }
+ }
+
+ // clear up our buffer that readline might have allocated
+ if (buffer)
+ delete [] buffer;
+}
diff --git a/utilities/vs2osisref.cpp b/utilities/vs2osisref.cpp
new file mode 100644
index 0000000..220e743
--- /dev/null
+++ b/utilities/vs2osisref.cpp
@@ -0,0 +1,57 @@
+// Compression on variable granularity
+#include <fcntl.h>
+#include <iostream>
+#include <fstream>
+
+#ifndef __GNUC__
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <ztext.h>
+#include <zld.h>
+#include <zcom.h>
+#include <swmgr.h>
+#include <lzsscomprs.h>
+#include <zipcomprs.h>
+#include <versekey.h>
+#include <thmlosis.h>
+#include <stdio.h>
+#include <markupfiltmgr.h>
+#include <algorithm>
+
+#ifndef NO_SWORD_NAMESPACE
+using namespace sword;
+#endif
+using std::endl;
+using std::cerr;
+using std::cout;
+
+
+int main(int argc, char **argv)
+{
+ if (argc < 2) {
+ cerr << argv[0] << " - a tool to convert verse references from English to OSIS\n";
+ cerr << "usage: "<< argv[0] << " <verse ref> [verse context]\n";
+ cerr << "\n\n";
+ exit(-1);
+ }
+ VerseKey verseKey;
+ int i = strlen(argv[1]) + 1;
+ char * verseString = new char[i];
+ strcpy (verseString, argv[1]);
+ verseString[i - 1] = 0;
+
+ if (argc > 2) {
+ verseKey = argv[2];
+ }
+ else {
+ verseKey = "Gen 1:1";
+ }
+
+ std::cout << VerseKey::convertToOSIS(verseString, &verseKey) << "\n";
+
+ return 0;
+}
+
diff --git a/utilities/xml2gbs.cpp b/utilities/xml2gbs.cpp
new file mode 100644
index 0000000..45ec256
--- /dev/null
+++ b/utilities/xml2gbs.cpp
@@ -0,0 +1,363 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdlib.h>
+
+#include <entriesblk.h>
+#include <iostream>
+#include <string>
+#include <fstream>
+#include <treekeyidx.h>
+#include <rawgenbook.h>
+
+
+#ifndef NO_SWORD_NAMESPACE
+using sword::TreeKeyIdx;
+using sword::RawGenBook;
+using sword::SWKey;
+#endif
+
+//#define DEBUG
+
+
+enum XML_FORMATS { F_AUTODETECT, F_OSIS, F_THML };
+
+#define HELPTEXT "xml2gbs 1.0 OSIS/ThML General Book module creation tool for the SWORD Project\n usage:\n xml2gbs [-l] [-i] [-fT|-fO] <filename> [modname]\n -l uses long div names in ThML files\n -i exports to IMP format instead of creating a module\n -fO and -fT will set the importer to expect OSIS or ThML format respectively\n (otherwise it attempts to autodetect)\n"
+
+unsigned char detectFormat(char* filename) {
+
+ unsigned char format = F_AUTODETECT;
+
+ std::ifstream infile(filename);
+ std::string entbuffer;
+
+ if (!infile.is_open()) {
+ std::cerr << HELPTEXT;
+ std::cerr << std::endl << std::endl << "Could not open file \"" << filename << "\"" << std::endl;
+ }
+ else {
+ while (std::getline(infile, entbuffer) && format == F_AUTODETECT) {
+ if (strstr(entbuffer.c_str(), "<osis")) {
+ format = F_OSIS;
+ }
+ else if (strstr(entbuffer.c_str(), "<ThML")) {
+ format = F_THML;
+ }
+ }
+ infile.close();
+ }
+
+ return format;
+}
+
+int processXML(const char* filename, char* modname, bool longnames, bool exportfile, unsigned char format) {
+ signed long i = 0;
+ char* strtmp;
+ std::string entbuffer;
+
+#ifdef DEBUG
+ printf ("%s :%s :%d :%d :%d\n\n", filename, modname, longnames, exportfile, format);
+#endif
+
+ std::ifstream infile(filename);
+ if (!infile.is_open()) {
+ std::cerr << HELPTEXT;
+ std::cerr << std::endl << std::endl << "Could not open file \"" << filename << "\"" << std::endl;
+ return -1;
+ }
+ std::ofstream outfile;
+ if (exportfile) {
+ strcat (modname, ".imp");
+ outfile.open(modname);
+ }
+
+ TreeKeyIdx * treeKey;
+ RawGenBook * book = NULL;
+
+ std::string divs[32];
+
+ int level = 0;
+ std::string keybuffer = "";
+ std::string keybuffer2;
+ std::string n;
+ std::string type;
+ std::string title;
+ unsigned long entrysize = 0;
+ unsigned long keysize = 0;
+ bool closer = false;
+
+ if (!exportfile) {
+ // Do some initialization stuff
+ TreeKeyIdx::create(modname);
+ treeKey = new TreeKeyIdx(modname);
+ RawGenBook::createModule(modname);
+ delete treeKey;
+ book = new RawGenBook(modname);
+ }
+
+#ifdef DEBUG
+// TreeKeyIdx root = *((TreeKeyIdx *)((SWKey *)(*book)));
+#endif
+
+ int c;
+ while ((c = infile.get()) != EOF) {
+ if (c == '<') {
+ {
+ keybuffer = "";
+ while ((c = infile.get()) != '>')
+ keybuffer += c;
+ keybuffer += c;
+ }
+
+ if (keybuffer.length()) {
+ if (((format == F_OSIS) && ((!strncmp(keybuffer.c_str(), "/div>", 5)) || (!strncmp(keybuffer.c_str(), "/verse>", 7)) || (!strncmp(keybuffer.c_str(), "/chapter>", 9)))) ||
+ ((format == F_THML) && ((!strncmp(keybuffer.c_str(), "/div", 4)) && (keybuffer[4] > '0' && keybuffer[4] < '7')))) {
+ if (!closer) {
+ keysize = 0;
+ keybuffer2 = "";
+ for (i = 0; i < level; i++) {
+ keybuffer2 += '/';
+ keysize++;
+ keybuffer2 += divs[i];
+ keysize += divs[i].length();
+ std::cout << keybuffer2 << std::endl;
+ }
+
+ if (level) {
+ std::cout << keybuffer2 << std::endl;
+ if (exportfile) {
+ outfile << "$$$" << keybuffer2 << std::endl << entbuffer << std::endl;
+ }
+ else {
+ book->setKey(keybuffer2.c_str());
+ book->setEntry(entbuffer.c_str(), entrysize); // save text to module at current position
+ }
+ }
+ }
+ level--;
+ entbuffer = "";
+ entrysize = 0;
+
+ closer = true;
+ }
+ else if (((format == F_OSIS) && !((!strncmp(keybuffer.c_str(), "div>", 4) || !strncmp(keybuffer.c_str(), "div ", 4)) || (!strncmp(keybuffer.c_str(), "verse>", 6) || !strncmp(keybuffer.c_str(), "verse ", 6)) || (!strncmp(keybuffer.c_str(), "chapter>", 8) || !strncmp(keybuffer.c_str(), "chapter ", 8)))) ||
+ ((format == F_THML) && !((!strncmp(keybuffer.c_str(), "div", 3)) && (keybuffer[3] > '0' && keybuffer[3] < '7')))) {
+ entbuffer += '<';
+ entrysize++;
+ entrysize += keybuffer.length();
+ entbuffer += keybuffer;
+ }
+ else {
+ //we have a divN...
+ if (!closer) {
+ keysize = 0;
+ keybuffer2= "";
+ for (i = 0; i < level; i++) {
+ keybuffer2 += '/';
+ keysize++;
+ keybuffer2 += divs[i];
+ keysize += divs[i].length();
+ std::cout << keybuffer2 << std::endl;
+ }
+
+ if (level) {
+ std::cout << keybuffer2 << std::endl;
+ if (exportfile) {
+ outfile << "$$$" << keybuffer2 << std::endl << entbuffer << std::endl;
+ }
+ else {
+ book->setKey(keybuffer2.c_str());
+ book->setEntry(entbuffer.c_str(), entrysize); // save text to module at current position
+ }
+ }
+ }
+
+ entbuffer= "";
+ entrysize = 0;
+
+ level++;
+ keysize = keybuffer.length()-1;
+
+ type = "";
+ n = "";
+ title = "";
+
+ if (format == F_OSIS && longnames == false) {
+ strtmp = (char*)strstr(keybuffer.c_str(), "osisID=\"");
+ if (strtmp) {
+ strtmp += 8;
+ for (;*strtmp != '\"'; strtmp++) {
+ if (*strtmp == 10) {
+ title += ' ';
+ }
+ else if (*strtmp == '.') {
+ title = "";
+ }
+ else if (*strtmp != 13) {
+ title += *strtmp;
+ }
+ }
+ }
+ keybuffer = title;
+ }
+ else {
+ strtmp = (char*)strstr(keybuffer.c_str(), "type=\"");
+ if (strtmp) {
+ strtmp += 6;
+ for (;*strtmp != '\"'; strtmp++) {
+ if (*strtmp == 10) {
+ type+= ' ';
+ }
+ else if (*strtmp != 13) {
+ type+= *strtmp;
+ }
+ }
+ }
+
+ strtmp = (char*)strstr(keybuffer.c_str(), "n=\"");
+ if (strtmp) {
+ strtmp += 3;
+ for (;*strtmp != '\"'; strtmp++) {
+ if (*strtmp == 10) {
+ n += ' ';
+ }
+ else if (*strtmp != 13) {
+ n += *strtmp;
+ }
+ }
+ }
+
+ if (format == F_OSIS) {
+ strtmp = (char*)strstr(keybuffer.c_str(), "title=\"");
+ if (strtmp) {
+ strtmp += 7;
+ for (;*strtmp != '\"'; strtmp++) {
+ if (*strtmp == 10) {
+ title += ' ';
+ }
+ else if (*strtmp != 13) {
+ title += *strtmp;
+ }
+ }
+ }
+ }
+ else if (format == F_THML) {
+ strtmp = (char*)strstr(keybuffer.c_str(), "title=\"");
+ if (strtmp) {
+ strtmp += 7;
+ for (;*strtmp != '\"'; strtmp++) {
+ if (*strtmp == 10) {
+ title += ' ';
+ }
+ else if (*strtmp != 13) {
+ title += *strtmp;
+ }
+ }
+ }
+ }
+
+ keybuffer = type;
+ if (keybuffer.length() && n.length())
+ keybuffer += " ";
+ keybuffer += n;
+
+ if (longnames && keybuffer.length())
+ keybuffer += ": ";
+ if (longnames || !keybuffer.length())
+ keybuffer += title;
+ }
+ divs[level-1] = keybuffer;
+
+ closer = false;
+ }
+ }
+ }
+ else if (c != 13) {
+ entbuffer += c;
+ entrysize++;
+ }
+ }
+
+#ifdef DEBUG
+// printTree(root, treeKey);
+#endif
+
+// delete book; //causes nasty-bad errors upon execution
+ return 0;
+}
+
+int main(int argc, char **argv) {
+ int i = 0;
+
+ char modname[256];
+ *modname = 0;
+ char filename[256];
+ *filename = 0;
+
+ bool longnames = false;
+ bool exportfile = false;
+ unsigned char format = F_AUTODETECT;
+
+ if (argc > 2) {
+ for (i = 1; i < argc; i++) {
+ if (argv[i][0] == '-') {
+ switch (argv[i][1]) {
+ case 'l':
+ longnames = true;
+ continue;
+ case 'i':
+ exportfile = true;
+ continue;
+ case 'f':
+ if (argv[i][2] == 'O') {
+ format = F_OSIS;
+ }
+ else if (argv[i][2] == 'T') {
+ format = F_OSIS;
+ }
+ else {
+ format = F_AUTODETECT;
+ }
+ continue;
+ }
+ }
+ else if (*filename == 0) {
+ strncpy (filename, argv[i], 200);
+ }
+ else if (*modname == 0) {
+ strncpy (modname, argv[i], 200);
+ }
+ }
+ }
+ else if (argc > 1) {
+ strncpy (filename, argv[1], 200);
+ }
+
+ if (!*filename) {
+ std::cerr << HELPTEXT << std::endl;
+ return -1;
+ }
+ else {
+ if (!*modname) {
+ for (i = 0; (i < 256) && (filename[i]) && (filename[i] != '.'); i++) {
+ modname[i] = filename[i];
+ }
+ modname[i] = 0;
+ }
+
+ format = (format == F_AUTODETECT) ? detectFormat(filename) : format;
+ if (format == F_AUTODETECT) {
+ fprintf(stderr, HELPTEXT);
+ fprintf(stderr, "\n\nCould not detect file format for file \"%s\", please specify.\n", filename);
+ return -1;
+ }
+
+ int retCode = processXML (filename, modname, longnames, exportfile, format);
+
+ return retCode;
+ }
+}
+
+
+