Awesome Lyndon!  Ha! What a silly mistake (local redeclaration of 
variable).  Yeah, I originally used an SWModule *, but changed it 
because the syntax is cleaner for stuff like the for loop:

for ((*bible) = TOP; !bible->Error(); (*bible)++)
for (bible = TOP; !bible->Error(); bible++)

But you have a very good point about error checking.  Thanks for the 
patch!  Applied.

        -Troy.



Lyndon Drake wrote:
> On Sun, 2007-09-02 at 21:41 +0100, Lyndon Drake wrote:
>> On Sun, 2007-09-02 at 13:12 -0700, Troy A. Griffitts wrote:
>>> So, all this to say, it doesn't work yet.  It is a fairly small, 
>>> self-contained client of the engine.  It might be a good place for you 
>>> to jump in and see how a typical client might utilize the engine, 
>>> including build system, etc.  I thought the code was done last night, 
>>> but looking at the output this morning, it doesn't work.
>> Sounds great - I'll have a look at it tomorrow evening after work and
>> see how I get on.
> 
> OK, I've made a start - it now builds and runs on my machine.  Attached
> is a trivial patch to print an error message if the KJV module isn't
> installed (guess what I forgot to do initially :-), and to make the
> Strongs-based lessons work as well as the KJV phrases.
> 
> BTW, is there a more canonical form for checking the return values of
> SWMgr.getModule() - my C++ is a bit rusty but might it not be cleaner to
> use a pointer variable rather than a reference?
> 
> Cheers,
> Lyndon
> 
> 
> ------------------------------------------------------------------------
> 
> Index: flash.cpp
> ===================================================================
> --- flash.cpp (revision 96)
> +++ flash.cpp (working copy)
> @@ -201,7 +201,7 @@
>               }
>               // if we would rather have short strongs
>               else {
> -                     SWBuf answers = w.def;
> +                     answers = w.def;
>                       strip.processText(answers);     // remove html tags
>                       answers.replaceBytes("\n\r", ' ');      // remove 
> newlines
>               }
> @@ -241,13 +241,20 @@
>   */
>  vector<Word> processWords(const char *range, bool addAll = true) {
>       SWMgr manager;
> -     SWModule &bible = *manager.getModule("KJV");
>       map<SWBuf, Word> wordList;
> +     SWModule *tmpBible;
>  
>       SWConfig hutf8("hwords.conf");
>       SWConfig hdefs("hdefs.conf");
>       SWConfig gutf8("gwords.conf");
>       SWConfig gdefs("gdefs.conf");
> +     
> +     tmpBible = manager.getModule("KJV");
> +     if (tmpBible == NULL) {
> +             cerr << "Unable to locate KJV module" << endl;
> +             exit(1);
> +     }
> +     SWModule &bible = *tmpBible;
>  
>       VerseKey parser;
>       ListKey r = parser.ParseVerseList(range, 0, true);
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> sword-devel mailing list: sword-devel@crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: sword-devel@crosswire.org
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

Reply via email to