[sword-devel] linking / testsuite

Troy A. Griffitts scribe at crosswire.org
Sun Apr 26 21:17:32 MST 2009


DM Smith wrote:
> I use:
>                 for (verseKeys = TOP; !verseKeys.Error(); verseKeys++) {
>                         ...
>                 }
> Will that iterate over the whole?

Yes.

>>> if (verseKeys++ == verseKeys) { /* then I have a single key */ }

postfix operator++ increments the object and returns a temporary which 
represented the object before the iteration.

so (verseKey++ == verseKey) checks if verseKey is the same value after 
increment as it was before increment.

(++verseKey == verseKey) should always return true because the prefix 
operator++ iterates first and returns the object state after the iteration.

Hope this makes sense.  Thanks for fixing things!

	-Troy.







>>>
>>> DM Smith wrote:
>>>> I found the problem. SWORD reports the count of verses in a 
>>>> VerseList differently. A range now counts as one. It used to count 
>>>> as many verses as was in it.
>>>> Here is a demonstration of the problem that I quickly hacked 
>>>> together. (Troy, tell me which testcase file to put it in and I'll 
>>>> add it.) It should say (and used to say) that
>>>> "There are 5 verses that are in the range"
>>>> #include <iostream>
>>>> #include <swbuf.h>
>>>> #include <listkey.h>
>>>> #include <versekey.h>
>>>> #ifndef NO_SWORD_NAMESPACE
>>>> using namespace sword;
>>>> #endif
>>>> using namespace std;
>>>> int main(int argc, char **argv) {
>>>>       VerseKey currentVerse;
>>>>       SWBuf keyVal = "Matt.1.1-Matt.1.5";
>>>>       ListKey verseKeys = currentVerse.ParseVerseList(keyVal, 
>>>> "Gen.1.1", true);
>>>>       int memberKeyCount = verseKeys.Count();
>>>>       if (memberKeyCount) {
>>>>               cout << "There are " << memberKeyCount << " verses 
>>>> that are in the range: " << keyVal << endl;
>>>>               for (verseKeys = TOP; !verseKeys.Error(); verseKeys++)
>>>>               {
>>>>                       cout << verseKeys << endl;
>>>>               }
>>>>       }
>>>>       else {
>>>>               cout << "Error: Invalid reference/annotateRef: " << 
>>>> keyVal << endl;
>>>>       }
>>>> }
>>>>>
>>>>>
>>>>> I'll look into the testsuite.  FYI, a sample xml is:
>>>>>
>>>>>   <?xml version="1.0" encoding="UTF-8"?>
>>>>>   <osis
>>>>>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>       xmlns="http://www.bibletechnologies.net/2003/OSIS/namespace"
>>>>>       
>>>>> xmlns:osis="http://www.bibletechnologies.net/2003/OSIS/namespace"
>>>>>          
>>>>> xsi:schemaLocation="http://www.bibletechnologies.net/2003/OSIS/namespace 
>>>>>
>>>>>   http://www.bibletechnologies.net/osisCore.2.1.1.xsd">
>>>>>       <osisText osisIDWork="Luther" osisRefWork="commentary"
>>>>>   xml:lang="en" canonical="false">
>>>>>           <header>
>>>>>               header.
>>>>>           </header>
>>>>>           <div type="bookGroup">
>>>>>               <title>New Testament</title>
>>>>>               <div type="book" osisID="Matt" canonical="false">
>>>>>                   <title type="main" short="Matthew">Matthew</title>
>>>>>                   <div type="section" annotateType="commentary"
>>>>>   annotateRef="Matt.1.1">
>>>>>                       <p>
>>>>>                       Blah blah...
>>>>>                       This is a test!
>>>>>                       </p>
>>>>>                   </div>                   <div type="section" 
>>>>> annotateType="commentary"
>>>>>   annotateRef="Matt.22.1-Matt.22.9">
>>>>>               <title level="2">Sermon; Matthew 21:1-9</title>
>>>>>               <p>
>>>>>                   This fails
>>>>>               </p>
>>>>>               </div>                   </div>
>>>>>           </div>
>>>>>       </osisText>
>>>>>   </osis>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> sword-devel mailing list: sword-devel at crosswire.org 
>>>>> <mailto:sword-devel at 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 at 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 at 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 at 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 at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page




More information about the sword-devel mailing list