[sword-devel] demo TEI modules

Troy A. Griffitts scribe at crosswire.org
Wed Sep 19 06:09:38 MST 2007


> Could it be possible to add the list of the words into binary module
> data and then add a function to the API which would give that list? This
> would also solve the problem of the frontends freezing when loading e.g.
> Webster.

The issue with frontends freezing isn't because the engine is taking so 
long iterating the entire key list for them.  It is because (I believe I 
am correct) some frontends try to populate a GUI control with the entire 
list.


Also, Chris is correct about the current ld driver.  It first does a 
toupper_utf8 on the word and then stores it in order doing a binary 
search using standard strcmp.

http://crosswire.org/svn/sword/trunk/src/modules/common/rawstr.cpp
see RawStr::findOffset


We probably need to do a few things here besides toupper (to assure 
entry matches), as we've learned and done in our search code.  We 
probably should at least normalize the utf8.  This is not a big hit 
because it is only done on module creation for every key, and then once 
for the input word before the binary search starts.

We could change the actual order to use a utf8 strcmp method, but this 
would likely come with a relatively significant performance hit (though 
maybe not-- the binary search algol will significantly limit the number 
of actual utf8 strcmp operations we would need to perform).  This change 
would require remaking any modules which use multibyte utf8 keys.






More information about the sword-devel mailing list