[sword-devel] Prevent setKey from 'Leaking' into overlapping chapters/books

Troy A. Griffitts scribe at crosswire.org
Sat Jul 16 08:56:49 MST 2011

Hey Alex,

Well, it depends on what behavior you want to happen when parsing an
'invalid verse reference'.

1) Error() should be raised when parsing is completely misunderstood

2) You can set VerseKey::Normalize to false, and arguably Error() should
be raised when parsing chapters and verses outside of the versification
system, but I'm not sure Error() is raised currently.

3) if Normalize is false, you can check chapter and verse against
VerseKey::getChapterMax() and VerseKey::getVerseMax() to see if it is
outside the versification system.

Hope this is slightly useful.

You'll find the wrapping useful for things like:

// show a context window
int contextWindow = 5;
for (verseKey-=(contextWindow/2); !verseKey.Error() && contextWindow;
verseKey++) ...

// show previous chapter
verseKey.setChapter(verseKey.getChapter() - 1)


Regarding more API help and more examples.  There is some documentation
pulled from the comments in the code as doxygen here (but not as concise
or helpful for a beginner as could be):


But I think your best bet is the examples/ and tests/ directory in the
source tree.

If there is an example you would like to see, please shout and we can
write one up together and improve the resources of example out.


On 16/07/11 17:36, Alex S wrote:
> Hi folks,
> I'm just getting started with Sword, and Im working through the included examples. How can I prevent the verse parser from mapping a non valid reference to the next logical book/chapter?
> For example if I run verserangeparse (in /examples) with "jn22:1" I get acts 1:1, which is the next logical chapter/verse since jn22 doesn't exist. 
> Verserangeparse jn243:1 yields revelation 22:1
> Any help? Sorry for the noob question...
> Also, is there more extensive API documentation than the API primer on the crossword site?
> Regards,
> Alex
> _______________________________________________
> 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