summaryrefslogtreecommitdiff
path: root/include/canon.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/canon.h')
-rw-r--r--include/canon.h697
1 files changed, 697 insertions, 0 deletions
diff --git a/include/canon.h b/include/canon.h
new file mode 100644
index 0000000..a17f86a
--- /dev/null
+++ b/include/canon.h
@@ -0,0 +1,697 @@
+/******************************************************************************
+ * canon.h - Canonical text information to be included by VerseKey.cpp
+ *
+ * $Id: canon.h 1864 2005-11-20 06:06:40Z scribe $
+ *
+ * Copyright 1998-2005 CrossWire Bible Society (http://www.crosswire.org)
+ * CrossWire Bible Society
+ * P. O. Box 2528
+ * Tempe, AZ 85280-2528
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation version 2.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ */
+
+/******************************************************************************
+ * [on]tbooks - initialize static instance for all canonical text names
+ * and chapmax
+ */
+
+struct sbook
+ VerseKey::otbooks[] = {
+ {"Genesis", "Gen", 50},
+ {"Exodus", "Exod", 40},
+ {"Leviticus", "Lev", 27},
+ {"Numbers", "Num", 36},
+ {"Deuteronomy", "Deut", 34},
+ {"Joshua", "Josh", 24},
+ {"Judges", "Judg", 21},
+ {"Ruth", "Ruth", 4},
+ {"I Samuel", "1Sam", 31},
+ {"II Samuel", "2Sam", 24},
+ {"I Kings", "1Kgs", 22},
+ {"II Kings", "2Kgs", 25},
+ {"I Chronicles", "1Chr", 29},
+ {"II Chronicles", "2Chr", 36},
+ {"Ezra", "Ezra", 10},
+ {"Nehemiah", "Neh", 13},
+ {"Esther", "Esth", 10},
+ {"Job", "Job", 42},
+ {"Psalms", "Ps", 150},
+ {"Proverbs", "Prov", 31},
+ {"Ecclesiastes", "Eccl", 12},
+ {"Song of Solomon", "Song", 8},
+ {"Isaiah", "Isa", 66},
+ {"Jeremiah", "Jer", 52},
+ {"Lamentations", "Lam", 5},
+ {"Ezekiel", "Ezek", 48},
+ {"Daniel", "Dan", 12},
+ {"Hosea", "Hos", 14},
+ {"Joel", "Joel", 3},
+ {"Amos", "Amos", 9},
+ {"Obadiah", "Obad", 1},
+ {"Jonah", "Jonah", 4},
+ {"Micah", "Mic", 7},
+ {"Nahum", "Nah", 3},
+ {"Habakkuk", "Hab", 3},
+ {"Zephaniah", "Zeph", 3},
+ {"Haggai", "Hag", 2},
+ {"Zechariah", "Zech", 14},
+ {"Malachi", "Mal", 4}
+};
+
+struct sbook
+ VerseKey::ntbooks[] = {
+ {"Matthew", "Matt", 28},
+ {"Mark", "Mark", 16},
+ {"Luke", "Luke", 24},
+ {"John", "John", 21},
+ {"Acts", "Acts", 28},
+ {"Romans", "Rom", 16},
+ {"I Corinthians", "1Cor", 16},
+ {"II Corinthians", "2Cor", 13},
+ {"Galatians", "Gal", 6},
+ {"Ephesians", "Eph", 6},
+ {"Philippians", "Phil", 4},
+ {"Colossians", "Col", 4},
+ {"I Thessalonians", "1Thess", 5},
+ {"II Thessalonians", "2Thess", 3},
+ {"I Timothy", "1Tim", 6},
+ {"II Timothy", "2Tim", 4},
+ {"Titus", "Titus", 3},
+ {"Philemon", "Phlm", 1},
+ {"Hebrews", "Heb", 13},
+ {"James", "Jas", 5},
+ {"I Peter", "1Pet", 5},
+ {"II Peter", "2Pet", 3},
+ {"I John", "1John", 5},
+ {"II John", "2John", 1},
+ {"III John", "3John", 1},
+ {"Jude", "Jude", 1},
+ {"Revelation of John", "Rev", 22}
+};
+
+
+/******************************************************************************
+ * Abbreviations - MUST be in alphabetical order & by PRIORITY
+ * RULE: first match of entire key
+ * (e.g. key: "1CH"; match: "1CHRONICLES")
+ */
+
+const struct abbrev
+ VerseKey::builtin_abbrevs[] = {
+ {"1 C", 46}, // 1 Corinthians
+ {"1 CHRONICLES", 13}, // 1 Chronicles
+ {"1 CORINTHIANS", 46}, // 1 Corinthians
+ {"1 JN", 62}, // 1 John
+ {"1 JOHN", 62}, // 1 John
+ {"1 KGS", 11}, // 1 Kings
+ {"1 KINGS", 11}, // 1 Kings
+ {"1 PETER", 60}, // 1 Peter
+ {"1 PTR", 60}, // 1 Peter
+ {"1 SAMUEL", 9}, // 1 Samuel
+ {"1 THESSALONIANS", 52}, // 1 Thessalonians
+ {"1 TIMOTHY", 54}, // 1 Timothy
+ {"1C", 46}, // 1 Corinthians
+ {"1CHRONICLES", 13}, // 1 Chronicles
+ {"1CORINTHIANS", 46}, // 1 Corinthians
+ {"1JN", 62}, // 1 John
+ {"1JOHN", 62}, // 1 John
+ {"1KGS", 11}, // 1 Kings
+ {"1KINGS", 11}, // 1 Kings
+ {"1PETER", 60}, // 1 Peter
+ {"1PTR", 60}, // 1 Peter
+ {"1SAMUEL", 9}, // 1 Samuel
+ {"1THESSALONIANS", 52}, // 1 Thessalonians
+ {"1TIMOTHY", 54}, // 1 Timothy
+ {"2 C", 47}, // 2 Corinthians
+ {"2 CHRONICLES", 14}, // 2 Chronicles
+ {"2 CORINTHIANS", 47}, // 2 Corinthians
+ {"2 JN", 63}, // 2 John
+ {"2 JOHN", 63}, // 2 John
+ {"2 KGS", 12}, // 2 Kings
+ {"2 KINGS", 12}, // 2 Kings
+ {"2 PETER", 61}, // 2 Peter
+ {"2 PTR", 61}, // 2 Peter
+ {"2 SAMUEL", 10}, // 2 Samuel
+ {"2 THESSALONIANS", 53}, // 2 Thessalonians
+ {"2 TIMOTHY", 55}, // 2 Timothy
+ {"2C", 47}, // 2 Corinthians
+ {"2CHRONICLES", 14}, // 2 Chronicles
+ {"2CORINTHIANS", 47}, // 2 Corinthians
+ {"2JN", 63}, // 2 John
+ {"2JOHN", 63}, // 2 John
+ {"2KGS", 12}, // 2 Kings
+ {"2KINGS", 12}, // 2 Kings
+ {"2PETER", 61}, // 2 Peter
+ {"2PTR", 61}, // 2 Peter
+ {"2SAMUEL", 10}, // 2 Samuel
+ {"2THESSALONIANS", 53}, // 2 Thessalonians
+ {"2TIMOTHY", 55}, // 2 Timothy
+ {"3 JN", 64}, // 3 John
+ {"3 JOHN", 64}, // 3 John
+ {"3JN", 64}, // 3 John
+ {"3JOHN", 64}, // 3 John
+ {"ACTS", 44}, // Acts
+ {"AMOS", 30}, // Amos
+ {"APOCALYPSE OF ST. JOHN", 66}, // Apocalypse of St. John (Rev.)
+ {"C", 51}, // Colossians
+ {"CANTICLE OF CANTICLES", 22}, // Canticle of Canticles (Song of S.)
+ {"COLOSSIANS", 51}, // Colossians
+ {"D", 5}, // Deuteronomy
+ {"DANIEL", 27}, // Daniel
+ {"DEUTERONOMY", 5}, // Deuteronomy
+ {"E", 49}, // Ephesians
+ {"ECCLESIASTES", 21}, // Ecclesiastes
+ {"EPHESIANS", 49}, // Ephesians
+ {"ESTER", 17}, // Esther
+ {"ESTHER", 17}, // Esther
+ {"EXODUS", 2}, // Exodus
+ {"EZEKIEL", 26}, // Ezekiel
+ {"EZK", 26}, // Ezekiel
+ {"EZRA", 15}, // Ezra
+ {"G", 1}, // Genesis
+ {"GALATIANS", 48}, // Galatians
+ {"GENESIS", 1}, // Genesis
+ {"H", 58}, // Hebrews
+ {"HABAKKUK", 35}, // Habakkuk
+ {"HAGGAI", 37}, // Haggai
+ {"HEBREWS", 58}, // Hebrews
+ {"HOSEA", 28}, // Hosea
+ {"I C", 46}, // 1 Corinthians
+ {"I CHRONICLES", 13}, // 1 Chronicles
+ {"I CORINTHIANS", 46}, // 1 Corinthians
+ {"I JN", 62}, // 1 John
+ {"I JOHN", 62}, // 1 John
+ {"I KGS", 11}, // 1 Kings
+ {"I KINGS", 11}, // 1 Kings
+ {"I PETER", 60}, // 1 Peter
+ {"I PTR", 60}, // 1 Peter
+ {"I SAMUEL", 9}, // 1 Samuel
+ {"I THESSALONIANS", 52}, // 1 Thessalonians
+ {"I TIMOTHY", 54}, // 1 Timothy
+ {"IC", 46}, // 1 Corinthians
+ {"ICHRONICLES", 13}, // 1 Chronicles
+ {"ICORINTHIANS", 46}, // 1 Corinthians
+ {"II C", 47}, // 2 Corinthians
+ {"II CHRONICLES", 14}, // 2 Chronicles
+ {"II CORINTHIANS", 47}, // 2 Corinthians
+ {"II JN", 63}, // 2 John
+ {"II JOHN", 63}, // 2 John
+ {"II KGS", 12}, // 2 Kings
+ {"II KINGS", 12}, // 2 Kings
+ {"II PETER", 61}, // 2 Peter
+ {"II PTR", 61}, // 2 Peter
+ {"II SAMUEL", 10}, // 2 Samuel
+ {"II THESSALONIANS", 53}, // 2 Thessalonians
+ {"II TIMOTHY", 55}, // 2 Timothy
+ {"IIC", 47}, // 2 Corinthians
+ {"IICHRONICLES", 14}, // 2 Chronicles
+ {"IICORINTHIANS", 47}, // 2 Corinthians
+ {"III JN", 64}, // 3 John
+ {"III JOHN", 64}, // 3 John
+ {"IIIJN", 64}, // 3 John
+ {"IIIJOHN", 64}, // 3 John
+ {"IIJN", 63}, // 2 John
+ {"IIJOHN", 63}, // 2 John
+ {"IIKGS", 12}, // 2 Kings
+ {"IIKINGS", 12}, // 2 Kings
+ {"IIPETER", 61}, // 2 Peter
+ {"IIPTR", 61}, // 2 Peter
+ {"IISAMUEL", 10}, // 2 Samuel
+ {"IITHESSALONIANS", 53}, // 2 Thessalonians
+ {"IITIMOTHY", 55}, // 2 Timothy
+ {"IJN", 62}, // 1 John
+ {"IJOHN", 62}, // 1 John
+ {"IKGS", 11}, // 1 Kings
+ {"IKINGS", 11}, // 1 Kings
+ {"IPETER", 60}, // 1 Peter
+ {"IPTR", 60}, // 1 Peter
+ {"ISA", 23}, // Isaiah
+ {"ISAIAH", 23}, // Isaiah
+ {"ISAMUEL", 9}, // 1 Samuel
+ {"ITHESSALONIANS", 52}, // 1 Thessalonians
+ {"ITIMOTHY", 54}, // 1 Timothy
+ {"J", 43}, // John
+ {"JAMES", 59}, // James
+ {"JAS", 59}, // James
+ {"JDGS", 7}, // Judges
+ {"JEREMIAH", 24}, // Jeremiah
+ {"JHN", 43}, // John
+ {"JN", 43}, // John
+ {"JO", 43}, // John
+ {"JOB", 18}, // Job
+ {"JOEL", 29}, // Joel
+ {"JOHN", 43}, // John
+ {"JOL", 29}, // Joel
+ {"JONAH", 32}, // Jonah
+ {"JOSHUA", 6}, // Joshua
+ {"JUDE", 65}, // Jude
+ {"JUDGES", 7}, // Judges
+ {"L", 42}, // Luke
+ {"LAMENTATIONS", 25}, // Lamentations
+ {"LEVITICUS", 3}, // Leviticus
+ {"LK", 42}, // Luke
+ {"LUKE", 42}, // Luke
+ {"MA", 40}, // Matthew
+ {"MALACHI", 39}, // Malachi
+ {"MARK", 41}, // Mark
+ {"MATTHEW", 40}, // Matthew
+ {"MICAH", 33}, // Micah
+ {"MK", 41}, // Mark
+ {"MRK", 41}, // Mark
+ {"MT", 40}, // Matthew
+ {"N", 4}, // Numbers
+ {"NAHUM", 34}, // Nahum
+ {"NAM", 34}, // Nahum
+ {"NEHEMIAH", 16}, // Nehemiah
+ {"NUMBERS", 4}, // Numbers
+ {"OBADIAH", 31}, // Obadiah
+ {"P", 19}, // Psalms
+ {"PHIL", 50}, // Philippians
+ {"PHILEMON", 57}, // Philemon
+ {"PHILIPPIANS", 50}, // Philippians
+ {"PHLM", 57}, // Philemon
+ {"PHM", 57}, // Philemon
+ {"PHP", 50}, // Philippians
+ {"PROVERBS", 20}, // Proverbs
+ {"PSALMS", 19}, // Psalms
+ {"PSM", 19}, // Psalms
+ {"PSS", 19}, // Psalms
+ {"QOHELETH", 21}, // Qohelet (Ecclesiastes)
+ {"REVELATION OF JOHN", 66}, // Revelation
+ {"ROMANS", 45}, // Romans
+ {"RUTH", 8}, // Ruth
+ {"SNG", 22}, // Song of Solomon
+ {"SOLOMON", 22}, // Song of Solomon
+ {"SONG OF SOLOMON", 22}, // Song of Solomon
+ {"SONG OF SONGS", 22}, // Song of Solomon
+ {"SOS", 22}, // Song of Solomon
+ {"TITUS", 56}, // Titus
+ {"ZECHARIAH", 38}, // Zechariah
+ {"ZEPHANIAH", 36}, // Zephaniah
+ {"", -1}
+};
+
+
+/******************************************************************************
+ * Maximum verses per chapter
+ */
+
+int
+ VerseKey::vm[] = {
+ // Genesis
+ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38,
+ 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36,
+ 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26,
+ // Exodus
+ 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25,
+ 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29,
+ 31, 43, 38,
+ // Leviticus
+ 17, 16, 17, 35, 19, 30, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37,
+ 27, 24, 33, 44, 23, 55, 46, 34,
+ // Numbers
+ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 50, 13, 32, 22,
+ 29, 35, 41, 30, 25, 18, 65, 23, 31, 40, 16, 54, 42, 56, 29, 34, 13,
+ // Deuteronomy
+ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21,
+ 20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12,
+ // Joshua
+ 18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51,
+ 9, 45, 34, 16, 33,
+ // Judges
+ 36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30,
+ 48, 25,
+ // Ruth
+ 22, 23, 18, 22,
+ // I Samual
+ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24,
+ 42, 15, 23, 29, 22, 44, 25, 12, 25, 11, 31, 13,
+ // II Samuel
+ 27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43,
+ 26, 22, 51, 39, 25,
+ // I Kings
+ 53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21,
+ 43, 29, 53,
+ // II Kings
+ 18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37,
+ 21, 26, 20, 37, 20, 30,
+ // I Chronicles
+ 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19,
+ 8, 30, 19, 32, 31, 31, 32, 34, 21, 30,
+ // II Chronicles
+ 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11,
+ 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23,
+ // Ezra
+ 11, 70, 13, 24, 17, 22, 28, 36, 15, 44,
+ // Nehemiah
+ 11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31,
+ // Esther
+ 22, 23, 15, 17, 14, 14, 10, 17, 32, 3,
+ // Job
+ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29,
+ 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41,
+ 30, 24, 34, 17,
+ // Psalms
+ 6, 12, 8, 8, 12, 10, 17, 9, 20, 18, 7, 8, 6, 7, 5, 11, 15, 50, 14, 9, 13,
+ 31, 6, 10, 22, 12, 14, 9, 11, 12, 24, 11, 22, 22, 28, 12, 40, 22, 13, 17,
+ 13, 11, 5, 26, 17, 11, 9, 14, 20, 23, 19, 9, 6, 7, 23, 13, 11, 11, 17, 12,
+ 8, 12, 11, 10, 13, 20, 7, 35, 36, 5, 24, 20, 28, 23, 10, 12, 20, 72, 13,
+ 19, 16, 8, 18, 12, 13, 17, 7, 18, 52, 17, 16, 15, 5, 23, 11, 13, 12, 9, 9,
+ 5, 8, 28, 22, 35, 45, 48, 43, 13, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176,
+ 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 13, 10, 7,
+ 12, 15, 21, 10, 20, 14, 9, 6,
+ // Proverbs
+ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29,
+ 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31,
+ // Ecclesiastes
+ 18, 26, 22, 16, 20, 12, 29, 17, 18, 20, 10, 14,
+ // Song of Solomon
+ 17, 17, 11, 16, 16, 13, 13, 14,
+ // Isaiah
+ 31, 22, 26, 6, 30, 13, 25, 22, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6,
+ 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8,
+ 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21,
+ 14, 21, 22, 11, 12, 19, 12, 25, 24,
+ // Jeremiah
+ 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15,
+ 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21,
+ 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34,
+ // Lamentations
+ 22, 22, 66, 22, 22,
+ // Ezekiel
+ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14,
+ 49, 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28,
+ 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35,
+ // Daniel
+ 21, 49, 30, 37, 31, 28, 28, 27, 27, 21, 45, 13,
+ // Hosea
+ 11, 23, 5, 19, 15, 11, 16, 14, 17, 15, 12, 14, 16, 9,
+ // Joel
+ 20, 32, 21,
+ // Amos
+ 15, 16, 15, 13, 27, 14, 17, 14, 15,
+ // Obadiah
+ 21,
+ // Jonah
+ 17, 10, 10, 11,
+ // Micah
+ 16, 13, 12, 13, 15, 16, 20,
+ // Nahum
+ 15, 13, 19,
+ // Habakkuk
+ 17, 20, 19,
+ // Zephaniah
+ 18, 15, 20,
+ // Haggai
+ 15, 23,
+ // Zechariah
+ 21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21,
+ // Malachi
+ 14, 17, 18, 6,
+ // -----------------------------------------------------------------
+ // Matthew
+ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30,
+ 34, 46, 46, 39, 51, 46, 75, 66, 20,
+ // Mark
+ 45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20,
+ // Luke
+ 80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48,
+ 47, 38, 71, 56, 53,
+ // John
+ 51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42,
+ 31, 25,
+ // Acts
+ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 41,
+ 38, 40, 30, 35, 27, 27, 32, 44, 31,
+ // Romans
+ 32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27,
+ // I Corinthians
+ 31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24,
+ // II Corinthians
+ 24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 14,
+ // Galatians
+ 24, 21, 29, 31, 26, 18,
+ // Ephesians
+ 23, 22, 21, 32, 33, 24,
+ // Philippians
+ 30, 30, 21, 23,
+ // Colossians
+ 29, 23, 25, 18,
+ // I Thessalonians
+ 10, 20, 13, 18, 28,
+ // II Thessalonians
+ 12, 17, 18,
+ // I Timothy
+ 20, 15, 16, 16, 25, 21,
+ // II Timothy
+ 18, 26, 17, 22,
+ // Titus
+ 16, 15, 15,
+ // Philemon
+ 25,
+ // Hebrews
+ 14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25,
+ // James
+ 27, 26, 18, 17, 20,
+ // I Peter
+ 25, 25, 22, 19, 14,
+ // II Peter
+ 21, 22, 18,
+ // I John
+ 10, 29, 24, 21, 21,
+ // II John
+ 13,
+ // III John
+ 14,
+ // Jude
+ 25,
+ // Revelation of John
+ 20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 17, 18, 20, 8, 21, 18, 24, 21,
+ 15, 27, 21
+};
+
+
+long
+ VerseKey::otbks[] = {
+ 0, 1, 52, 93, 121, 158,
+ 193, 218, 240, 245, 277, 302, 325,
+ 351, 381, 418, 429, 443, 454, 497,
+ 648, 680, 693, 702, 769, 822, 828,
+ 877, 890, 905, 909, 919, 921, 926,
+ 934, 938, 942, 946, 949, 964
+};
+
+long
+ VerseKey::otcps[] = {
+ 0, 2, 3, 35, 61, 86,
+ 113, 146, 169, 194, 217, 247, 280,
+ 313, 334, 353, 378, 400, 417, 445,
+ 479, 518, 537, 572, 597, 618, 686,
+ 721, 757, 804, 827, 863, 907, 963,
+ 996, 1017, 1049, 1079, 1123, 1160, 1191,
+ 1215, 1239, 1297, 1336, 1371, 1406, 1435,
+ 1470, 1502, 1525, 1559, 1586, 1587, 1610,
+ 1636, 1659, 1691, 1715, 1746, 1772, 1805,
+ 1841, 1871, 1882, 1934, 1957, 1989, 2017,
+ 2054, 2071, 2099, 2125, 2152, 2189, 2221,
+ 2255, 2274, 2315, 2353, 2375, 2419, 2466,
+ 2505, 2524, 2560, 2584, 2620, 2656, 2695,
+ 2725, 2757, 2801, 2840, 2841, 2859, 2876,
+ 2894, 2930, 2950, 2981, 3020, 3057, 3082,
+ 3103, 3151, 3160, 3220, 3278, 3312, 3347,
+ 3364, 3395, 3433, 3461, 3486, 3520, 3565,
+ 3589, 3645, 3692, 3727, 3728, 3783, 3818,
+ 3870, 3920, 3952, 3980, 4070, 4097, 4121,
+ 4158, 4194, 4211, 4245, 4291, 4333, 4384,
+ 4398, 4431, 4454, 4484, 4520, 4562, 4593,
+ 4619, 4638, 4704, 4728, 4760, 4801, 4818,
+ 4873, 4916, 4973, 5003, 5038, 5052, 5053,
+ 5100, 5138, 5168, 5218, 5252, 5278, 5305,
+ 5326, 5356, 5379, 5412, 5445, 5464, 5494,
+ 5518, 5541, 5562, 5585, 5607, 5628, 5652,
+ 5683, 5709, 5732, 5752, 5772, 5799, 5868,
+ 5898, 5919, 5950, 6003, 6033, 6046, 6047,
+ 6066, 6091, 6109, 6134, 6150, 6178, 6205,
+ 6241, 6269, 6313, 6337, 6362, 6396, 6412,
+ 6476, 6487, 6506, 6535, 6587, 6597, 6643,
+ 6678, 6695, 6729, 6730, 6767, 6791, 6823,
+ 6848, 6880, 6921, 6947, 6983, 7041, 7060,
+ 7101, 7117, 7143, 7164, 7185, 7217, 7231,
+ 7263, 7294, 7343, 7369, 7370, 7393, 7417,
+ 7436, 7459, 7460, 7489, 7526, 7548, 7571,
+ 7584, 7606, 7624, 7647, 7675, 7703, 7719,
+ 7745, 7769, 7822, 7858, 7882, 7941, 7972,
+ 7997, 8040, 8056, 8080, 8110, 8133, 8178,
+ 8204, 8217, 8243, 8255, 8287, 8301, 8302,
+ 8330, 8363, 8403, 8416, 8442, 8466, 8496,
+ 8515, 8529, 8549, 8577, 8609, 8649, 8683,
+ 8721, 8745, 8775, 8809, 8853, 8880, 8903,
+ 8955, 8995, 9021, 9022, 9076, 9123, 9152,
+ 9187, 9206, 9245, 9297, 9364, 9393, 9423,
+ 9467, 9501, 9536, 9568, 9603, 9638, 9663,
+ 9710, 9732, 9776, 9806, 9860, 9861, 9880,
+ 9906, 9934, 9979, 10007, 10041, 10062, 10092,
+ 10130, 10167, 10189, 10211, 10237, 10267, 10306,
+ 10327, 10369, 10407, 10445, 10467, 10494, 10515,
+ 10553, 10574, 10605, 10606, 10661, 10717, 10742,
+ 10786, 10813, 10895, 10936, 10977, 11022, 11037,
+ 11085, 11126, 11141, 11159, 11189, 11233, 11261,
+ 11279, 11299, 11308, 11339, 11359, 11392, 11424,
+ 11456, 11489, 11524, 11546, 11577, 11578, 11596,
+ 11615, 11633, 11656, 11671, 11714, 11737, 11756,
+ 11788, 11808, 11832, 11849, 11872, 11888, 11908,
+ 11923, 11943, 11978, 11990, 12028, 12049, 12062,
+ 12084, 12112, 12141, 12165, 12175, 12203, 12240,
+ 12268, 12290, 12324, 12350, 12384, 12412, 12436,
+ 12437, 12449, 12520, 12534, 12559, 12577, 12600,
+ 12629, 12666, 12682, 12727, 12728, 12740, 12761,
+ 12794, 12818, 12838, 12858, 12932, 12951, 12990,
+ 13030, 13067, 13115, 13147, 13148, 13171, 13195,
+ 13211, 13229, 13244, 13259, 13270, 13288, 13321,
+ 13325, 13326, 13349, 13363, 13390, 13412, 13440,
+ 13471, 13493, 13516, 13552, 13575, 13596, 13622,
+ 13651, 13674, 13710, 13733, 13750, 13772, 13802,
+ 13832, 13867, 13898, 13916, 13942, 13949, 13964,
+ 13988, 14017, 14043, 14075, 14116, 14139, 14173,
+ 14211, 14228, 14262, 14287, 14329, 14360, 14385,
+ 14420, 14438, 14439, 14446, 14459, 14468, 14477,
+ 14490, 14501, 14519, 14529, 14550, 14569, 14577,
+ 14586, 14593, 14601, 14607, 14619, 14635, 14686,
+ 14701, 14711, 14725, 14757, 14764, 14775, 14798,
+ 14811, 14826, 14836, 14848, 14861, 14886, 14898,
+ 14921, 14944, 14973, 14986, 15027, 15050, 15064,
+ 15082, 15096, 15108, 15114, 15141, 15159, 15171,
+ 15181, 15196, 15217, 15241, 15261, 15271, 15278,
+ 15286, 15310, 15324, 15336, 15348, 15366, 15379,
+ 15388, 15401, 15413, 15424, 15438, 15459, 15467,
+ 15503, 15540, 15546, 15571, 15592, 15621, 15645,
+ 15656, 15669, 15690, 15763, 15777, 15797, 15814,
+ 15823, 15842, 15855, 15869, 15887, 15895, 15914,
+ 15967, 15985, 16002, 16018, 16024, 16048, 16060,
+ 16074, 16087, 16097, 16107, 16113, 16122, 16151,
+ 16174, 16210, 16256, 16305, 16349, 16363, 16395,
+ 16403, 16414, 16425, 16435, 16444, 16463, 16483,
+ 16486, 16516, 16693, 16701, 16710, 16720, 16725,
+ 16734, 16740, 16747, 16753, 16760, 16769, 16778,
+ 16782, 16801, 16805, 16809, 16831, 16858, 16868,
+ 16877, 16902, 16916, 16927, 16935, 16948, 16964,
+ 16986, 16997, 17018, 17033, 17043, 17050, 17051,
+ 17085, 17108, 17144, 17172, 17196, 17232, 17260,
+ 17297, 17316, 17349, 17381, 17410, 17436, 17472,
+ 17506, 17540, 17569, 17594, 17624, 17655, 17687,
+ 17717, 17753, 17788, 17817, 17846, 17874, 17903,
+ 17931, 17965, 17997, 17998, 18017, 18044, 18067,
+ 18084, 18105, 18118, 18148, 18166, 18185, 18206,
+ 18217, 18232, 18233, 18251, 18269, 18281, 18298,
+ 18315, 18329, 18343, 18358, 18359, 18391, 18414,
+ 18441, 18448, 18479, 18493, 18519, 18542, 18564,
+ 18599, 18616, 18623, 18646, 18679, 18689, 18704,
+ 18719, 18727, 18753, 18760, 18778, 18804, 18823,
+ 18847, 18860, 18882, 18896, 18926, 18951, 18985,
+ 18995, 19016, 19041, 19059, 19070, 19093, 19132,
+ 19155, 19164, 19196, 19226, 19252, 19281, 19310,
+ 19336, 19350, 19366, 19389, 19416, 19428, 19452,
+ 19468, 19481, 19499, 19513, 19526, 19548, 19563,
+ 19585, 19608, 19620, 19633, 19653, 19666, 19692,
+ 19717, 19718, 19738, 19776, 19802, 19834, 19866,
+ 19897, 19932, 19955, 19982, 20008, 20032, 20050,
+ 20078, 20101, 20123, 20145, 20173, 20197, 20213,
+ 20232, 20247, 20278, 20319, 20330, 20369, 20394,
+ 20417, 20435, 20468, 20493, 20534, 20579, 20606,
+ 20629, 20649, 20682, 20704, 20733, 20752, 20769,
+ 20788, 20811, 20825, 20856, 20862, 20891, 20899,
+ 20947, 20987, 21034, 21099, 21134, 21135, 21158,
+ 21181, 21248, 21271, 21294, 21295, 21324, 21335,
+ 21363, 21381, 21399, 21414, 21442, 21461, 21473,
+ 21496, 21522, 21551, 21575, 21599, 21608, 21672,
+ 21697, 21730, 21745, 21795, 21828, 21860, 21910,
+ 21938, 21956, 21978, 22015, 22042, 22064, 22091,
+ 22110, 22143, 22177, 22209, 22225, 22264, 22293,
+ 22317, 22347, 22397, 22424, 22445, 22473, 22505,
+ 22531, 22556, 22580, 22616, 22617, 22639, 22689,
+ 22720, 22758, 22790, 22819, 22848, 22876, 22904,
+ 22926, 22972, 22986, 22987, 22999, 23023, 23029,
+ 23049, 23065, 23077, 23094, 23109, 23127, 23143,
+ 23156, 23171, 23188, 23198, 23199, 23220, 23253,
+ 23275, 23276, 23292, 23309, 23325, 23339, 23367,
+ 23382, 23400, 23415, 23431, 23432, 23454, 23455,
+ 23473, 23484, 23495, 23507, 23508, 23525, 23539,
+ 23552, 23566, 23582, 23599, 23620, 23621, 23637,
+ 23651, 23671, 23672, 23690, 23711, 23731, 23732,
+ 23751, 23767, 23788, 23789, 23805, 23829, 23830,
+ 23852, 23866, 23877, 23892, 23904, 23920, 23935,
+ 23959, 23977, 23990, 24008, 24023, 24033, 24055,
+ 24056, 24071, 24089, 24108
+};
+
+long
+ VerseKey::ntbks[] = {
+ 0, 1, 30, 47, 72, 94,
+ 123, 140, 157, 171, 178, 185, 190,
+ 195, 201, 205, 212, 217, 221, 223,
+ 237, 243, 249, 253, 259, 261, 263,
+ 265
+};
+
+long
+ VerseKey::ntcps[] = {
+ 0, 2, 3, 29, 53, 71,
+ 97, 146, 181, 211, 246, 285, 328,
+ 359, 410, 469, 506, 546, 575, 603,
+ 639, 670, 705, 752, 799, 839, 891,
+ 938, 1014, 1081, 1102, 1103, 1149, 1178,
+ 1214, 1256, 1300, 1357, 1395, 1434, 1485,
+ 1538, 1572, 1617, 1655, 1728, 1776, 1797,
+ 1798, 1879, 1932, 1971, 2016, 2056, 2106,
+ 2157, 2214, 2277, 2320, 2375, 2435, 2471,
+ 2507, 2540, 2572, 2610, 2654, 2703, 2751,
+ 2790, 2862, 2919, 2973, 2974, 3026, 3052,
+ 3089, 3144, 3192, 3264, 3318, 3378, 3420,
+ 3463, 3521, 3572, 3611, 3643, 3671, 3705,
+ 3732, 3773, 3816, 3848, 3874, 3875, 3902,
+ 3950, 3977, 4015, 4058, 4074, 4135, 4176,
+ 4220, 4269, 4300, 4326, 4379, 4408, 4450,
+ 4491, 4526, 4555, 4597, 4636, 4677, 4708,
+ 4744, 4772, 4800, 4833, 4878, 4910, 4911,
+ 4944, 4974, 5006, 5032, 5054, 5078, 5104,
+ 5144, 5178, 5200, 5237, 5259, 5274, 5298,
+ 5332, 5360, 5361, 5393, 5410, 5434, 5456,
+ 5470, 5491, 5532, 5546, 5574, 5608, 5643,
+ 5675, 5689, 5730, 5789, 5814, 5815, 5840,
+ 5858, 5877, 5896, 5918, 5937, 5954, 5979,
+ 5995, 6014, 6048, 6070, 6085, 6086, 6111,
+ 6133, 6163, 6195, 6222, 6241, 6242, 6266,
+ 6289, 6311, 6344, 6378, 6403, 6404, 6435,
+ 6466, 6488, 6512, 6513, 6543, 6567, 6593,
+ 6612, 6613, 6624, 6645, 6659, 6678, 6707,
+ 6708, 6721, 6739, 6758, 6759, 6780, 6796,
+ 6813, 6830, 6856, 6878, 6879, 6898, 6925,
+ 6943, 6966, 6967, 6984, 7000, 7016, 7017,
+ 7043, 7044, 7059, 7078, 7098, 7115, 7130,
+ 7151, 7180, 7194, 7223, 7263, 7304, 7334,
+ 7360, 7361, 7389, 7416, 7435, 7453, 7474,
+ 7475, 7501, 7527, 7550, 7570, 7585, 7586,
+ 7608, 7631, 7650, 7651, 7662, 7692, 7717,
+ 7739, 7761, 7762, 7776, 7777, 7792, 7793,
+ 7819, 7820, 7841, 7871, 7894, 7906, 7921,
+ 7939, 7957, 7971, 7993, 8005, 8025, 8043,
+ 8062, 8083, 8092, 8114, 8133, 8158, 8180,
+ 8196, 8224
+};
+
+
+int
+ VerseKey::offsize[2][2] =
+ { {sizeof (VerseKey::otbks) / sizeof(long), sizeof (VerseKey::otcps) / sizeof(long)}
+, {sizeof (VerseKey::ntbks) / sizeof(long), sizeof (VerseKey::ntcps) / sizeof(long)}
+};
+