[sword-devel] Verse mapping patch

Ben Morgan benpmorgan at gmail.com
Thu Apr 30 20:25:00 MST 2009


This adds a (very simple) versification mapping class, and fixes a slight
problem in versekey with v11n of bounds.

API is something like this (I'm not sure I like the names, though...):

VerseMapMgr {
 static VerseMapMgr* getSystemVerseMapMgr()
 SWVerseMapper* getMapper(char* v11n_from, char* v11n_to);
 SWVerseMapper* getMapper(VerseMgr::System* v11n_from, VerseMgr::System*
v11n_to);
}

SWVerseMapper {
 VerseKey* map(VerseKey* from);
}

The rules of this verse mapper are very simple (i.e. it doesn't do a proper
job...)
if bound set:
  l = map(lower bound)
  u = map(upper bound)
  if u is NULL: set u to the end of l's book
  if l is NULL: set l to the start of u's book
  swap u and l if u is before l (i.e. book order is different, and bounds go
across border)
  return versekey composed of u and l
otherwise:
if book of from key isn't in to v11n: return NULL
if chapter isn't in destination v11n:
  return last verse in book in destination v11n
if verse isn't in destination v11n:
  return last verse in chapter in destination v11n

otherwise, return the same verse, but in new v11n.

This serves two purposes:
1) it defines an API which we can use later. By making getMapper return a
more intelligent mapper, we can put proper mapping in later very easily.
2) it will do a better job than just copying the text across (because it
clips, not normalizes)

God Bless,
Ben
-------------------------------------------------------------------------------------------
Multitudes, multitudes,
   in the valley of decision!
For the day of the LORD is near
   in the valley of decision.

Giôên 3:14 (ESV)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/sword-devel/attachments/20090501/4602396d/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: versemapper.patch
Type: text/x-patch
Size: 10562 bytes
Desc: not available
URL: <http://www.crosswire.org/pipermail/sword-devel/attachments/20090501/4602396d/attachment-0001.bin>


More information about the sword-devel mailing list