<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I’ve bugs in JSword that I’ve been trying to fix. The problems occur when working with the Glossary module la_en, "Latin to English Glossary”.<div class=""><br class=""></div><div class="">First, JSword expects that a key is present in the module at most once. And if CaseInsensitiveKeys is not set on the module that the keys are ordered by uppercase. Practically, it does a binary search and for a given entry will always return the same value.</div><div class=""><br class=""></div><div class="">Second, JSword doesn’t expect empty entries other than at the beginning of a module (where an empty entry is an index with a size of 0). This is common at the beginning of modules.</div><div class=""><br class=""></div><div class="">Below are the first few entries of the la_en module. The columns are separated by tabs, though your email may show them as spaces. I’ve truncated long values as indicated with ….</div><div class="">From this we see that index 5 is empty. “A AB ABS” is present 6 times.</div><div class=""><br class=""></div><div class="">Should a dictionary module have duplicate keys?</div><div class="">Should there be empty index entries?</div><div class="">In other words, is this module in error?</div><div class=""><br class=""></div><div class="">From a JSword perspective, it should be graceful (right now it isn’t) in the face of these. I’m working on that. Any thoughts on the matter of how it should be graceful?</div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">index<span class="Apple-tab-span" style="white-space:pre">        </span>offset<span class="Apple-tab-span" style="white-space:pre">        </span>size<span class="Apple-tab-span" style="white-space:pre">        </span>key<span class="Apple-tab-span" style="white-space:pre">        </span>value</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">0<span class="Apple-tab-span" style="white-space:pre">        </span>49<span class="Apple-tab-span" style="white-space:pre">        </span>61<span class="Apple-tab-span" style="white-space:pre">        </span>A AB ABS<span class="Apple-tab-span" style="white-space:pre">        </span>(prep + abl) separation - out of (one ou...</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">1<span class="Apple-tab-span" style="white-space:pre">        </span>163<span class="Apple-tab-span" style="white-space:pre">        </span>58<span class="Apple-tab-span" style="white-space:pre">        </span>A AB ABS<span class="Apple-tab-span" style="white-space:pre">        </span>(prep + abl) in connection with, with re...</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">2<span class="Apple-tab-span" style="white-space:pre">        </span>281<span class="Apple-tab-span" style="white-space:pre">        </span>46<span class="Apple-tab-span" style="white-space:pre">        </span>A AB ABS<span class="Apple-tab-span" style="white-space:pre">        </span>(prep + abl) space- from, away from</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">3<span class="Apple-tab-span" style="white-space:pre">        </span>223<span class="Apple-tab-span" style="white-space:pre">        </span>56<span class="Apple-tab-span" style="white-space:pre">        </span>A AB ABS<span class="Apple-tab-span" style="white-space:pre">        </span>(prep + abl) with passive verbs - by, be...</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">4<span class="Apple-tab-span" style="white-space:pre">        </span>112<span class="Apple-tab-span" style="white-space:pre">        </span>49<span class="Apple-tab-span" style="white-space:pre">        </span>A AB ABS<span class="Apple-tab-span" style="white-space:pre">        </span>(prep + abl) time - from, since, after</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">5<span class="Apple-tab-span" style="white-space:pre">        </span>0<span class="Apple-tab-span" style="white-space:pre">        </span>0<span class="Apple-tab-span" style="white-space:pre">                </span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">6<span class="Apple-tab-span" style="white-space:pre">        </span>0<span class="Apple-tab-span" style="white-space:pre">        </span>47<span class="Apple-tab-span" style="white-space:pre">        </span>A AB ABS<span class="Apple-tab-span" style="white-space:pre">        </span>(prep + abl) numbers - counting from</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">7<span class="Apple-tab-span" style="white-space:pre">        </span>329<span class="Apple-tab-span" style="white-space:pre">        </span>45<span class="Apple-tab-span" style="white-space:pre">        </span>ABALIENATO<span class="Apple-tab-span" style="white-space:pre">        </span>transfer of property, alienation</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">8<span class="Apple-tab-span" style="white-space:pre">        </span>376<span class="Apple-tab-span" style="white-space:pre">        </span>32<span class="Apple-tab-span" style="white-space:pre">        </span>ABAVUS<span class="Apple-tab-span" style="white-space:pre">        </span>great-great-grandfather</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">9<span class="Apple-tab-span" style="white-space:pre">        </span>410<span class="Apple-tab-span" style="white-space:pre">        </span>29<span class="Apple-tab-span" style="white-space:pre">        </span>ABBAS ABBATIS<span class="Apple-tab-span" style="white-space:pre">        </span>father /abbot</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">10<span class="Apple-tab-span" style="white-space:pre">        </span>441<span class="Apple-tab-span" style="white-space:pre">        </span>26<span class="Apple-tab-span" style="white-space:pre">        </span>ABBATIA<span class="Apple-tab-span" style="white-space:pre">        </span>abbey, monastery</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">11<span class="Apple-tab-span" style="white-space:pre">        </span>469<span class="Apple-tab-span" style="white-space:pre">        </span>55<span class="Apple-tab-span" style="white-space:pre">        </span>ABDICO<span class="Apple-tab-span" style="white-space:pre">        </span>to renounce, reject / abdicate / disappr...</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">12<span class="Apple-tab-span" style="white-space:pre">        </span>526<span class="Apple-tab-span" style="white-space:pre">        </span>39<span class="Apple-tab-span" style="white-space:pre">        </span>ABDO<span class="Apple-tab-span" style="white-space:pre">        </span>put away, remove / hide, conceal</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">13<span class="Apple-tab-span" style="white-space:pre">        </span>567<span class="Apple-tab-span" style="white-space:pre">        </span>26<span class="Apple-tab-span" style="white-space:pre">        </span>ABDOMEN<span class="Apple-tab-span" style="white-space:pre">        </span>belly / gluttony</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">14<span class="Apple-tab-span" style="white-space:pre">        </span>595<span class="Apple-tab-span" style="white-space:pre">        </span>48<span class="Apple-tab-span" style="white-space:pre">        </span>ABDUCO<span class="Apple-tab-span" style="white-space:pre">        </span>to lead, or take away/ detach, withdraw</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">15<span class="Apple-tab-span" style="white-space:pre">        </span>743<span class="Apple-tab-span" style="white-space:pre">        </span>28<span class="Apple-tab-span" style="white-space:pre">        </span>ABEO<span class="Apple-tab-span" style="white-space:pre">        </span>to pass, to have been</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">16<span class="Apple-tab-span" style="white-space:pre">        </span>695<span class="Apple-tab-span" style="white-space:pre">        </span>46<span class="Apple-tab-span" style="white-space:pre">        </span>ABEO<span class="Apple-tab-span" style="white-space:pre">        </span>to digress / change / vanish, disappear</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">17<span class="Apple-tab-span" style="white-space:pre">        </span>645<span class="Apple-tab-span" style="white-space:pre">        </span>48<span class="Apple-tab-span" style="white-space:pre">        </span>ABEO<span class="Apple-tab-span" style="white-space:pre">        </span>to go away, retire /depart from life, die</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">18<span class="Apple-tab-span" style="white-space:pre">        </span>773<span class="Apple-tab-span" style="white-space:pre">        </span>35<span class="Apple-tab-span" style="white-space:pre">        </span>ABERRO<span class="Apple-tab-span" style="white-space:pre">        </span>to wander, deviate, escape</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">19<span class="Apple-tab-span" style="white-space:pre">        </span>810<span class="Apple-tab-span" style="white-space:pre">        </span>27<span class="Apple-tab-span" style="white-space:pre">        </span>ABHINC<span class="Apple-tab-span" style="white-space:pre">        </span>ago, back from now</div></div><div class=""><br class=""></div></body></html>