Dear all,

I would like to submit a patch that adds a new versification system.

This versification is used by the protestant Statenvertaling and some other
dutch protestant bibles. The patch introduces no changes to existing
versification systems and registers a new, separate versification.

Currently the DutSVV and DutSVVA modules use KJVA versification. By my
count, this results in 93 verse mismatches with the traditional
Statenvertaling. This makes verse lookup and usage in tools such as
diatheke and xiphos error-prone. (I always have to check whether I've got
my references right.)

This versification is used quite a lot in the Netherlands. Other
translations use this versification, such as the NBG-vertaling 51,
Statenvertaling 1977, Herziene Statenvertaling 2010 and forthcoming
Statenvertaling 2027.

The patch includes:
- a new canon header: `include/canon_dutsvv.h`
- registration of the new versification system in `VersificationMgr`

At this stage, no cross-versification mappings are included.

The patch is included below. Please consider this addition.
Thank you for your time and for maintaining the SWORD project.

Kind regards,

Adriaan Pater

diff

Index: include/canon_dutsvv.h
===================================================================
--- include/canon_dutsvv.h (nonexistent)
+++ include/canon_dutsvv.h (working copy)
@@ -0,0 +1,338 @@
+/******************************************************************************
+ * canon_dutsvv.h - Versification data for the dutsvv system
+ *
+ * Copyright 2026 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.
+ */
+
+#ifndef CANON_DUTSVV_H
+#define CANON_DUTSVV_H
+
+SWORD_NAMESPACE_START
+
+
+// Versification system: dutsvv
+// Book order: Gen Exod Lev Num Deut Josh Judg Ruth 1Sam 2Sam 1Kgs 2Kgs
1Chr 2Chr Ezra Neh Esth Job Ps Prov Eccl Song Isa Jer Lam Ezek Dan Hos Joel
Amos Obad Jonah Mic Nah Hab Zeph Hag Zech Mal Matt Mark Luke John Acts Rom
1Cor 2Cor Gal Eph Phil Col 1Thess 2Thess 1Tim 2Tim Titus Phlm Heb Jas 1Pet
2Pet 1John 2John 3John Jude Rev
+
+/******************************************************************************
+ * [on]tbooks_dutsvv - initialize static instance for all canonical
+ * text names and chapmax
+ */
+struct sbook otbooks_dutsvv[] = {
+  {"Genesis", "Gen", "Gen", 50},
+  {"Exodus", "Exod", "Exod", 40},
+  {"Leviticus", "Lev", "Lev", 27},
+  {"Numbers", "Num", "Num", 36},
+  {"Deuteronomy", "Deut", "Deut", 34},
+  {"Joshua", "Josh", "Josh", 24},
+  {"Judges", "Judg", "Judg", 21},
+  {"Ruth", "Ruth", "Ruth", 4},
+  {"I Samuel", "1Sam", "1Sam", 31},
+  {"II Samuel", "2Sam", "2Sam", 24},
+  {"I Kings", "1Kgs", "1Kgs", 22},
+  {"II Kings", "2Kgs", "2Kgs", 25},
+  {"I Chronicles", "1Chr", "1Chr", 29},
+  {"II Chronicles", "2Chr", "2Chr", 36},
+  {"Ezra", "Ezra", "Ezra", 10},
+  {"Nehemiah", "Neh", "Neh", 13},
+  {"Esther", "Esth", "Esth", 10},
+  {"Job", "Job", "Job", 42},
+  {"Psalms", "Ps", "Ps", 150},
+  {"Proverbs", "Prov", "Prov", 31},
+  {"Ecclesiastes", "Eccl", "Eccl", 12},
+  {"Song of Solomon", "Song", "Song", 8},
+  {"Isaiah", "Isa", "Isa", 66},
+  {"Jeremiah", "Jer", "Jer", 52},
+  {"Lamentations", "Lam", "Lam", 5},
+  {"Ezekiel", "Ezek", "Ezek", 48},
+  {"Daniel", "Dan", "Dan", 12},
+  {"Hosea", "Hos", "Hos", 14},
+  {"Joel", "Joel", "Joel", 3},
+  {"Amos", "Amos", "Amos", 9},
+  {"Obadiah", "Obad", "Obad", 1},
+  {"Jonah", "Jonah", "Jonah", 4},
+  {"Micah", "Mic", "Mic", 7},
+  {"Nahum", "Nah", "Nah", 3},
+  {"Habakkuk", "Hab", "Hab", 3},
+  {"Zephaniah", "Zeph", "Zeph", 3},
+  {"Haggai", "Hag", "Hag", 2},
+  {"Zechariah", "Zech", "Zech", 14},
+  {"Malachi", "Mal", "Mal", 4},
+  {"", "", "", 0}
+};
+
+struct sbook ntbooks_dutsvv[] = {
+  {"Matthew", "Matt", "Matt", 28},
+  {"Mark", "Mark", "Mark", 16},
+  {"Luke", "Luke", "Luke", 24},
+  {"John", "John", "John", 21},
+  {"Acts", "Acts", "Acts", 28},
+  {"Romans", "Rom", "Rom", 16},
+  {"I Corinthians", "1Cor", "1Cor", 16},
+  {"II Corinthians", "2Cor", "2Cor", 13},
+  {"Galatians", "Gal", "Gal", 6},
+  {"Ephesians", "Eph", "Eph", 6},
+  {"Philippians", "Phil", "Phil", 4},
+  {"Colossians", "Col", "Col", 4},
+  {"I Thessalonians", "1Thess", "1Thess", 5},
+  {"II Thessalonians", "2Thess", "2Thess", 3},
+  {"I Timothy", "1Tim", "1Tim", 6},
+  {"II Timothy", "2Tim", "2Tim", 4},
+  {"Titus", "Titus", "Titus", 3},
+  {"Philemon", "Phlm", "Phlm", 1},
+  {"Hebrews", "Heb", "Heb", 13},
+  {"James", "Jas", "Jas", 5},
+  {"I Peter", "1Pet", "1Pet", 5},
+  {"II Peter", "2Pet", "2Pet", 3},
+  {"I John", "1John", "1John", 5},
+  {"II John", "2John", "2John", 1},
+  {"III John", "3John", "3John", 1},
+  {"Jude", "Jude", "Jude", 1},
+  {"Revelation of John", "Rev", "Rev", 22},
+  {"", "", "", 0}
+};
+
+/******************************************************************************
+ * Maximum verses per chapter
+ */
+
+int vm_dutsvv[] = {
+  // 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, 24, 29, 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 Samuel
+  28, 36, 21, 22, 12, 21, 17, 22, 27, 27,
+  15, 25, 23, 52, 35, 23, 58, 30, 24, 43,
+  15, 23, 28, 23, 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, 54,
+  // 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, 19, 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, 38, 38, 28,
+  25, 17,
+  // Psalms
+  6, 12, 9, 9, 13, 11, 18, 10, 21, 18,
+  7, 9, 6, 7, 5, 11, 15, 51, 15, 10,
+  14, 32, 6, 10, 22, 12, 14, 9, 11, 13,
+  25, 11, 22, 23, 28, 13, 40, 23, 14, 18,
+  14, 12, 5, 27, 18, 12, 10, 15, 21, 23,
+  21, 11, 7, 9, 24, 14, 12, 12, 18, 14,
+  9, 13, 12, 11, 14, 20, 8, 36, 37, 6,
+  24, 20, 28, 23, 11, 13, 21, 72, 13, 20,
+  17, 8, 19, 13, 14, 17, 7, 19, 53, 17,
+  16, 16, 5, 23, 11, 13, 12, 9, 9, 5,
+  8, 29, 22, 35, 45, 48, 43, 14, 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, 14,
+  10, 8, 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, 17, 19, 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, 23, 20, 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, 30, 29, 28, 27, 27, 21,
+  45, 13,
+  // Hosea
+  12, 22, 5, 19, 15, 11, 16, 14, 17, 15,
+  11, 15, 15, 10,
+  // 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, 14, 14, 16, 20,
+  // Nahum
+  15, 13, 19,
+  // Habakkuk
+  17, 20, 19,
+  // Zephaniah
+  18, 15, 20,
+  // Haggai
+  14, 24,
+  // 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
+  52, 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, 40, 38,
+  40, 30, 35, 27, 27, 32, 44, 31,
+  // Romans
+  32, 29, 31, 25, 21, 23, 26, 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, 13,
+  // 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
+  15,
+  // Jude
+  25,
+  // Revelation of John
+  20, 29, 22, 11, 14, 17, 17, 13, 21, 11,
+  19, 18, 18, 20, 8, 21, 18, 24, 21, 15,
+  27, 21
+};
+
+
+SWORD_NAMESPACE_END
+
+
+#endif
Index: src/mgr/versificationmgr.cpp
===================================================================
--- src/mgr/versificationmgr.cpp (revision 3914)
+++ src/mgr/versificationmgr.cpp (working copy)
@@ -48,6 +48,7 @@
 #include <canon_segond.h> // French v11n system as used by Segond Bibles
and its derivatives
 #include <canon_calvin.h> // French v11n system
 #include <canon_darbyfr.h> // French v11n system based on John Darby's
French translation
+#include <canon_dutsvv.h> // Dutch Statenvertaling v11n system

 using std::vector;
 using std::map;
@@ -79,6 +80,7 @@
  systemVersificationMgr->registerVersificationSystem("Calvin", otbooks,
ntbooks, vm_calvin, mappings_calvin);
  systemVersificationMgr->registerVersificationSystem("DarbyFr", otbooks,
ntbooks, vm_darbyfr, mappings_darbyfr);
  systemVersificationMgr->registerVersificationSystem("Segond", otbooks,
ntbooks, vm_segond, mappings_segond);
+ systemVersificationMgr->registerVersificationSystem("DutSVV",
otbooks_dutsvv, ntbooks_dutsvv, vm_dutsvv);
  }
  return systemVersificationMgr;
 }
_______________________________________________
sword-devel mailing list
[email protected]
https://crosswire.org/mailman/listinfo/sword-devel

Reply via email to