<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.crosswire.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jon+Behrens</id>
		<title>CrossWire Bible Society - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.crosswire.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jon+Behrens"/>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/Special:Contributions/Jon_Behrens"/>
		<updated>2026-05-28T10:13:07Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Main_Page&amp;diff=13394</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Main_Page&amp;diff=13394"/>
				<updated>2014-10-02T20:13:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jon Behrens: /* Development Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|style=&amp;quot;border: 1px solid green;padding-left:1em;padding-right:0.5em;background:#E4FFDF;padding-bottom:0.5em;&amp;quot; width=&amp;quot;100%&amp;quot;|&lt;br /&gt;
==Welcome to the CrossWire Developers' Wiki==&lt;br /&gt;
Be sure to check out our [[Current Projects|current projects]] page to see how you might use your skills here at [http://crosswire.org/ CrossWire].&lt;br /&gt;
&lt;br /&gt;
Please look at our general [[Volunteers|volunteering]] page, the [http://www.crosswire.org/bugs bugs] database and/or assist end-users in the [http://www.crosswire.org/forums forums].&lt;br /&gt;
&lt;br /&gt;
Also, we have pages describing the [[Purpose Statement|purpose]] of our work and the [[About Us|CrossWire Bible Society]] itself.&lt;br /&gt;
&lt;br /&gt;
You can even come and chat with SWORD developers on IRC: [http://webchat.freenode.net/?randomnick=1&amp;amp;channels=sword&amp;amp;prompt=1 #sword] on FreeNode.&lt;br /&gt;
&lt;br /&gt;
Newcomers should take note of the difference between SWORD as a [https://en.wikipedia.org/wiki/Front_and_back_ends back-end], and the SWORD Project as a front-end application for Windows.&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;background:#E8F1FF;border-style:solid;border-width:1px;border-color:#00ccFF;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==SWORD Modules==&lt;br /&gt;
* List of Known [[Module Repositories]]&lt;br /&gt;
* Information about Unicode [[Fonts]]&lt;br /&gt;
* [[Module Requests]]&lt;br /&gt;
* [[BibTeX entries]]&lt;br /&gt;
&lt;br /&gt;
==Front-end Applications==&lt;br /&gt;
* [[Choosing a SWORD program]]&lt;br /&gt;
* A Front-end [[Frontends:FeatureList|Features Wishlist]]&lt;br /&gt;
* [[Frontends:No longer being actively developed|Front-ends no longer being actively developed]]&lt;br /&gt;
===SWORD based front-ends===&lt;br /&gt;
* [[Frontends:BibleCS|The SWORD Project for Windows]] (internally known as BibleCS)&lt;br /&gt;
* [[Frontends:Eloquent|Eloquent]] (formerly named MacSword)&lt;br /&gt;
* [[Frontends:Xiphos|Xiphos (GTK)]] (formerly [[Frontends:GnomeSword|GnomeSword]])&lt;br /&gt;
* [[Frontends:BibleTime|BibleTime]] (see also [[Frontends:KioSword|Kio-Sword]])&lt;br /&gt;
* [http://bibletimemini.sf.net/ BibleTime Mini] (for mobile devices, cross-platform)&lt;br /&gt;
* [http://bpbible.com BPBible (wxPython)]&lt;br /&gt;
* [http://swordwarrior.net SwordBible]&lt;br /&gt;
* [http://www.crosswire.org/swordweb/ The Bible Tool] &amp;amp;ndash; server application using [http://en.wikipedia.org/wiki/ORBit ORBit]&lt;br /&gt;
* [[Frontends:PocketSword|PocketSword]] (for [http://en.wikipedia.org/wiki/IOS_%28Apple%29 Apple iOS])&lt;br /&gt;
* [http://sourceforge.net/projects/dbst/ Dexios Bible Study Tool]&lt;br /&gt;
* [http://katana.garage.maemo.org/ Katana] (for [http://maemo.org/ maemo] Internet tablets)&lt;br /&gt;
* [[Frontends:Diatheke|Diatheke]] (CLI)&lt;br /&gt;
* [http://code.google.com/p/xulsword/ xulsword] &amp;amp; [http://code.google.com/p/xulsword/source/browse/#svn%2Ftrunk%2FCpp%2Fphpsword phpsword]&lt;br /&gt;
&lt;br /&gt;
===JSword based front-ends===&lt;br /&gt;
* [[Frontends:BibleDesktop|BibleDesktop]]&lt;br /&gt;
* [http://thegoan.com/firebible FireBible] &amp;amp;ndash; Firefox Add-on (with [https://mozillalabs.com/ubiquity/ Ubiquity] support)&lt;br /&gt;
* [http://www.kiyut.com/products/alkitab/ Alkitab Bible Study]&lt;br /&gt;
* [[Frontends:GSword|GSword]] &amp;amp;ndash; CCIM Online Bible Studio&lt;br /&gt;
* [http://code.google.com/p/and-bible/ And Bible] &amp;amp;ndash; for Android OS&lt;br /&gt;
* [http://www.stepbible.org/ STEP Bible] &amp;amp;ndash; developed at [http://www.tyndale.cam.ac.uk/ Tyndale House]&lt;br /&gt;
&lt;br /&gt;
==Other CrossWire Applications==&lt;br /&gt;
* [[Projects:Go Bible|Go Bible]] &amp;amp;ndash; mobile phone Bible viewer for Java ME&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#FFE8E8&amp;quot; style=&amp;quot;border-style:solid;border-width:1px;border-color:#FF6060;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Development Tools==&lt;br /&gt;
* [[DevTools:SWORD|SWORD Engine (C++)]]&lt;br /&gt;
* [[DevTools:JSword|JSword (Java)]]&lt;br /&gt;
* [[:DevTools:Code Examples|Code Examples]]&lt;br /&gt;
* [[Tutorial:How SWORD works]]&lt;br /&gt;
* [[:Tutorial:Compiling &amp;amp; Installing SWORD]]&lt;br /&gt;
* [[DevTools:ICU|International Components for Unicode (ICU)]]&lt;br /&gt;
* [[DevTools:CMake|CMake]] &amp;amp; [[DevTools:Bindings|Bindings]] for SWORD &amp;amp;ndash; experimental&lt;br /&gt;
* [[DevTools:Locale Files|Locale Files]]&lt;br /&gt;
* [[CSharp_Bindings_on_Windows | Tutorial:How to set up C# bindings on Windows]]&lt;br /&gt;
&lt;br /&gt;
==Module Development==&lt;br /&gt;
* How to Create [[DevTools:Modules|SWORD Modules]]&lt;br /&gt;
* How to Create [[DevTools:conf Files|Module .conf Files]]&lt;br /&gt;
* A Basic [[OSIS Tutorial]]&lt;br /&gt;
* Guide to Writing [[OSIS Bibles]]&lt;br /&gt;
* Guide to Writing [[OSIS Commentaries]]&lt;br /&gt;
* Guide to Writing [[OSIS Genbooks]]&lt;br /&gt;
* Guide to Writing [[ThML modules]]&lt;br /&gt;
* Guide to Writing [[TEI Dictionaries]]&lt;br /&gt;
* Guide to [[Converting SFM Bibles to OSIS]]&lt;br /&gt;
* About [[DevTools:JSword/Personal Commentary|Personal Commentaries]]&lt;br /&gt;
* About [[Alternate Versification]]&lt;br /&gt;
* [[OpenOffice Export Filter for Genbooks]]&lt;br /&gt;
* [[File Formats]] and related Utility Programs&lt;br /&gt;
* [[DevTools:Text Editors|Unicode Text Editors]]&lt;br /&gt;
* [[Modules_in_the_beta_repository|Testing status of Beta modules]]&lt;br /&gt;
* Guide to [[Creating and Maintaining a Module Repository]]&lt;br /&gt;
* [[Non-CrossWire Text-Development Projects]]&lt;br /&gt;
&lt;br /&gt;
==Public Relations, Website, User assistance==&lt;br /&gt;
* [[EnduserFAQ|FAQ]]&lt;br /&gt;
* [[Project websites and domains]]&lt;br /&gt;
* [[Help:Contents|Getting help]], joining mailing lists, reporting problems and tracking issues&lt;br /&gt;
* [[Copyright]] policy and lobbying copyright owners&lt;br /&gt;
* [[Twitter|CrossWire on Twitter]] and [[Facebook]]&lt;br /&gt;
* [[SWORD CD]]&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|style=&amp;quot;border: 1px solid gray;padding-left:1em;padding-right:0.5em;background:#E8E8E8;padding-bottom:0.5em;&amp;quot; width=&amp;quot;100%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Getting Started in Wiki Collaboration==&lt;br /&gt;
A Wiki is a place to share documentation and development information.&lt;br /&gt;
* New user account requests are now moderated.&lt;br /&gt;
* Anyone who has been a member for at least 4 days can edit a wiki once they have [[Special:Userlogin|logged in]].&lt;br /&gt;
* If you are new to Wikis, consult the [http://meta.wikipedia.org/wiki/MediaWiki_User's_Guide User's Guide] for information on using the wiki software.&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
* You may experiment with Wiki using our [[CrossWire:Sandbox|Sandbox]].&lt;br /&gt;
* Another way to navigate the Wiki is to click on [[:Special:SpecialPages|Special pages]] in the toolbox, and then select [[:Special:Categories|Categories]], or just go directly to [[:Category:Categories]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:CrossWire]]&lt;br /&gt;
[[Category:SWORD Frontends]]&lt;br /&gt;
[[Category:JSword]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
[[Category:Development tools]]&lt;br /&gt;
[[Category:Support]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Jon Behrens</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=CSharp_Environment_Variables_Class&amp;diff=13393</id>
		<title>CSharp Environment Variables Class</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=CSharp_Environment_Variables_Class&amp;diff=13393"/>
				<updated>2014-10-02T19:37:54Z</updated>
		
		<summary type="html">&lt;p&gt;Jon Behrens: Created page with &amp;quot;C# code should be portable between Windows and Linux using Mono. The sword project is at heart a Linux program, so figuring out where configuration files, book modules and enviro...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;C# code should be portable between Windows and Linux using Mono. The sword project is at heart a Linux program, so figuring out where configuration files, book modules and environment variables live can sometimes cause subtle errors. This class is intended to abstract that process so that the rest of the C# project can proceed without worrying about it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Copyright 2014  CrossWire Bible Society (http://www.crosswire.org)&lt;br /&gt;
//    CrossWire Bible Society&lt;br /&gt;
//    P. O. Box 2528&lt;br /&gt;
//    Tempe, AZ  85280-2528&lt;br /&gt;
//  &lt;br /&gt;
//  This program is free software; you can redistribute it and/or modify it&lt;br /&gt;
//  under the terms of the GNU General Public License as published by the&lt;br /&gt;
//  Free Software Foundation version 2.&lt;br /&gt;
//  &lt;br /&gt;
//  This program is distributed in the hope that it will be useful, but&lt;br /&gt;
//  WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
//  General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Collections.Specialized;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Text.RegularExpressions;&lt;br /&gt;
&lt;br /&gt;
namespace Sword {&lt;br /&gt;
   public static class Enviro {&lt;br /&gt;
     static private List&amp;lt;string&amp;gt; configSections = new List&amp;lt;string&amp;gt;();&lt;br /&gt;
     static private NameValueCollection configValues = new NameValueCollection();&lt;br /&gt;
     static private bool configNotRead = true;&lt;br /&gt;
&lt;br /&gt;
     public static string dataPath {&lt;br /&gt;
       get {&lt;br /&gt;
         if (configNotRead) {&lt;br /&gt;
            readConfigFile();&lt;br /&gt;
         }&lt;br /&gt;
         return configValues[&amp;quot;DataPath&amp;quot;];&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public static string installMgrPath {&lt;br /&gt;
       get {&lt;br /&gt;
         if (configNotRead) {&lt;br /&gt;
            readConfigFile();&lt;br /&gt;
         }&lt;br /&gt;
         if (string.IsNullOrEmpty (configValues [&amp;quot;InstallMgrPath&amp;quot;]))&lt;br /&gt;
            return dataPath;&lt;br /&gt;
         return configValues[&amp;quot;InstallMgrPath&amp;quot;];&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public static string swordHome {&lt;br /&gt;
       get {&lt;br /&gt;
       if (String.IsNullOrEmpty (configValues [&amp;quot;swordHome&amp;quot;])) {&lt;br /&gt;
         string home = Environment.GetEnvironmentVariable (&amp;quot;HOME&amp;quot;);&lt;br /&gt;
         if (String.IsNullOrEmpty (home))&lt;br /&gt;
            home = Environment.GetEnvironmentVariable (&amp;quot;APPDATA&amp;quot;);&lt;br /&gt;
         /*&lt;br /&gt;
          * Figure out where sword.conf lives&lt;br /&gt;
          */&lt;br /&gt;
         string thePath = home.Replace ('\\', '/');&lt;br /&gt;
         if (File.Exists (Path.Combine (thePath, &amp;quot;sword.conf&amp;quot;))) {&lt;br /&gt;
            configValues [&amp;quot;swordHome&amp;quot;] = Path.Combine (thePath, &amp;quot;sword.conf&amp;quot;);&lt;br /&gt;
            } else if (File.Exists (Path.Combine (thePath, &amp;quot;.sword&amp;quot;, &amp;quot;sword.conf&amp;quot;))) {&lt;br /&gt;
              configValues [&amp;quot;swordHome&amp;quot;] = Path.Combine (thePath, &amp;quot;.sword&amp;quot;, &amp;quot;sword.conf&amp;quot;);&lt;br /&gt;
            } else if (File.Exists (Path.Combine (thePath, &amp;quot;sword&amp;quot;, &amp;quot;sword.conf&amp;quot;))) {&lt;br /&gt;
              configValues [&amp;quot;swordHome&amp;quot;] = Path.Combine (thePath, &amp;quot;sword&amp;quot;, &amp;quot;sword.conf&amp;quot;);&lt;br /&gt;
         } else if (File.Exists (&amp;quot;/etc/sword.conf&amp;quot;)) {&lt;br /&gt;
            configValues [&amp;quot;swordHome&amp;quot;] = &amp;quot;/etc/sword.conf&amp;quot;;&lt;br /&gt;
         } else {&lt;br /&gt;
         /*&lt;br /&gt;
          * TODO: Don't know enough about Linux Sword to know where all else the &lt;br /&gt;
          * file could be located. This might need to be expanded.&lt;br /&gt;
          */&lt;br /&gt;
            throw new Exception(&amp;quot;Cannot find the file sword.conf. &amp;quot; +&lt;br /&gt;
                           &amp;quot;Should be in one of the following places: &amp;quot; +&lt;br /&gt;
                           &amp;quot;~/Home/sword/.sword.conf &amp;quot; +&lt;br /&gt;
                           &amp;quot;/AppData/roaming/sword/sword.conf &amp;quot; +&lt;br /&gt;
                           &amp;quot;/etc/sword.conf&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
         }&lt;br /&gt;
         return configValues[&amp;quot;swordHome&amp;quot;]; ;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     private static void readConfigFile() {&lt;br /&gt;
       string line;&lt;br /&gt;
       StreamReader config = new StreamReader(swordHome);&lt;br /&gt;
       while ((line = config.ReadLine()) != null) {&lt;br /&gt;
         /*&lt;br /&gt;
          * Section headings are enclosed in []&lt;br /&gt;
          * &lt;br /&gt;
          * TODO: Not sure if we need these for anything. At the moment just store them.&lt;br /&gt;
          * If in the future there are multiple config sections, may want to key the &lt;br /&gt;
          * values with the appropriate section.&lt;br /&gt;
          */&lt;br /&gt;
         if(Regex.IsMatch(line, @&amp;quot;\[*\]&amp;quot;)) {&lt;br /&gt;
            configSections.Add(Regex.Replace(line, @&amp;quot;[\[\]]&amp;quot;, &amp;quot;&amp;quot;));&lt;br /&gt;
         } else {&lt;br /&gt;
            /*&lt;br /&gt;
            * Regular lines are of the form key=value&lt;br /&gt;
            */&lt;br /&gt;
            string[] raw = line.Split('=');&lt;br /&gt;
            /*&lt;br /&gt;
            * Value may need some special treatment&lt;br /&gt;
            */&lt;br /&gt;
            switch (raw[0]) {&lt;br /&gt;
              /*&lt;br /&gt;
               * Sword expects a data path using / as separaters rather than Windows \&lt;br /&gt;
               * Also expects no trailing /&lt;br /&gt;
               */&lt;br /&gt;
              case &amp;quot;DataPath&amp;quot;: &lt;br /&gt;
              case &amp;quot;InstallMgrPath&amp;quot;:&lt;br /&gt;
                raw[1] = Regex.Replace(raw[1], @&amp;quot;\\&amp;quot;, &amp;quot;/&amp;quot;).TrimEnd('/');&lt;br /&gt;
                break;&lt;br /&gt;
              default:&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            configValues.Add(raw[0].Trim(),raw[1].Trim());&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
       configNotRead = false;&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jon Behrens</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:CSharp_Bindings_on_Windows&amp;diff=13392</id>
		<title>DevTools:CSharp Bindings on Windows</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:CSharp_Bindings_on_Windows&amp;diff=13392"/>
				<updated>2014-10-02T18:10:39Z</updated>
		
		<summary type="html">&lt;p&gt;Jon Behrens: Created page with &amp;quot;The standard Sword distribution contains bindings for C#. These will not make and run on Windows using Visual Studio 2013. This is a tutorial on the steps needed to get things wo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The standard Sword distribution contains bindings for C#. These will not make and run on Windows using Visual Studio 2013. This is a tutorial on the steps needed to get things working on Windows. The goal is to be able to cross develop on either Windows or Linux using the same source code. After downloading the current version of Sword [http://crosswire.org/sword/develop/index.jsp]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Set up Sword for windows according to these instructions:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://crosswire.org/wiki/Tutorial:Compiling_%26_Installing_SWORD_on_Windows &amp;lt;br /&amp;gt;&lt;br /&gt;
Except, stop before making libsword.sln, you will need to make some changes before the project will build successfully.&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Open \sword\sword\lib\vcppmake\libsword.sln in VS2013. VS will want to convert the project; allow this.&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Open the project properties window&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Under the C/C++ tab General, edit additional include directories, change icu-sword to icu&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Under the Linker tab General, edit additional library directories&amp;lt;br /&amp;gt;&lt;br /&gt;
Change libcurl-vc10-x86-release-static-ipv6-sspi-spnego-winssl/lib to&amp;lt;br /&amp;gt;&lt;br /&gt;
libcurl-vc-x86-release-static-ipv6-sspi-spnego-winssl/lib&amp;lt;br /&amp;gt;&lt;br /&gt;
Change icu-sword/lib to icu/lib&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
In the Solution Explorer window, drag the file: sword\bindings\flatapi.cpp into the solution.&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Open flatapi.h&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Replace all ' * SWDLLEXPORT ' with ' SWDLLEXPORT * ' (without the quotes)&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Replace all ' ** SWDLLEXPORT ' with ' SWDLLEXPORT ** ' (without the quotes)            &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
If they do not exist, declare the following functions:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SWHANDLE SWDLLEXPORT org_crosswire_sword_SWMgr_newWithPath(const char *thePath);&lt;br /&gt;
void SWDLLEXPORT org_crosswire_sword_InstallMgr_delete(SWHANDLE hInstallMgr);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Open flatapi.cpp&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Make the replacements as in step 5&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Change all ::clearModInfo to clearTheModInfo (remove the colons and rename)&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Change the declaration of clearModInfo in the unnamed namespace to clearTheModInfo&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Define the functions in 5.3 above if they do not exist:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SWHANDLE SWDLLEXPORT org_crosswire_sword_SWMgr_newWithPath(const char *thePath) {&lt;br /&gt;
    SWConfig *sysConf = new SWConfig(thePath);&lt;br /&gt;
    return (SWHANDLE) new HandleSWMgr(new WebMgr(sysConf));&lt;br /&gt;
}&lt;br /&gt;
void SWDLLEXPORT org_crosswire_sword_InstallMgr_delete(SWHANDLE hInstallMgr) {&lt;br /&gt;
    HandleInstMgr *hinstmgr = (HandleInstMgr*)hInstallMgr;&lt;br /&gt;
    if (hinstmgr) delete hinstmgr;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
At this point, libsword.sln should make without errors&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
In the Sword distribution, there is a bindings directory having a csharp directory. In that directory, edit the file NativeMethods.cs:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
In the NativeMethods class the DLLNAME changes from libsword.so to libsword&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
In the NativeMethods class change:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DllImport(DLLNAME)] to&lt;br /&gt;
[DllImport(DLLNAME, CallingConvention=CallingConvention.Cdecl)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Put all of the dlls in the sword project where C# can find them. Quick and dirty is to&lt;br /&gt;
copy them all to the bin directory for the executable you will build. You may need the&lt;br /&gt;
following dlls (I don't yet know yet which dlls do what, so I've included them all from the&lt;br /&gt;
Windows build of the Sword distribution. This list works, a lesser list may be sufficient.):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
icule53.dll		clucene-core.dll	        icudt53.dll		icuuc53.dll&lt;br /&gt;
liblzma.dll		icuio53.dll			icuin53.dll		binding.dll&lt;br /&gt;
icutu53.dll		iculx53.dll			clucene-shared.dll&lt;br /&gt;
libsword.dll	        libbz2.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Figure out where you want your data files and edit sword.conf to point to that directory. Also put sword.conf somewhere reasonable.&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that in getting everything located, the differences between Linux and Windows on environment variables and file locations became&lt;br /&gt;
sufficiently complex that I found it easier to create a C# class to manage all that. That class is located at [[CSharp Environment Variables Class]].&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
In sword\bindings\csharp\examples edit LookupExample.cs&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using (var manager = new manager()) //changes to&lt;br /&gt;
using (var manager = new manager(@&amp;quot;path to sword.conf&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jon Behrens</name></author>	</entry>

	</feed>