On 12/12/2014 10:56 AM, Troy A. Griffitts wrote: > Could you try to run the sword/tests/versekeytest and have a look at > the end of the output. There should be a test which tried to span the > OT/NT which should output something like: > > Matthew.1.1-- = Malachi 4:6 > ++ = Matthew 1:1 OK, that's interesting, but maybe not sufficiently informative.
In Xiphos, I can forward/backward on navbar book, and it correctly crosses between Mal.1.1 and Matt.1.1. This is the end of versekeytest, which supports book forward/backward: Mark.1.1-- = Matthew 28:20 ++ = Mark 1:1 .setChapter(.getChapter() - 1) = Matthew 28:1 Matthew.1.1-- = Malachi 4:6 ++ = Matthew 1:1 .setBook(.getBook() - 1) = Malachi 1:1 Now I see that it claims backing up one verse from Matt.1.1 should give me Mal.4.6, but this is the Xiphos code using a freshly-obtained VerseKey that's doing a navbar verse spin forward or backward (parameter "direction" determines). vkey->setAutoNormalize(1); vkey->setText(tmpkey); verse = vkey->getVerse() + (direction ? 1 : -1); vkey->setVerse(verse); In gdb, this is what happens: 194 vkey->setText(tmpkey); (gdb) p tmpkey $4 = 0x7b4aeb0 "Matt 1:1" (gdb) n 196 verse = vkey->getVerse() + (direction ? 1 : -1); (gdb) p verse $5 = 0 (gdb) 197 vkey->setVerse(verse); (gdb) n 199 tmpkey = g_strdup_printf("%s %d:%d", vkey->getBookName(), (gdb) 200 vkey->getChapter(), vkey->getVerse()); (gdb) 201 gtk_entry_set_text(GTK_ENTRY(navbar.lookup_entry), tmpkey); (gdb) p tmpkey $6 = 0x63f81d0 "Zechariah 13:9" This is mostly ancient code and I've never had reason to question it, but the fact that vkey is set for auto-normalize makes me wonder: We've taken "verse 1", decremented it, now 0, and then set that verse#. The result is a scary traversal to Zech.13.9. A similar thing happens for chapter spin (which lands in Zech.14.1), though book spin does the right thing. Suggestions welcome.
_______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page