[sword-devel] MacSword and book problems

Will Thimbleby sword-devel@crosswire.org
Tue, 3 Dec 2002 12:41:22 +0000


Thanks that fixed my problem. Finally this has been the major thing 
thats been bothering me with MacSword for a long time.

On a final note: the Luther module gives top as 2,9,2 (testament, book, 
verse) and bottom as 2,10,1. However it doesn't include Ephesians, can 
you assume a bottom verse of 1 does not include that book? Also why 
does it always start at 2?

Thanks, Will

On Saturday, November 30, 2002, at 03:35  pm, Joachim Ansorg wrote:

> I found the problem,
>
> you have to call module->setSkipConsecutiveLinks(true) before you test 
> for the
> books. Set it to the default value false after all tests.
> So the code would look in C++ this way:
>
>   module()->setSkipConsecutiveLinks(true);
>   sword::VerseKey top, bottom;
>
>   *module() = sword::BOTTOM;
>   bottom = module()->KeyText();
>   *module() = sword::TOP;
>   top = module()->KeyText();
>
>   for (int i = top.Testament(); i <= bottom.Testament(); ++i) {
>     for ( int j = top.Book(); j <= bottom.Book(); ++j) {
> 	//get bookname here
>     }
>   }
>   module()->setSkipConsecutiveLinks(false);
>
> You have to write  j <= bottom.Book() to get all books including the 
> last one
> which is availabe :)
>
> I think the difference to the Luther commentary is that the default 
> behaviour
> of commentaries is to jump over empty parts, but bibles need the
> setConsecutiveLinks call get that behaviour.
>
> I hope it works for you,
> Joachim
>
>> Joachim,
>>
>> I looked at BibleTime, and in the end I opted for my own similar
>> method, that managed to get modules such as Luther to list only
>> Galations. Using ObjC, but should be pretty clear.
>>
>>
>> VerseKey top, bottom;
>> books = [[NSMutableArray alloc] init];
>>
>> *module = BOTTOM;
>> bottom = module->KeyText();
>> *module = TOP;
>> top = module->KeyText();
>>
>> for (int i = top.Testament(); i <= bottom.Testament(); ++i)
>> {
>> 	for ( int j = top.Book(); j < bottom.Book(); ++j)
>> 	{
>> 		[books addObject:[NSString
>> stringWithCString:top.books[i-1][j-1].name]];
>> 	}
>> }
>>
>>
>> However this does not work for some modules such as ISV and others as
>> below. I tried the BT code but had no luck.
>>
>> Will
>>
>> On Friday, November 29, 2002, at 04:01  pm, Joachim Ansorg wrote:
>>> Dear Will,
>>>
>>> in BibleTime we managed to check whether a module contains only a new
>>> testament, only an old testament or both.
>>> Is this what you wanted to check or wanted you to check every book is
>>> it
>>> exists?
>>> If you wanted to do the first I think I can give you some hints.
>>>
>>>
>>> Joachim
>>>
>>>> Hi,
>>>>
>>>> I've been struggling for a while to get MacSword to show only the
>>>> books
>>>> in a module, and only have just realised, that it could (and 
>>>> probably
>>>> is) the modules themselves. In MacSword, at least modules such as 
>>>> BHS
>>>> and LXX think they have a NT, and modules such as ISV think it has 
>>>> an
>>>> OT, Family thinks that it contains the whole NT, when it seems to 
>>>> stop
>>>> after Titus. Is this a problem with my program or the modules? Any
>>>> help
>>>> would be appreciated.
>>>>
>>>> On another note a minor update to MacSword is available, ToolTips 
>>>> are
>>>> now more refined and should function fully. Other numerous bugs are
>>>> fixed as well, including proper Right to Left text rendering with
>>>> verse
>>>> numbers.
>>>>
>>>> http://www.heathmoor.plus.com/macsword/
>>>>
>>>> Will
>>>
>>> --
>>> Joachim Ansorg
>>> www.bibletime.de
>>> www.ansorgs.de
>
> -- 
> Joachim Ansorg
> www.bibletime.de
> www.ansorgs.de
>
>