aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYour Name <you@example.com>2021-02-09 16:38:19 -0500
committerYour Name <you@example.com>2021-02-09 16:38:19 -0500
commit3af6b0cb80be974079a4f723b8c1dfa2128f9d41 (patch)
tree5e09ce9a08805b510137b923282d0500a68a3f60
parent5056d76c49ffb5b9a2b8a915d8f83770e0374f76 (diff)
downloadlibbible-3af6b0cb80be974079a4f723b8c1dfa2128f9d41.tar.gz
libbible-3af6b0cb80be974079a4f723b8c1dfa2128f9d41.tar.bz2
libbible-3af6b0cb80be974079a4f723b8c1dfa2128f9d41.zip
Fixed bug accessing last chapter of a book
-rw-r--r--libbible.cc7
-rw-r--r--testLibbible.cc3
2 files changed, 8 insertions, 2 deletions
diff --git a/libbible.cc b/libbible.cc
index 1401208..901ff4e 100644
--- a/libbible.cc
+++ b/libbible.cc
@@ -159,8 +159,11 @@ vector<libbible::text> libbible::getText(libbible::passage pass) {
bool endOfParagraph = false;
- for(; key->getChapter() < pass.chapterEnd ||
- (key->getChapter() == pass.chapterEnd && key->getVerse() <= pass.verseEnd);
+ string book = string(key->getBookName());
+
+ for(; string(key->getBookName()) == book &&
+ (key->getChapter() < pass.chapterEnd
+ || (key->getChapter() == pass.chapterEnd && key->getVerse() <= pass.verseEnd));
(*key)++) {
string text = string(target->renderText());
diff --git a/testLibbible.cc b/testLibbible.cc
index 20ff7d9..d3a265a 100644
--- a/testLibbible.cc
+++ b/testLibbible.cc
@@ -186,6 +186,9 @@ void TestLibbible::testGetText(void) {
pair<int, int>(15, 4),
pair<int, int>(15, 5)});
CPPUNIT_ASSERT(chapVerses == shouldContain);
+
+ text = libbible::getText(libbible::getPassage("KJV", "John 21"));
+ CPPUNIT_ASSERT(text.back().verse == 25);
}
void TestLibbible::testSettings(void) {