[sword-svn] r514 - branches/BCB5

scribe at crosswire.org scribe at crosswire.org
Sun Jul 19 14:41:42 EDT 2020


Author: scribe
Date: 2020-07-19 14:41:42 -0400 (Sun, 19 Jul 2020)
New Revision: 514

Modified:
   branches/BCB5/AboutBoxfrm.cpp
   branches/BCB5/AboutBoxfrm.dfm
   branches/BCB5/DevOfTheDay.cpp
   branches/BCB5/DevOfTheDay.dfm
   branches/BCB5/PrintFrm.cpp
   branches/BCB5/PrintFrm.dfm
   branches/BCB5/RangeMaintFrm.cpp
   branches/BCB5/RangeMaintFrm.dfm
   branches/BCB5/RxRichEditX.cpp
   branches/BCB5/TModuleFonts.cpp
   branches/BCB5/TModuleFonts.dfm
   branches/BCB5/biblecsmgr.cpp
   branches/BCB5/biblecsmgr.h
   branches/BCB5/bookmarkfrm.cpp
   branches/BCB5/bookmarkfrm.dfm
   branches/BCB5/editentryfrm.cpp
   branches/BCB5/editentryfrm.dfm
   branches/BCB5/mainfrm.cpp
   branches/BCB5/mainfrm.dfm
   branches/BCB5/mainfrm.h
   branches/BCB5/optionfrm.cpp
   branches/BCB5/optionfrm.dfm
   branches/BCB5/paraldisp.cpp
   branches/BCB5/searchfrm.cpp
   branches/BCB5/searchfrm.dfm
   branches/BCB5/swdisprtf.cpp
   branches/BCB5/swdisprtfchap.cpp
Log:
Updates for SWORD 1.9.0

Modified: branches/BCB5/AboutBoxfrm.cpp
===================================================================
--- branches/BCB5/AboutBoxfrm.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/AboutBoxfrm.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -32,8 +32,8 @@
 		newtext += " }\\par \\par ";
 		for (it = Form1->mainmgr->Modules.begin(); it != Form1->mainmgr->Modules.end(); it++) {
 			if (!strcmp((*it).second->getType(), modtypes[i])) {
-				it2 = Form1->mainmgr->config->Sections.find((*it).second->getName());
-				if (it2 != Form1->mainmgr->config->Sections.end()) {
+				it2 = Form1->mainmgr->config->getSections().find((*it).second->getName());
+				if (it2 != Form1->mainmgr->config->getSections().end()) {
 					newtext = newtext + "{\\fs24\\cf1\\b " + (*it).second->getName() + " }\t";
 					newtext = newtext + "{\\fs24\\i " + (*it).second->getDescription() + " } \\par ";
 					it3 = (*it2).second.find("About");
@@ -113,7 +113,7 @@
 		SectionMap::iterator section;
 		ConfigEntMap::iterator entry;
 
-		for (section = Form1->mainmgr->config->Sections.begin(); section != Form1->mainmgr->config->Sections.end(); section++) {
+		for (section = Form1->mainmgr->config->getSections().begin(); section != Form1->mainmgr->config->getSections().end(); section++) {
 			newtext += "["; newtext += section->first.c_str(); newtext += "] \\par ";
 			for (entry = (*section).second.begin(); entry != (*section).second.end(); entry++) {
 				newtext += entry->first.c_str(); newtext += "="; newtext += entry->second.c_str(); newtext += "\\par ";

Modified: branches/BCB5/AboutBoxfrm.dfm
===================================================================
(Binary files differ)

Modified: branches/BCB5/DevOfTheDay.cpp
===================================================================
--- branches/BCB5/DevOfTheDay.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/DevOfTheDay.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -31,8 +31,8 @@
 {
 	DevOfTheDay2->Hide();
 	if (Form1->optionsconf) {
-		Form1->optionsconf->Sections["General"]["TipOfTheDay"] = (DevOfTheDay2->ckShowTip->Checked) ? "Devotional" : "";
-		Form1->optionsconf->Save();
+		Form1->optionsconf->getSections()["General"]["TipOfTheDay"] = (DevOfTheDay2->ckShowTip->Checked) ? "Devotional" : "";
+		Form1->optionsconf->save();
 	}
 }
 //---------------------------------------------------------------------------
@@ -43,7 +43,7 @@
 	ListKey key;
 	String devoKey = TDateTime::CurrentDate().FormatString("mm.dd");
 	key << devoKey.c_str();
-	SWBuf tmpval = Form1->optionsconf->Sections["ModDefaults"]["DailyDevotion"];
+	SWBuf tmpval = Form1->optionsconf->getSections()["ModDefaults"]["DailyDevotion"];
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
 		RichTip->fillWithVerses(it->second, &key, 0, false, false);
 	}
@@ -52,7 +52,7 @@
 	 + _tr("Visit our website at www.crosswire.org for more information."); 
 	// If no devotional text is shown then a general how-to is diplayed.
 	
-	tmpval = Form1->optionsconf->Sections["General"]["TipOfTheDay"];
+	tmpval = Form1->optionsconf->getSections()["General"]["TipOfTheDay"];
 	ckShowTip->Checked = (!sword::stricmp(tmpval.c_str(), "Devotional"));
 }
 //---------------------------------------------------------------------------

Modified: branches/BCB5/DevOfTheDay.dfm
===================================================================
--- branches/BCB5/DevOfTheDay.dfm	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/DevOfTheDay.dfm	2020-07-19 18:41:42 UTC (rev 514)
@@ -19,13 +19,13 @@
   Position = poScreenCenter
   Scaled = False
   OnShow = FormShow
-  PixelsPerInch = 96
-  TextHeight = 13
+  PixelsPerInch = 120
+  TextHeight = 16
   object Panel1: TPanel
     Left = 0
     Top = 69
     Width = 419
-    Height = 231
+    Height = 205
     Align = alClient
     AutoSize = True
     BevelOuter = bvNone
@@ -35,7 +35,7 @@
       Left = 0
       Top = 0
       Width = 419
-      Height = 231
+      Height = 205
       Align = alClient
       BorderStyle = bsNone
       PlainText = True
@@ -46,7 +46,7 @@
   end
   object Panel3: TPanel
     Left = 0
-    Top = 300
+    Top = 274
     Width = 419
     Height = 41
     Align = alBottom

Modified: branches/BCB5/PrintFrm.cpp
===================================================================
--- branches/BCB5/PrintFrm.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/PrintFrm.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -39,10 +39,10 @@
 
 void __fastcall TPrintForm::FormShow(TObject *Sender) {
       /* TODO -oDavid T -cPrinting : Remove this once Printing is in a finished form */
-	if(Form1->optionsconf->Sections["Printing"]["Notice"] != "1"){
+	if(Form1->optionsconf->getSections()["Printing"]["Notice"] != "1"){
 		MessageBoxW(0, _tr("This release of The SWORD Printer is preliminary and is not yet fully functional, therefore some of the features here have been disabled. Please be sure to take a look at the formatting options to be able to fully take control of how your page will look. Also be sure to use the \"Print Preview\" feature to preview how your page(s) will look on paper before printing. Enjoy! -- The SWORD Project Development Team!"), _tr("The SWORD Printer"), MB_ICONINFORMATION | MB_OK);
-		Form1->optionsconf->Sections["Printing"]["Notice"] = "1";
-		Form1->optionsconf->Save();
+		Form1->optionsconf->getSections()["Printing"]["Notice"] = "1";
+		Form1->optionsconf->save();
 	}
 }
 
@@ -86,7 +86,7 @@
 	SetHint();
 	// Removed this because I want to place it in a central location which will load all
 	// the printed page settings -- David Trotz
-	// fontName = ((eit = Form1->optionsconf->Sections["PrintedPage"].find("TextFontName")) != Form1->optionsconf->Sections["PrintedPage"].end())? (*eit).second.c_str() : "Times New Roman";
+	// fontName = ((eit = Form1->optionsconf->getSections()["PrintedPage"].find("TextFontName")) != Form1->optionsconf->getSections()["PrintedPage"].end())? (*eit).second.c_str() : "Times New Roman";
 	// cmbFont->ItemIndex = cmbFont->Items->IndexOf(fontName);
 	PageControl1->ActivePage = shtSelection;
 
@@ -418,92 +418,92 @@
 	else modType = "LD";
 
 	//**** Print Chapter Headings? ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][(modType + "ChHead")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][(modType + "ChHead")];
 	if (tempVal == "")
 		ckChHead->Checked = true;
 	else	ckChHead->Checked = (strtol(tempVal.c_str(), 0, 10)) ? true : false;
 
 	//**** Print Book Name? ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][(modType +"BkName")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][(modType +"BkName")];
 	if (tempVal == "")
 		ckBookHead->Checked = true;
 	else	ckBookHead->Checked = (strtol(tempVal.c_str(), 0, 10)) ? true : false;
 
 	//**** Prefix Each Verse? ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][(modType +"PreFixTag")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][(modType +"PreFixTag")];
 	if (tempVal == "")
 		ckPrefix->Checked = false;
 	else	ckPrefix->Checked = (strtol(tempVal.c_str(), 0, 10)) ? true : false;
 
 	//**** Postfix Each Verse? ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][(modType +"PostFixTag")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][(modType +"PostFixTag")];
 	if (tempVal == "")
 		ckPostfix->Checked = true;
 	else	ckPostfix->Checked = (strtol(tempVal.c_str(), 0, 10)) ? true : false;
 
 	//**** Print the verse number? ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][(modType + "VSNum")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][(modType + "VSNum")];
 	if (tempVal == "")
 		ckVSNum->Checked = true;
 	else	ckVSNum->Checked = (strtol(tempVal.c_str(), 0, 10)) ? true : false;
 
 	//**** Superscript the verse number? ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][(modType + "SuperVS")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][(modType + "SuperVS")];
 	if (tempVal == "")
 		ckSuperVS->Checked = true;
 	else	ckSuperVS->Checked = (strtol(tempVal.c_str(), 0, 10)) ? true : false;
 
 	//**** Print as a paragraph? ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][(modType + "Paragraph")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][(modType + "Paragraph")];
 	if (tempVal == "")
 		ckParagraph->Checked = true;
 	else	ckParagraph->Checked = (strtol(tempVal.c_str(), 0, 10)) ? true : false;
 
 	//**** Chapter Heading Size ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][(modType + "ChHeadSize")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][(modType + "ChHeadSize")];
 	if (tempVal != "")
 		spnHeading->Position = (strtol(tempVal.c_str(), 0, 10));
 
 	//**** Body Text Size ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][(modType + "FontSize")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][(modType + "FontSize")];
 	if (tempVal != "")
 		spnBody->Position = (strtol(tempVal.c_str(), 0, 10));
 
 	//**** Verse Number Size ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][(modType + "VSNumSize")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][(modType + "VSNumSize")];
 	if (tempVal != "")
 		spnNumbers->Position = (strtol(tempVal.c_str(), 0, 10));
 
 	//**** Left Margin ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][("LeftMargin")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][("LeftMargin")];
 	if (tempVal != ""){
 		spnLeft->Position = GetSpinPos(strtod(tempVal.c_str(), 0));
 		editLeft->Text = roundMargin(strtod(tempVal.c_str(), 0));
 	}
 
 	//**** Right Margin ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][("RightMargin")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][("RightMargin")];
 	if (tempVal != ""){
 		spnRight->Position = GetSpinPos(strtod(tempVal.c_str(), 0));
           editRight->Text = roundMargin(strtod(tempVal.c_str(), 0));
      }
 
      //**** Top Margin ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][("TopMargin")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][("TopMargin")];
 	if (tempVal != ""){
 		spnTop->Position = GetSpinPos(strtod(tempVal.c_str(), 0));
           editTop->Text = roundMargin(strtod(tempVal.c_str(), 0));
      }
 
      //**** Bottom Margin ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][("BottomMargin")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][("BottomMargin")];
 	if (tempVal != ""){
 		spnBottom->Position = GetSpinPos(strtod(tempVal.c_str(), 0));
           editBottom->Text = roundMargin(strtod(tempVal.c_str(), 0));
      }
 
 	//**** Font Name ****//
-	tempVal = Form1->optionsconf->Sections["PrintedPage"][(modType + "FontName")];
+	tempVal = Form1->optionsconf->getSections()["PrintedPage"][(modType + "FontName")];
 	if (tempVal != "")
 		cmbFont->ItemIndex = cmbFont->Items->IndexOf(tempVal.c_str());
 
@@ -551,7 +551,7 @@
 		type = "LD";
 	}
 
-	emap = config->Sections["PrintedPage"];
+	emap = config->getSections()["PrintedPage"];
 	emap[(type + "BkName")]		= IntToStr((ckBookHead->Checked)?1:0).c_str();
 	emap[type + "ChHead"]		= IntToStr((ckChHead->Checked)?1:0).c_str();
 	emap[type + "Paragraph"]		= IntToStr((ckParagraph->Checked)?1:0).c_str();
@@ -572,8 +572,8 @@
 	emap["PrnFooter"]			= IntToStr((ckFooter->Checked)?1:0).c_str();
 	emap["Header"]				= editHeader->Text.c_str();
 	emap["Footer"]				= editFooter->Text.c_str();
-	config->Sections["PrintedPage"] = emap;
-	config->Save();
+	config->getSections()["PrintedPage"] = emap;
+	config->save();
 }
 
 

Modified: branches/BCB5/PrintFrm.dfm
===================================================================
--- branches/BCB5/PrintFrm.dfm	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/PrintFrm.dfm	2020-07-19 18:41:42 UTC (rev 514)
@@ -15,13 +15,13 @@
   Position = poMainFormCenter
   Scaled = False
   OnShow = FormShow
-  PixelsPerInch = 96
-  TextHeight = 13
+  PixelsPerInch = 120
+  TextHeight = 16
   object Panel1: TPanel
-    Left = 442
+    Left = 450
     Top = 0
     Width = 92
-    Height = 272
+    Height = 257
     Align = alRight
     BevelOuter = bvNone
     TabOrder = 0
@@ -121,8 +121,8 @@
   object PageControl1: TPageControl
     Left = 0
     Top = 0
-    Width = 442
-    Height = 272
+    Width = 450
+    Height = 257
     ActivePage = shtFormat
     Align = alClient
     TabOrder = 1
@@ -138,8 +138,8 @@
         object lblModName: TLabel
           Left = 9
           Top = 75
-          Width = 66
-          Height = 13
+          Width = 85
+          Height = 16
           Caption = 'Module Name'
         end
         object radText: TRadioButton
@@ -190,8 +190,8 @@
         object staticRange: TLabel
           Left = 8
           Top = 16
-          Width = 46
-          Height = 13
+          Width = 59
+          Height = 16
           Caption = 'Verse List'
         end
         object editStart: TEdit
@@ -224,29 +224,29 @@
         object labelLeft: TLabel
           Left = 15
           Top = 38
-          Width = 21
-          Height = 13
+          Width = 24
+          Height = 16
           Caption = 'Left:'
         end
         object labelBot: TLabel
           Left = 122
           Top = 91
-          Width = 36
-          Height = 13
+          Width = 45
+          Height = 16
           Caption = 'Bottom:'
         end
         object labelRight: TLabel
           Left = 123
           Top = 40
-          Width = 28
-          Height = 13
+          Width = 34
+          Height = 16
           Caption = 'Right:'
         end
         object labelTop: TLabel
           Left = 15
           Top = 88
-          Width = 22
-          Height = 13
+          Width = 28
+          Height = 16
           Caption = 'Top:'
         end
         object editLeft: TEdit
@@ -345,16 +345,16 @@
         object labelHeader: TLabel
           Left = 10
           Top = 39
-          Width = 59
-          Height = 13
+          Width = 75
+          Height = 16
           Caption = 'Header Text'
           Enabled = False
         end
         object labelFooter: TLabel
           Left = 10
           Top = 104
-          Width = 54
-          Height = 13
+          Width = 68
+          Height = 16
           Caption = 'Footer Text'
           Enabled = False
         end
@@ -411,36 +411,36 @@
         object Label10: TLabel
           Left = 8
           Top = 20
-          Width = 83
-          Height = 13
+          Width = 105
+          Height = 16
           Caption = 'Chapter Heading:'
         end
         object Label11: TLabel
           Left = 8
           Top = 46
-          Width = 51
-          Height = 13
+          Width = 64
+          Height = 16
           Caption = 'Body Text:'
         end
         object Label12: TLabel
           Left = 8
           Top = 73
-          Width = 75
-          Height = 13
+          Width = 97
+          Height = 16
           Caption = 'Verse Numbers:'
         end
         object labelFont: TLabel
           Left = 173
           Top = 18
-          Width = 43
-          Height = 13
+          Width = 56
+          Height = 16
           Caption = 'labelFont'
         end
         object spnHeading: TUpDown
           Left = 147
           Top = 16
           Width = 16
-          Height = 21
+          Height = 24
           Associate = editHeading
           Min = 10
           Max = 24
@@ -452,7 +452,7 @@
           Left = 103
           Top = 16
           Width = 44
-          Height = 21
+          Height = 24
           TabOrder = 1
           Text = '16'
         end
@@ -460,7 +460,7 @@
           Left = 147
           Top = 42
           Width = 16
-          Height = 21
+          Height = 24
           Associate = editBody
           Min = 8
           Max = 20
@@ -472,7 +472,7 @@
           Left = 103
           Top = 42
           Width = 44
-          Height = 21
+          Height = 24
           TabOrder = 3
           Text = '12'
         end
@@ -480,7 +480,7 @@
           Left = 147
           Top = 69
           Width = 16
-          Height = 21
+          Height = 24
           Associate = editNumbers
           Min = 6
           Max = 20
@@ -492,7 +492,7 @@
           Left = 103
           Top = 69
           Width = 44
-          Height = 21
+          Height = 24
           TabOrder = 5
           Text = '10'
         end

Modified: branches/BCB5/RangeMaintFrm.cpp
===================================================================
--- branches/BCB5/RangeMaintFrm.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/RangeMaintFrm.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -23,8 +23,8 @@
 	ConfigEntMap::iterator loop, end;
 	config = new SWConfig(TForm1::getDataRootPath()+"/BibleCS/options.conf");	
 	ListBox1->Clear();
-	loop = config->Sections["CustomRanges"].begin();
-	end = config->Sections["CustomRanges"].end();
+	loop = config->getSections()["CustomRanges"].begin();
+	end = config->getSections()["CustomRanges"].end();
 	while (loop != end) {
 		TCustomRange *rs = new TCustomRange(loop->first.c_str(), loop->second.c_str());
 		ListBox1->Items->AddObject(rs->name.c_str(), rs);
@@ -105,12 +105,12 @@
 void __fastcall TRangeMaintForm::SpeedButton3Click(TObject *Sender)
 {
 	TCustomRange *rs;
-	config->Sections["CustomRanges"].erase(config->Sections["CustomRanges"].begin(), config->Sections["CustomRanges"].end());
+	config->getSections()["CustomRanges"].erase(config->getSections()["CustomRanges"].begin(), config->getSections()["CustomRanges"].end());
 	for (int i = 0; i < ListBox1->Items->Count; i++) {
 		rs = (TCustomRange *)ListBox1->Items->Objects[i];
-		config->Sections["CustomRanges"].insert(ConfigEntMap::value_type(rs->name.c_str(), rs->text.c_str()));
+		config->getSections()["CustomRanges"].insert(ConfigEntMap::value_type(rs->name.c_str(), rs->text.c_str()));
 	}
-	config->Save();
+	config->save();
 	ModalResult = mrOk;
 }
 //---------------------------------------------------------------------------

Modified: branches/BCB5/RangeMaintFrm.dfm
===================================================================
(Binary files differ)

Modified: branches/BCB5/RxRichEditX.cpp
===================================================================
--- branches/BCB5/RxRichEditX.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/RxRichEditX.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -118,7 +118,7 @@
 		rtfText += " }";
 	}
 	rtfText += (AnsiString)"{\\fs" + (dispAttribs.fontSize * 2) + (AnsiString)" ";
-	rtfText += module->renderText();
+	rtfText += module->renderText().c_str();
 	rtfText += " }";
 	if(dispAttribs.prPostFix)
 	rtfText += (AnsiString)" " + PrintFix(module);
@@ -514,7 +514,7 @@
 			}
 		}
 		keyFontName = modType + "FontName";
-		attribs->fontName = (AnsiString)Form1->optionsconf->Sections[dispType][keyFontName].c_str();
+		attribs->fontName = (AnsiString)Form1->optionsconf->getSections()[dispType][keyFontName].c_str();
 		break;
 	}
 	// If we still have no name we will set it to a default value
@@ -533,7 +533,7 @@
 			}
 		}
 		keyFontSize = modType + "FontSize";
-		fontSize = (AnsiString)Form1->optionsconf->Sections[dispType][keyFontSize].c_str();
+		fontSize = (AnsiString)Form1->optionsconf->getSections()[dispType][keyFontSize].c_str();
 		break;
 	}
 	
@@ -553,7 +553,7 @@
 			}
 		}
 		keyFontSize = modType + "ChHeadSize";
-		fontSize = (AnsiString)Form1->optionsconf->Sections[dispType][keyFontSize].c_str();
+		fontSize = (AnsiString)Form1->optionsconf->getSections()[dispType][keyFontSize].c_str();
 		break;
 	}
 	
@@ -573,7 +573,7 @@
 			}
 		}
 		keyFontSize = modType + "VSNumSize";
-		fontSize = (AnsiString)Form1->optionsconf->Sections[dispType][keyFontSize].c_str();
+		fontSize = (AnsiString)Form1->optionsconf->getSections()[dispType][keyFontSize].c_str();
 		break;
 	}
 	// If we still have no size we will set it to a default value
@@ -583,7 +583,7 @@
 
 	//**** Main Background Color ****//
 	SWBuf keyBackColor = modType + "BackColor";
-	SWBuf backColor = Form1->optionsconf->Sections[dispType][keyBackColor];
+	SWBuf backColor = Form1->optionsconf->getSections()[dispType][keyBackColor];
 	// This portion of the code sets the default values (If needed) of the background
 	// for either typical windows or for popup windows
 	if (backColor == "") {
@@ -596,7 +596,7 @@
 
 	//**** Main Font Color ****//
 	SWBuf keyFontColor = modType + "FontColor";
-	SWBuf fontColor = Form1->optionsconf->Sections[dispType][keyFontColor];
+	SWBuf fontColor = Form1->optionsconf->getSections()[dispType][keyFontColor];
 	// This portion of the code sets the default values (If needed) of the background
 	// for either typical windows or for popup windows
 	if (backColor == "") {
@@ -605,85 +605,85 @@
 	else attribs->fontColor = StrToInt((AnsiString)fontColor.c_str());
 
 	//**** EntryKey Color ****//
-	SWBuf entryColor = Form1->optionsconf->Sections[dispType]["VSNumberColor"];
+	SWBuf entryColor = Form1->optionsconf->getSections()[dispType]["VSNumberColor"];
 	if (entryColor == "")
 		attribs->entryKeyColor = clBlue;
 	else attribs->entryKeyColor = StrToInt((AnsiString)entryColor.c_str());
 
 	//**** Current Verse Color ****//
-	SWBuf currentVSColor = Form1->optionsconf->Sections[dispType]["CurrentVSColor"];
+	SWBuf currentVSColor = Form1->optionsconf->getSections()[dispType]["CurrentVSColor"];
 	if (currentVSColor == "")
 		attribs->currentVSColor = clBlue;
 	else attribs->currentVSColor = StrToInt((AnsiString)currentVSColor.c_str());
 
 	//**** Morphological Numbers Color ****//
-	SWBuf morphColor = Form1->optionsconf->Sections[dispType]["MorphColor"];
+	SWBuf morphColor = Form1->optionsconf->getSections()[dispType]["MorphColor"];
 	if (morphColor == "")
 		attribs->morphColor = clBlue;
 	else attribs->morphColor = StrToInt((AnsiString)morphColor.c_str());
 
 	//**** Strongs Numbers Color ****//
-	SWBuf strongColor = Form1->optionsconf->Sections[dispType]["StrongsColor"];
+	SWBuf strongColor = Form1->optionsconf->getSections()[dispType]["StrongsColor"];
 	if (strongColor == "")
 		attribs->strongsColor = clBlue;
 	else attribs->strongsColor = StrToInt((AnsiString)strongColor.c_str());
 
 	//**** Field Lookup Color ****//
-	SWBuf fieldColor = Form1->optionsconf->Sections[dispType]["FieldColor"];
+	SWBuf fieldColor = Form1->optionsconf->getSections()[dispType]["FieldColor"];
 	if (fieldColor == "")
 		attribs->lookupFieldColor = clBlue;
 	else attribs->lookupFieldColor = StrToInt((AnsiString)fieldColor.c_str());
 
 	//**** Mark Current Verse? ****//
-	SWBuf autoVSColor = Form1->optionsconf->Sections[dispType]["AutoVSColor"];
+	SWBuf autoVSColor = Form1->optionsconf->getSections()[dispType]["AutoVSColor"];
 	if (autoVSColor == "")
 		attribs->markCurrentVerse = true;
 	else	attribs->markCurrentVerse = (atoi(autoVSColor.c_str())) ? true : false;
 
 	//**** Mark Current Verse? ****//
-	SWBuf verseNewLine = Form1->optionsconf->Sections[dispType]["VerseNewLine"];
+	SWBuf verseNewLine = Form1->optionsconf->getSections()[dispType]["VerseNewLine"];
 	if (verseNewLine == "")
 		attribs->verseNewLine = false;
 	else	attribs->verseNewLine = (atoi(verseNewLine.c_str())) ? true : false;
 
 	//**** Print Chapter Headings? ****//
-	SWBuf prChHeadings = Form1->optionsconf->Sections[dispType][(modType + "ChHead")];
+	SWBuf prChHeadings = Form1->optionsconf->getSections()[dispType][(modType + "ChHead")];
 	if (prChHeadings == "")
 		attribs->prChHeadings = true;
 	else	attribs->prChHeadings = (atoi(prChHeadings.c_str())) ? true : false;
 
 	//**** Print Book Name? ****//
-	SWBuf prBookHeadings = Form1->optionsconf->Sections[dispType][(modType +"BkName")];
+	SWBuf prBookHeadings = Form1->optionsconf->getSections()[dispType][(modType +"BkName")];
 	if (prBookHeadings == "")
 		attribs->prBookHeadings = true;
 	else	attribs->prBookHeadings = (atoi(prBookHeadings.c_str())) ? true : false;
 
 	//**** Prefix Each Verse? ****//
-	SWBuf prPreFix = Form1->optionsconf->Sections[dispType][(modType +"PreFixTag")];
+	SWBuf prPreFix = Form1->optionsconf->getSections()[dispType][(modType +"PreFixTag")];
 	if (prPreFix == "")
 		attribs->prPreFix = true;
 	else	attribs->prPreFix = (atoi(prPreFix.c_str())) ? true : false;
 
 	//**** Postfix Each Verse? ****//
-	SWBuf prPostFix = Form1->optionsconf->Sections[dispType][(modType +"PostFixTag")];
+	SWBuf prPostFix = Form1->optionsconf->getSections()[dispType][(modType +"PostFixTag")];
 	if (prPostFix == "")
 		attribs->prPostFix = true;
 	else	attribs->prPostFix = (atoi(prPostFix.c_str())) ? true : false;
 
 	//**** Print the verse number? ****//
-	SWBuf prVerseNum = Form1->optionsconf->Sections[dispType][(modType + "VSNum")];
+	SWBuf prVerseNum = Form1->optionsconf->getSections()[dispType][(modType + "VSNum")];
 	if (prVerseNum == "")
 		attribs->prVerseNum = true;
 	else	attribs->prVerseNum = (atoi(prVerseNum.c_str())) ? true : false;
 
 	//**** Superscript the verse number? ****//
-	SWBuf superVSNum = Form1->optionsconf->Sections[dispType][(modType + "SuperVS")];
+	SWBuf superVSNum = Form1->optionsconf->getSections()[dispType][(modType + "SuperVS")];
 	if (superVSNum == "")
 		attribs->superVSNum = true;
 	else	attribs->superVSNum = (atoi(superVSNum.c_str())) ? true : false;
 
 	//**** Print as a paragraph? ****//
-	SWBuf paragraph = Form1->optionsconf->Sections[dispType][(modType + "Paragraph")];
+	SWBuf paragraph = Form1->optionsconf->getSections()[dispType][(modType + "Paragraph")];
 	if (paragraph == "")
 		attribs->paragraph = true;
 	else	attribs->paragraph = (atoi(paragraph.c_str())) ? true : false;

Modified: branches/BCB5/TModuleFonts.cpp
===================================================================
--- branches/BCB5/TModuleFonts.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/TModuleFonts.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -132,8 +132,8 @@
 	ModMap::iterator it;
 	manager = Form1->mainmgr;
 
-	sit = manager->getUserPrefs().Sections.begin();
-	while(sit != manager->getUserPrefs().Sections.end())
+	sit = manager->getUserPrefs().getSections().begin();
+	while(sit != manager->getUserPrefs().getSections().end())
 	{
 		(*sit).second.erase("Font");
 		(*sit).second.erase("FontSize");

Modified: branches/BCB5/TModuleFonts.dfm
===================================================================
--- branches/BCB5/TModuleFonts.dfm	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/TModuleFonts.dfm	2020-07-19 18:41:42 UTC (rev 514)
@@ -18,11 +18,11 @@
   Position = poScreenCenter
   Scaled = False
   OnShow = FormShow
-  PixelsPerInch = 96
-  TextHeight = 13
+  PixelsPerInch = 120
+  TextHeight = 16
   object Panel1: TPanel
     Left = 0
-    Top = 313
+    Top = 279
     Width = 292
     Height = 41
     Align = alBottom
@@ -70,7 +70,7 @@
     Left = 0
     Top = 0
     Width = 292
-    Height = 272
+    Height = 238
     Align = alClient
     BevelOuter = bvNone
     Caption = 'Panel2'
@@ -92,8 +92,8 @@
       object Label1: TLabel
         Left = 3
         Top = 8
-        Width = 82
-        Height = 13
+        Width = 105
+        Height = 16
         Caption = 'Installed Modules'
       end
     end
@@ -101,7 +101,7 @@
       Left = 0
       Top = 32
       Width = 292
-      Height = 240
+      Height = 206
       Align = alClient
       HideSelection = False
       Indent = 19
@@ -112,7 +112,7 @@
   end
   object Panel3: TPanel
     Left = 0
-    Top = 272
+    Top = 238
     Width = 292
     Height = 41
     Align = alBottom
@@ -121,16 +121,16 @@
     object Label2: TLabel
       Left = 7
       Top = 8
-      Width = 70
-      Height = 13
+      Width = 66
+      Height = 16
       Anchors = [akLeft, akBottom]
       Caption = 'Font Name'
     end
     object Label3: TLabel
       Left = 188
       Top = 8
-      Width = 56
-      Height = 13
+      Width = 55
+      Height = 16
       Anchors = [akRight, akBottom]
       Caption = 'Font Size'
     end
@@ -148,9 +148,9 @@
       Left = 246
       Top = 4
       Width = 44
-      Height = 21
+      Height = 24
       Anchors = [akRight, akBottom]
-      ItemHeight = 13
+      ItemHeight = 16
       TabOrder = 1
       Text = '12'
       OnChange = cmbSizeSelChange

Modified: branches/BCB5/biblecsmgr.cpp
===================================================================
--- branches/BCB5/biblecsmgr.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/biblecsmgr.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -20,7 +20,7 @@
 #endif
 	ModInstFrm = iModInstFrm;
 	userPrefs = 0;
-	Load();
+	load();
 
 	OSVERSIONINFO osvi;
 	memset(&osvi, 0, sizeof(OSVERSIONINFO));
@@ -41,13 +41,13 @@
 //			 delete transliterator;
 #endif
 	if (userPrefs) {
-		userPrefs->Save();
+		userPrefs->save();
 		delete userPrefs;
 	}
 }
 
 
-void BibleCSMGR::AddRenderFilters(SWModule *module, ConfigEntMap &section)
+void BibleCSMGR::addRenderFilters(SWModule *module, ConfigEntMap &section)
 {
 	SWBuf lang;
 	ConfigEntMap::iterator entry;
@@ -65,11 +65,11 @@
 			 }
 #endif
 	   }
-	   SWMgr::AddRenderFilters(module, section);
+	   SWMgr::addRenderFilters(module, section);
 }
 
 
-char BibleCSMGR::AddModToConfig(FileDesc *conffd, const char *fname)
+char BibleCSMGR::addModToConfig(FileDesc *conffd, const char *fname)
 {
 	SWConfig modconf(fname);
 	SectionMap::iterator section;
@@ -77,26 +77,26 @@
 	int logflag;
 	char retval;
 
-	section = modconf.Sections.begin();
+	section = modconf.getSections().begin();
 
 	ModInstFrm->ModText->Caption = "";
 	ModInstFrm->ModText->Caption = ModInstFrm->ModText->Caption + "Found new module [ " + (*(*section).second.find("Description")).second.c_str() + " ]. Installing...";
 
 	abouttext = abouttext + "{\\fs20\\cf0 " + (*(*section).second.find("About")).second.c_str() + " }";
 	ModInstFrm->AboutText->fillWithRTFString(0, abouttext.c_str());
-	
+
 	ModInstFrm->ShowModal();
 
 	logflag = SWLog::getSystemLog()->getLogLevel();
 	SWLog::getSystemLog()->setLogLevel(0);
-	retval = SWMgr::AddModToConfig(conffd, fname);
+	retval = SWMgr::addModToConfig(conffd, fname);
 	SWLog::getSystemLog()->setLogLevel(logflag);
 
 	return retval;
 }
 
-signed char BibleCSMGR::Load() {
-	signed char retval = SWMgr::Load();
+signed char BibleCSMGR::load() {
+	signed char retval = SWMgr::load();
 #ifdef _ICU_
 //	optionFilters.insert(FilterMap::value_type("UTF8Transliterator", transliterator));
 //	options.push_back(transliterator->getOptionName());
@@ -111,18 +111,16 @@
 		(*config) += (*userPrefs);
 }
 
-void BibleCSMGR::AddGlobalOptions(SWModule * module, ConfigEntMap & section,
-						    ConfigEntMap::iterator start,
-						    ConfigEntMap::iterator end) {
+void BibleCSMGR::addGlobalOptionFilters(SWModule *module, ConfigEntMap &section) {
 
-	   SWMgr::AddGlobalOptions(module, section, start, end);
+	   SWMgr::addGlobalOptionFilters(module, section);
 #ifdef _ICU_
-//	   module->AddOptionFilter(transliterator);
+//	   module->addOptionFilter(transliterator);
 #endif
 };
 
 /*	maybe force a section for each module and set a per module userConfig. "But not like this.  Not like this."
-void BibleCSMGR::AddLocalOptions(SWModule *module, ConfigEntMap &section, ConfigEntMap::iterator start, ConfigEntMap::iterator end)
+void BibleCSMGR::addLocalOptions(SWModule *module, ConfigEntMap &section, ConfigEntMap::iterator start, ConfigEntMap::iterator end)
 {
 	userPrefs[module->Name()]["Font"];
 }

Modified: branches/BCB5/biblecsmgr.h
===================================================================
--- branches/BCB5/biblecsmgr.h	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/biblecsmgr.h	2020-07-19 18:41:42 UTC (rev 514)
@@ -19,12 +19,10 @@
 	SWConfig *userPrefs;
 
 protected:
-	virtual char AddModToConfig(FileDesc *conffd, const char *fname);
-	virtual void AddRenderFilters(SWModule *module, ConfigEntMap &section);
-	   virtual signed char Load();
-	   virtual void AddGlobalOptions(SWModule * module, ConfigEntMap & section,
-								ConfigEntMap::iterator start,
-								ConfigEntMap::iterator end);
+	virtual char addModToConfig(FileDesc *conffd, const char *fname);
+	virtual void addRenderFilters(SWModule *module, ConfigEntMap &section);
+	   virtual signed char load();
+	   virtual void addGlobalOptionFilters(SWModule * module, ConfigEntMap & section);
 
 public:
 	BibleCSMGR(TModInstFrm *iModInstFrm);
@@ -34,4 +32,4 @@
 };
 
 #endif
- 
+

Modified: branches/BCB5/bookmarkfrm.cpp
===================================================================
--- branches/BCB5/bookmarkfrm.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/bookmarkfrm.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -29,7 +29,7 @@
 	
 	bmtree->Items->Clear();
 
-	if (Form1 && Form1->optionsconf && ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end()))
+	if (Form1 && Form1->optionsconf && ((sit = Form1->optionsconf->getSections().find("Bookmarks")) != Form1->optionsconf->getSections().end()))
 		bmdir = ((eit = (*sit).second.find("Directory")) != (*sit).second.end()) ? (*eit).second : (SWBuf)"";
 		
 //	Add Personal Bookmarks first, or if they don't exist, ADD A BLANK BRANCH first in the tree
@@ -45,7 +45,7 @@
 		
 	conffile = bmdir + "personal.conf";
 	bookmarks = new SWConfig(conffile.c_str());
-	if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+	if ((sit = bookmarks->getSections().find("ROOT")) != bookmarks->getSections().end()) {
 		if ((eit = (*sit).second.begin()) != (*sit).second.end()) {
 			node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
 			AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
@@ -63,7 +63,7 @@
 				conffile = bmdir;
 				conffile += ent->d_name;
 				bookmarks = new SWConfig(conffile.c_str());
-				if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+				if ((sit = bookmarks->getSections().find("ROOT")) != bookmarks->getSections().end()) {
 					if ((eit = (*sit).second.begin()) != (*sit).second.end()) {	// Currently supports only ONE topsection per file because on save, each topsection designates which file to rewrite
 						node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
 						AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
@@ -93,7 +93,7 @@
 	ConfigEntMap::iterator eit;
 	TTreeNode *node;
 	
-	if ((sit = config->Sections.find(section.c_str())) != config->Sections.end()) {
+	if ((sit = config->getSections().find(section.c_str())) != config->getSections().end()) {
 		for (eit = (*sit).second.begin(); eit != (*sit).second.end(); eit++) {
 			node = tree->Items->AddChild(parent, (*eit).second.c_str());
 			AddSection(config, tree, node, (*eit).first.c_str());
@@ -173,7 +173,7 @@
 	if (bmtree->Items->Count)
 		tree = bmtree->Items->Item[0];
 
-	if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end()) {
+	if ((sit = Form1->optionsconf->getSections().find("Bookmarks")) != Form1->optionsconf->getSections().end()) {
 		personal = (atoi((*(*sit).second.find("AutoSavePersonal")).second.c_str())) ? true:false;
 		other = (atoi((*(*sit).second.find("AutoSaveOther")).second.c_str())) ? true:false;
 	}
@@ -187,12 +187,12 @@
 	for (;tree;tree = tree->getNextSibling()) {
 		if (((*((String *)tree->Data) == persfile.c_str()) && personal) || ((*((String *)tree->Data) != persfile.c_str()) && other)) {
 			bmconf = new SWConfig(((String *)tree->Data)->c_str());
-			emap = bmconf->Sections["ROOT"];
+			emap = bmconf->getSections()["ROOT"];
 			sprintf(buf, "branch%d", tree->AbsoluteIndex);
 			emap.erase(buf); emap.insert(ConfigEntMap::value_type(buf, tree->Text.c_str()));
 			AddSectionToConf(bmconf, buf, tree);
-			bmconf->Sections["ROOT"] = emap;
-			bmconf->Save();
+			bmconf->getSections()["ROOT"] = emap;
+			bmconf->save();
 			delete bmconf;
 		}
 	}
@@ -204,13 +204,13 @@
 	char buf[15];
 	
 	if (tree = tree->getFirstChild()) {
-		sit = config->Sections[section.c_str()];
+		sit = config->getSections()[section.c_str()];
 		for (; tree; tree = tree->getNextSibling()) {
 			sprintf(buf, "branch%d", tree->AbsoluteIndex);
 			sit.erase(buf); sit.insert(ConfigEntMap::value_type(buf, tree->Text.c_str()));
 			AddSectionToConf(config, buf, tree);
 		}
-		config->Sections[section.c_str()] = sit;
+		config->getSections()[section.c_str()] = sit;
 	}
 }
 

Modified: branches/BCB5/bookmarkfrm.dfm
===================================================================
(Binary files differ)

Modified: branches/BCB5/editentryfrm.cpp
===================================================================
--- branches/BCB5/editentryfrm.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/editentryfrm.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -271,7 +271,7 @@
 		newtext = RTFDisplay->RTFHeader;
 		Module->popError(); // clear error;
 		newtext = newtext + "\\pard \\nowidctlpar \\cf0 ";
-		(const char *)*Module;	// force key to snap to entry before pulling out the text of the key
+		(const char *)Module->renderText();	// force key to snap to entry before pulling out the text of the key
 		tmptext = Module->getRawEntry();
 	
 		newtext = newtext + RTFDisplay->RTFVersePre + tmptext + RTFDisplay->RTFVersePost;

Modified: branches/BCB5/editentryfrm.dfm
===================================================================
(Binary files differ)

Modified: branches/BCB5/mainfrm.cpp
===================================================================
--- branches/BCB5/mainfrm.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/mainfrm.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -256,9 +256,9 @@
 	parallelDisp->mgr = mgr;
 	parallelDisp->recalcAppearance();
 
-	parallelDisp->mod[0] = layoutconf->Sections["History"]["LastParaMod01"];
-	parallelDisp->mod[1] = layoutconf->Sections["History"]["LastParaMod02"];
-	parallelDisp->mod[2] = layoutconf->Sections["History"]["LastParaMod03"];
+	parallelDisp->mod[0] = layoutconf->getSections()["History"]["LastParaMod01"];
+	parallelDisp->mod[1] = layoutconf->getSections()["History"]["LastParaMod02"];
+	parallelDisp->mod[2] = layoutconf->getSections()["History"]["LastParaMod03"];
 
 	return 0;
 }
@@ -276,7 +276,7 @@
 	newtab->ParentShowHint = true;
 	newtab->PageControl = CommentaryPageControl;
 
-	if ((*mainmgr->config->Sections[mod->getName()].find("ModDrv")).second == "HREFCom") {
+	if ((*mainmgr->config->getSections()[mod->getName()].find("ModDrv")).second == "HREFCom") {
 //		if (mainmgr->config->Sections[mod->getName()]["External"] == "1") {
 			newrtf = new TPanel(this);
 			((TPanel *)newrtf)->Caption = "Syncronizing to External Viewer";
@@ -715,7 +715,7 @@
 		if (!strncmp(rtf->Name.c_str(), "TextRTFLXX", 10))
 			feature = "GreekDef";
 		if (!hasFeature(mainmgr, curLex.c_str(), feature.c_str())) {
-			SWBuf tmpval = optionsconf->Sections["ModDefaults"][feature.c_str()];
+			SWBuf tmpval = optionsconf->getSections()["ModDefaults"][feature.c_str()];
 			for (int i = 0; i < LexDictPageControl->PageCount; i++) {
 				if (!::stricmp(LexDictPageControl->Pages[i]->Caption.c_str(), tmpval.c_str())) {
 					LexDictPageControl->ActivePageIndex = i;
@@ -752,7 +752,7 @@
 void __fastcall TForm1::SaveLayout1Click(TObject *Sender)
 {
 	ConfigEntMap sit;
-	sit = layoutconf->Sections["Screen"];
+	sit = layoutconf->getSections()["Screen"];
 	if(Form1->WindowState == wsMaximized) {
 		sit["Maximized"] = "true";
 	}
@@ -783,8 +783,8 @@
 		SWBuf value = mainmgr->getGlobalOption(it->c_str());
 		(*layoutconf)["ModuleOptions"][it->c_str()] = value;
 	}
-	layoutconf->Sections["Screen"] = sit;
-	layoutconf->Save();
+	layoutconf->getSections()["Screen"] = sit;
+	layoutconf->save();
 }
 
 
@@ -888,12 +888,12 @@
 	delete pic;
 
 	TFont *UIFont = new TFont();
-	UIFont->Name = optionsconf->Sections["Appearance"]["UIFontName"].c_str();
+	UIFont->Name = optionsconf->getSections()["Appearance"]["UIFontName"].c_str();
 
-	tmp = optionsconf->Sections["Appearance"]["UIFontColor"].c_str();
+	tmp = optionsconf->getSections()["Appearance"]["UIFontColor"].c_str();
 	if (tmp.Length() > 0)
 		UIFont->Color = StrToInt(tmp);
-	tmp = optionsconf->Sections["Appearance"]["UIFontSize"].c_str();
+	tmp = optionsconf->getSections()["Appearance"]["UIFontSize"].c_str();
 	if (tmp.Length() > 0)
 		UIFont->Size = StrToInt(tmp);
 	// MainForm
@@ -1120,15 +1120,15 @@
 	logmodstate = true;
 	freshdict   = true;
 	SWLog::setSystemLog(new SWWinLog(this->Handle));		// set the system logger to our MSWindows specific SWLog class
-	tmpval = optionsconf->Sections["System"]["MaxFiles"];
+	tmpval = optionsconf->getSections()["System"]["MaxFiles"];
 	if ((maxFiles = atoi(tmpval.c_str()))) {
 		FileMgr::getSystemFileMgr()->maxFiles = maxFiles;
 	}
 
-	tmpval = optionsconf->Sections["General"]["DevsAsDicts"];
+	tmpval = optionsconf->getSections()["General"]["DevsAsDicts"];
 	showDevos = (::stricmp(tmpval.c_str(), "false"));
 
-	tmpval = optionsconf->Sections["General"]["GlosAsDicts"];
+	tmpval = optionsconf->getSections()["General"]["GlosAsDicts"];
 	showGlos = (::stricmp(tmpval.c_str(), "false"));
 
 	try {
@@ -1173,7 +1173,7 @@
 		}
 
 		// leave out enciphered texts with no key
-		if ((sit = mainmgr->config->Sections.find((*it).second->getName())) != mainmgr->config->Sections.end()) {
+		if ((sit = mainmgr->config->getSections().find((*it).second->getName())) != mainmgr->config->getSections().end()) {
 			if ((eit = (*sit).second.find("CipherKey")) != (*sit).second.end()) {
 				const char *cipherKey = (char *)(*eit).second.c_str();
 				if (strlen(cipherKey) < 1)
@@ -1184,33 +1184,33 @@
 				const char *feature = eit->second.c_str();
 				if (!::stricmp(feature, "StrongsNumbers")) {
 					Optionsfrm->strongsNumsCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
-					if (optionsconf->Sections["ModDefaults"].find("StrongsNumbers") == optionsconf->Sections["ModDefaults"].end())
+					if (optionsconf->getSections()["ModDefaults"].find("StrongsNumbers") == optionsconf->getSections()["ModDefaults"].end())
 						(*optionsconf)["ModDefaults"]["StrongsNumbers"] = it->second->getName();
 				}
 				if (!::stricmp(feature, "GreekDef")) {
 					Optionsfrm->greekDefCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
-					if (optionsconf->Sections["ModDefaults"].find("GreekDef") == optionsconf->Sections["ModDefaults"].end())
+					if (optionsconf->getSections()["ModDefaults"].find("GreekDef") == optionsconf->getSections()["ModDefaults"].end())
 						(*optionsconf)["ModDefaults"]["GreekDef"] = it->second->getName();
 				}
 				if (!::stricmp(feature, "GreekParse")) {
 					Optionsfrm->greekParseCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
-					if (optionsconf->Sections["ModDefaults"].find("GreekParse") == optionsconf->Sections["ModDefaults"].end())
+					if (optionsconf->getSections()["ModDefaults"].find("GreekParse") == optionsconf->getSections()["ModDefaults"].end())
 						(*optionsconf)["ModDefaults"]["GreekParse"] = it->second->getName();
 				}
 				if (!::stricmp(feature, "HebrewDef")) {
 					Optionsfrm->hebrewDefCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
-					if (optionsconf->Sections["ModDefaults"].find("HebrewDef") == optionsconf->Sections["ModDefaults"].end())
+					if (optionsconf->getSections()["ModDefaults"].find("HebrewDef") == optionsconf->getSections()["ModDefaults"].end())
 						(*optionsconf)["ModDefaults"]["HebrewDef"] = it->second->getName();
 				}
 				if (!::stricmp(feature, "HebrewParse")) {
 					Optionsfrm->hebrewParseCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
-					if (optionsconf->Sections["ModDefaults"].find("HebrewParse") == optionsconf->Sections["ModDefaults"].end())
+					if (optionsconf->getSections()["ModDefaults"].find("HebrewParse") == optionsconf->getSections()["ModDefaults"].end())
 						(*optionsconf)["ModDefaults"]["HebrewParse"] = it->second->getName();
 				}
 				if (!::stricmp(feature, "DailyDevotion")) {
 					Optionsfrm->dailyDefaultCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
 					devotional = true;
-					if (optionsconf->Sections["ModDefaults"].find("DailyDevotion") == optionsconf->Sections["ModDefaults"].end())
+					if (optionsconf->getSections()["ModDefaults"].find("DailyDevotion") == optionsconf->getSections()["ModDefaults"].end())
 						(*optionsconf)["ModDefaults"]["DailyDevotion"] = it->second->getName();
 				}
 				if (!::stricmp(feature, "Glossary")) {
@@ -1234,14 +1234,14 @@
 					(showGlos && glossary))
 				CreateLDPane((*it).second);
 			Optionsfrm->genDictCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
-			if (optionsconf->Sections["ModDefaults"].find("GenDict") == optionsconf->Sections["ModDefaults"].end())
+			if (optionsconf->getSections()["ModDefaults"].find("GenDict") == optionsconf->getSections()["ModDefaults"].end())
 				(*optionsconf)["ModDefaults"]["GenDict"] = it->second->getName();
 		}
-		optionsconf->Save();
+		optionsconf->save();
 
 	}
 
-	if ((sit = layoutconf->Sections.find("Screen")) != layoutconf->Sections.end()) {
+	if ((sit = layoutconf->getSections().find("Screen")) != layoutconf->getSections().end()) {
 
 		if ((eit = (*sit).second.find("MainTop")) != (*sit).second.end()) {
 			Form1->Top = atoi((*eit).second.c_str());
@@ -1294,7 +1294,7 @@
 	
 	syncSpeedButtons();
 
-	if ((sit = layoutconf->Sections.find("History")) != layoutconf->Sections.end()) {
+	if ((sit = layoutconf->getSections().find("History")) != layoutconf->getSections().end()) {
 
 		eitend = (*sit).second.upper_bound("SearchText");
 		for (eit = (*sit).second.lower_bound("SearchText"); eit != eitend; eit++)
@@ -1365,7 +1365,7 @@
 
 	SplashPg->Hide();
 
-	tmpval = optionsconf->Sections["General"]["TipOfTheDay"];
+	tmpval = optionsconf->getSections()["General"]["TipOfTheDay"];
 	if(!::stricmp(tmpval.c_str(), "Devotional")) {
 		DevOfTheDay2->Show();
 	}
@@ -1374,7 +1374,7 @@
 		NavigateVerseURL(startVerse.c_str());
 	}
 	else {
-		startVerse = layoutconf->Sections["History"].getWithDefault("LastVerse", "").c_str();
+		startVerse = layoutconf->getSections()["History"].getWithDefault("LastVerse", "").c_str();
 		if (startVerse.Length()) {
 			freeHandLookup->Text = UTF8ToWideString(startVerse.c_str());
 			char ret = '\r';
@@ -1395,7 +1395,7 @@
           }
      }
      else {
-          SWBuf locale = optionsconf->Sections["Appearance"].getWithDefault("locale", "en_us");
+          SWBuf locale = optionsconf->getSections()["Appearance"].getWithDefault("locale", "en_us");
           i12ize(locale.c_str());
 	}
 }
@@ -1411,7 +1411,7 @@
 	while (parentItem->Count > staticMenuItemsCount)
 		parentItem->Delete(staticMenuItemsCount);
 
-	sit = layoutconf->Sections.find("ModuleOptions");
+	sit = layoutconf->getSections().find("ModuleOptions");
 	StringList options = mainmgr->getGlobalOptions();
 	for (StringList::iterator it = options.begin(); it != options.end(); it++) {
 		TMenuItem *newitem = new TMenuItem(parentItem->GetParentMenu());
@@ -1421,7 +1421,7 @@
 		newitem->Default = false;
 		newitem->OnClick = OptionShowVals;
 		newitem->Hint = _tr(mainmgr->getGlobalOptionTip(it->c_str()));
-		if (setFromLayout && sit != layoutconf->Sections.end()) {
+		if (setFromLayout && sit != layoutconf->getSections().end()) {
 			if ((eit = sit->second.find(it->c_str())) != sit->second.end())
 				mainmgr->setGlobalOption(it->c_str(), eit->second.c_str());
 		}
@@ -1443,7 +1443,7 @@
 	SectionMap::iterator sit;
 	ConfigEntMap::iterator eit, eitend;
 
-	if ((sit = mgr->config->Sections.find(modName)) != mgr->config->Sections.end()) {
+	if ((sit = mgr->config->getSections().find(modName)) != mgr->config->getSections().end()) {
 		for (eit = (*sit).second.lower_bound("Feature"), eitend = (*sit).second.upper_bound("Feature"); eit != eitend; eit++) {
 			const char *tfeature = eit->second.c_str();
 			if (!::stricmp(tfeature, feature))
@@ -1711,7 +1711,7 @@
 	if (Optionsfrm->ShowModal() == mrOk) {
 		// Save Preferences settings :)
 		Optionsfrm->extractSettings(optionsconf);
-		optionsconf->Save();
+		optionsconf->save();
 		refreshAppearance();
 	}
 }
@@ -2126,7 +2126,7 @@
 		if ((!::stricmp(option, "Strong's Numbers")) && (!::stricmp(value, "On"))) {
 			   SWBuf curText = TextPageControl->ActivePage->Caption.c_str();
 			   if (!hasFeature(mainmgr, curText.c_str(), "StrongsNumbers")) {
-					 SWBuf tmpval = optionsconf->Sections["ModDefaults"]["StrongsNumbers"];
+					 SWBuf tmpval = optionsconf->getSections()["ModDefaults"]["StrongsNumbers"];
 					 for (int i = 0; i < TextPageControl->PageCount; i++) {
 						    if (!::stricmp(TextPageControl->Pages[i]->Caption.c_str(), tmpval.c_str())) {
 								  TextPageControl->ActivePageIndex = i;
@@ -2161,7 +2161,7 @@
 
 void __fastcall TForm1::Contents1Click(TObject *Sender)
 {
-	SWBuf helpDir = optionsconf->Sections["Help"].getWithDefault("Directory", ".\\help");
+	SWBuf helpDir = optionsconf->getSections()["Help"].getWithDefault("Directory", ".\\help");
 	SWBuf helpExe = helpDir + "\\sword.chm";
 	
 	if ((int)ShellExecute(this->Handle, "open", helpExe.c_str(), NULL, NULL, SW_SHOWNORMAL) < 33) {
@@ -2181,7 +2181,7 @@
 	ConfigEntMap::iterator entryIt;
 
 
-	section = layoutconf->Sections["History"];
+	section = layoutconf->getSections()["History"];
 	entryIt = section.find("SearchSaveCount");
 	if (entryIt != section.end())
 		saveCount = atoi(entryIt->second.c_str());
@@ -2214,8 +2214,8 @@
 	section["LastParaMod02"] = parallelDisp->mod[1].c_str();
 	section["LastParaMod03"] = parallelDisp->mod[2].c_str();
 
-	layoutconf->Sections["History"] = section;
-	layoutconf->Save();
+	layoutconf->getSections()["History"] = section;
+	layoutconf->save();
 
 	bookmarkForm->SaveBookmarks();
 //	NS_TermEmbedding();	
@@ -2365,7 +2365,7 @@
 	ModMap::iterator it;
 	SWBuf tmpval;
 
-	SWBuf locale = optionsconf->Sections["Appearance"].getWithDefault("locale", "en_us");
+	SWBuf locale = optionsconf->getSections()["Appearance"].getWithDefault("locale", "en_us");
 	/* TODO 5 -oDavid -cLocale : Just a note: Something weird happens here when there are no .conf files and it crashes. This is since Daniel added the TNT stuff. Maybe should look more into this later */
 	const char *loc = locale.c_str();
 	i12ize(loc);
@@ -2383,7 +2383,7 @@
 	}
      parallelDisp->recalcAppearance();
 	// Change the text entry field color
-	tmpval = optionsconf->Sections["Appearance"]["FieldColor"];
+	tmpval = optionsconf->getSections()["Appearance"]["FieldColor"];
 	TColor fieldColor = tmpval.length() ? TColor(atoi(tmpval.c_str())) : clAqua;
 
 	cbBook->Color         = fieldColor;
@@ -2392,7 +2392,7 @@
 	freeHandLookup->Color = fieldColor;
 	DictKeyEdit->Color    = fieldColor;
 
-	Form1->ShowHint = (optionsconf->Sections["Hints"].getWithDefault("Hints", "true") != "false");
+	Form1->ShowHint = (optionsconf->getSections()["Hints"].getWithDefault("Hints", "true") != "false");
 	if (!vk) vk = getActiveVerseKey();
 	vk->setLocale(locale.c_str());
 	fillVKeySelector(vk);
@@ -2491,9 +2491,9 @@
 	if (!Form1->Active)
 		return;
 		
-	bool hintStrongs = (optionsconf->Sections["Hints"].getWithDefault("Strongs", "true") != "false");
-	bool hintVLists  = (optionsconf->Sections["Hints"].getWithDefault("VLists",  "true") != "false");
-	bool hintWords   = (optionsconf->Sections["Hints"].getWithDefault("Words",   "false") == "true");
+	bool hintStrongs = (optionsconf->getSections()["Hints"].getWithDefault("Strongs", "true") != "false");
+	bool hintVLists  = (optionsconf->getSections()["Hints"].getWithDefault("VLists",  "true") != "false");
+	bool hintWords   = (optionsconf->getSections()["Hints"].getWithDefault("Words",   "false") == "true");
 			
 	SWDispRTF *rtf = 0;
 	do {
@@ -2677,7 +2677,7 @@
 				feature += (preChar == '(')?"Parse":"Def";
 				if (!strncmp(HintInfo.HintControl->Name.c_str(), "TextRTFLXX", 10))
 					feature = "GreekDef";
-				SWBuf tmpval = optionsconf->Sections["ModDefaults"][feature.c_str()];
+				SWBuf tmpval = optionsconf->getSections()["ModDefaults"][feature.c_str()];
 				if (tmpval.size()) {
 					SWModule *defMod = mainmgr->getModule(tmpval);
 					if (!defMod) {
@@ -2695,7 +2695,7 @@
 
 		// try looking up the word in a general dictionary
 		if (!link && hintWords) {
-			SWBuf tmpval = optionsconf->Sections["ModDefaults"]["GenDict"];
+			SWBuf tmpval = optionsconf->getSections()["ModDefaults"]["GenDict"];
 			if (tmpval.size()) {
 				SWModule *defMod = mainmgr->getModule(tmpval);
 				if (!defMod)
@@ -2762,14 +2762,14 @@
 	
 	TColor penColor;
 	SWBuf strColor;
-	strColor = Form1->optionsconf->Sections["Appearance"]["PopupFontColor"];
+	strColor = Form1->optionsconf->getSections()["Appearance"]["PopupFontColor"];
 	if(strColor == "")
 		penColor = clBlack;
 	else
 		try {penColor = StrToInt((AnsiString)strColor.c_str());} catch (...) {}
 
 	TColor backColor;
-	strColor = Form1->optionsconf->Sections["Appearance"]["PopupBackColor"];
+	strColor = Form1->optionsconf->getSections()["Appearance"]["PopupBackColor"];
 	if(strColor == "")
 		backColor = 14680063;
 	else
@@ -3038,8 +3038,8 @@
 
 void __fastcall TForm1::Action1Execute(TObject *Sender)
 {
-	bool hintWords   = (optionsconf->Sections["Hints"].getWithDefault("Words",   "false") == "true");
-	optionsconf->Sections["Hints"]["Words"] = (!hintWords) ? "true" : "false";
+	bool hintWords   = (optionsconf->getSections()["Hints"].getWithDefault("Words",   "false") == "true");
+	optionsconf->getSections()["Hints"]["Words"] = (!hintWords) ? "true" : "false";
 }
 //---------------------------------------------------------------------------
 

Modified: branches/BCB5/mainfrm.dfm
===================================================================
(Binary files differ)

Modified: branches/BCB5/mainfrm.h
===================================================================
--- branches/BCB5/mainfrm.h	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/mainfrm.h	2020-07-19 18:41:42 UTC (rev 514)
@@ -179,7 +179,7 @@
 		info.fMask = SEE_MASK_NOCLOSEPROCESS; //SEE_MASK_CLASSNAME;
 		info.hwnd = GetFocus();
 		info.lpVerb = "open";
-		info.lpFile = (const char *)imodule;
+		info.lpFile = (const char *)imodule.renderText();
 		info.lpParameters = NULL;
 		info.lpDirectory = NULL;
 		info.nShow = 0;

Modified: branches/BCB5/optionfrm.cpp
===================================================================
--- branches/BCB5/optionfrm.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/optionfrm.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -293,7 +293,7 @@
 		SWBuf strName =  COLOR_DIR + cmbSchemeSelect->Text.c_str() + COLOR_EXT;
 		SWConfig schemeconf(strName.c_str());
 
-		emap = schemeconf.Sections["Appearance"];
+		emap = schemeconf.getSections()["Appearance"];
 		emap.erase("AutoVSColor"); emap.insert(ConfigEntMap::value_type("AutoVSColor", IntToStr((AutoVSColor->Checked)?1:0).c_str()));
 		emap.erase("VerseNewLine"); emap.insert(ConfigEntMap::value_type("VerseNewLine", IntToStr((VerseNewLine->Checked)?1:0).c_str()));
 		emap.erase("CurrentVSColor"); emap.insert(ConfigEntMap::value_type("CurrentVSColor", IntToStr(shpCurrVSClr->Brush->Color).c_str()));
@@ -330,8 +330,8 @@
 		emap.erase("SearchFontColor"); emap.insert(ConfigEntMap::value_type("SearchFontColor", IntToStr(FontDialogSearch->Font->Color).c_str()));
                 emap.erase("UIFontColor"); emap.insert(ConfigEntMap::value_type("UIFontColor", IntToStr(FontDialogUI->Font->Color).c_str()));
 		
-		schemeconf.Sections["Appearance"] = emap;
-		schemeconf.Save();
+		schemeconf.getSections()["Appearance"] = emap;
+		schemeconf.save();
 	}else{
 		MessageBoxW(0, _tr("Scheme name missing or invalid."),_tr("Oops"), MB_OK);
 	}
@@ -435,31 +435,31 @@
 	{
 		tempName = COLOR_DIR + cmbSchemeSelect->Items->Strings[count].c_str() + COLOR_EXT;
 		schemesconf = new SWConfig(tempName.c_str());
-		if(	schemesconf->Sections["Appearance"]["CurrentVSColor"] == optionsconf->Sections["Appearance"]["CurrentVSColor"] &&
-			schemesconf->Sections["Appearance"]["VSNumberColor"] == optionsconf->Sections["Appearance"]["VSNumberColor"] &&
-			schemesconf->Sections["Appearance"]["StrongsColor"] == optionsconf->Sections["Appearance"]["StrongsColor"] &&
-			schemesconf->Sections["Appearance"]["MorphColor"] == optionsconf->Sections["Appearance"]["MorphColor"] &&
-			schemesconf->Sections["Appearance"]["FieldColor"] == optionsconf->Sections["Appearance"]["FieldColor"] &&
+		if(	schemesconf->getSections()["Appearance"]["CurrentVSColor"] == optionsconf->getSections()["Appearance"]["CurrentVSColor"] &&
+			schemesconf->getSections()["Appearance"]["VSNumberColor"] == optionsconf->getSections()["Appearance"]["VSNumberColor"] &&
+			schemesconf->getSections()["Appearance"]["StrongsColor"] == optionsconf->getSections()["Appearance"]["StrongsColor"] &&
+			schemesconf->getSections()["Appearance"]["MorphColor"] == optionsconf->getSections()["Appearance"]["MorphColor"] &&
+			schemesconf->getSections()["Appearance"]["FieldColor"] == optionsconf->getSections()["Appearance"]["FieldColor"] &&
 			
-			schemesconf->Sections["Appearance"]["TextBackColor"] == optionsconf->Sections["Appearance"]["TextBackColor"] &&
-			schemesconf->Sections["Appearance"]["CommentBackColor"] == optionsconf->Sections["Appearance"]["CommentBackColor"] &&
-			schemesconf->Sections["Appearance"]["LDBackColor"] == optionsconf->Sections["Appearance"]["LDBackColor"] &&
-			schemesconf->Sections["Appearance"]["PopupBackColor"] == optionsconf->Sections["Appearance"]["PopupBackColor"] &&
+			schemesconf->getSections()["Appearance"]["TextBackColor"] == optionsconf->getSections()["Appearance"]["TextBackColor"] &&
+			schemesconf->getSections()["Appearance"]["CommentBackColor"] == optionsconf->getSections()["Appearance"]["CommentBackColor"] &&
+			schemesconf->getSections()["Appearance"]["LDBackColor"] == optionsconf->getSections()["Appearance"]["LDBackColor"] &&
+			schemesconf->getSections()["Appearance"]["PopupBackColor"] == optionsconf->getSections()["Appearance"]["PopupBackColor"] &&
 
-			schemesconf->Sections["Appearance"]["TextFontName"] == optionsconf->Sections["Appearance"]["TextFontName"] &&
-			schemesconf->Sections["Appearance"]["CommentFontName"] == optionsconf->Sections["Appearance"]["CommentFontName"] &&
-			schemesconf->Sections["Appearance"]["LDFontName"] == optionsconf->Sections["Appearance"]["LDFontName"] &&
-			schemesconf->Sections["Appearance"]["PopupFontName"] == optionsconf->Sections["Appearance"]["PopupFontName"] &&
+			schemesconf->getSections()["Appearance"]["TextFontName"] == optionsconf->getSections()["Appearance"]["TextFontName"] &&
+			schemesconf->getSections()["Appearance"]["CommentFontName"] == optionsconf->getSections()["Appearance"]["CommentFontName"] &&
+			schemesconf->getSections()["Appearance"]["LDFontName"] == optionsconf->getSections()["Appearance"]["LDFontName"] &&
+			schemesconf->getSections()["Appearance"]["PopupFontName"] == optionsconf->getSections()["Appearance"]["PopupFontName"] &&
 
-			schemesconf->Sections["Appearance"]["TextFontSize"] == optionsconf->Sections["Appearance"]["TextFontSize"] &&
-			schemesconf->Sections["Appearance"]["CommentFontSize"] == optionsconf->Sections["Appearance"]["CommentFontSize"] &&
-			schemesconf->Sections["Appearance"]["LDFontSize"] == optionsconf->Sections["Appearance"]["LDFontSize"] &&
-			schemesconf->Sections["Appearance"]["PopupFontSize"] == optionsconf->Sections["Appearance"]["PopupFontSize"] &&
+			schemesconf->getSections()["Appearance"]["TextFontSize"] == optionsconf->getSections()["Appearance"]["TextFontSize"] &&
+			schemesconf->getSections()["Appearance"]["CommentFontSize"] == optionsconf->getSections()["Appearance"]["CommentFontSize"] &&
+			schemesconf->getSections()["Appearance"]["LDFontSize"] == optionsconf->getSections()["Appearance"]["LDFontSize"] &&
+			schemesconf->getSections()["Appearance"]["PopupFontSize"] == optionsconf->getSections()["Appearance"]["PopupFontSize"] &&
 
-			schemesconf->Sections["Appearance"]["TextFontColor"] == optionsconf->Sections["Appearance"]["TextFontColor"] &&
-			schemesconf->Sections["Appearance"]["CommentFontColor"] == optionsconf->Sections["Appearance"]["CommentFontColor"] &&
-			schemesconf->Sections["Appearance"]["LDFontColor"] == optionsconf->Sections["Appearance"]["LDFontColor"] &&
-			schemesconf->Sections["Appearance"]["PopupFontColor"] == optionsconf->Sections["Appearance"]["PopupFontColor"]){			cmbSchemeSelect->ItemIndex = count;
+			schemesconf->getSections()["Appearance"]["TextFontColor"] == optionsconf->getSections()["Appearance"]["TextFontColor"] &&
+			schemesconf->getSections()["Appearance"]["CommentFontColor"] == optionsconf->getSections()["Appearance"]["CommentFontColor"] &&
+			schemesconf->getSections()["Appearance"]["LDFontColor"] == optionsconf->getSections()["Appearance"]["LDFontColor"] &&
+			schemesconf->getSections()["Appearance"]["PopupFontColor"] == optionsconf->getSections()["Appearance"]["PopupFontColor"]){			cmbSchemeSelect->ItemIndex = count;
 				count = cmbSchemeSelect->Items->Count; // Basically we are done and can move on :)
 		}
 	delete schemesconf;
@@ -540,11 +540,11 @@
 	SWBuf tmpval;
 
 	// default on
-	AutoVSColor->Checked  = (config->Sections["Appearance"]["AutoVSColor"] != "0");
+	AutoVSColor->Checked  = (config->getSections()["Appearance"]["AutoVSColor"] != "0");
 	// default off
-	VerseNewLine->Checked = (config->Sections["Appearance"]["VerseNewLine"] == "1");
+	VerseNewLine->Checked = (config->getSections()["Appearance"]["VerseNewLine"] == "1");
 	// Current Verse Color	
-	if((tmpval = config->Sections["Appearance"]["CurrentVSColor"]) != ""){
+	if((tmpval = config->getSections()["Appearance"]["CurrentVSColor"]) != ""){
 		shpCurrVSClr->Brush->Color =  TColor(atoi(tmpval.c_str()));
 		ColorDialogVS->Color = shpCurrVSClr->Brush->Color;
 	}
@@ -553,7 +553,7 @@
 		ColorDialogVS->Color = clBlue;
 	}
 	// Strong's Color
-	if((tmpval = config->Sections["Appearance"]["StrongsColor"]) != ""){
+	if((tmpval = config->getSections()["Appearance"]["StrongsColor"]) != ""){
 		shpStrongClr->Brush->Color =  TColor(atoi(tmpval.c_str()));
 		ColorDialogStrongs->Color = shpStrongClr->Brush->Color;
 	}
@@ -562,7 +562,7 @@
 		ColorDialogStrongs->Color = shpStrongClr->Brush->Color; 		
 	}
 	// Morph Color
-	if((tmpval = config->Sections["Appearance"]["MorphColor"]) != ""){
+	if((tmpval = config->getSections()["Appearance"]["MorphColor"]) != ""){
 		shpMorphClr->Brush->Color =  TColor(atoi(tmpval.c_str()));
 		ColorDialogMorph->Color = shpMorphClr->Brush->Color;
 	}
@@ -571,7 +571,7 @@
 		ColorDialogMorph->Color = shpMorphClr->Brush->Color; 		
 	}
 	// Verse Number Color
-	if((tmpval = config->Sections["Appearance"]["VSNumberColor"]) != ""){
+	if((tmpval = config->getSections()["Appearance"]["VSNumberColor"]) != ""){
 		shpNumClr->Brush->Color =  TColor(atoi(tmpval.c_str()));
 		ColorDialogVerseNum->Color = shpNumClr->Brush->Color;
 	}
@@ -580,7 +580,7 @@
 		ColorDialogVerseNum->Color = shpNumClr->Brush->Color; 		
 	}
 
-	if((tmpval = config->Sections["Appearance"]["FieldColor"]) != ""){
+	if((tmpval = config->getSections()["Appearance"]["FieldColor"]) != ""){
 		shpFieldClr->Brush->Color =  TColor(atoi(tmpval.c_str()));
 		ColorDialogField->Color = shpFieldClr->Brush->Color;
 	}
@@ -590,102 +590,102 @@
 	}
 
 		//****	Font BackColor		****//
-	if((tmpval = config->Sections["Appearance"]["TextBackColor"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["TextBackColor"]) != "")
 		FontDialogText->BackColor = TColor(atoi(tmpval.c_str()));
 	else FontDialogText->BackColor = clWhite;
 
-	if((tmpval = config->Sections["Appearance"]["CommentBackColor"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["CommentBackColor"]) != "")
 		FontDialogComment->BackColor = TColor(atoi(tmpval.c_str()));
 	else FontDialogComment->BackColor = clWhite;
 
-	if((tmpval = config->Sections["Appearance"]["LDBackColor"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["LDBackColor"]) != "")
 		FontDialogLD->BackColor = TColor(atoi(tmpval.c_str()));
 	else FontDialogLD->BackColor = clWhite;
 
-	if((tmpval = config->Sections["Appearance"]["PopupBackColor"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["PopupBackColor"]) != "")
 		FontDialogPopup->BackColor = TColor(atoi(tmpval.c_str()));
 	else FontDialogPopup->BackColor = clWhite;
 
-	if((tmpval = config->Sections["Appearance"]["SearchBackColor"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["SearchBackColor"]) != "")
 		FontDialogSearch->BackColor = TColor(atoi(tmpval.c_str()));
 	else FontDialogSearch->BackColor = clWhite;
 
-	if((tmpval = config->Sections["Appearance"]["UIBackColor"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["UIBackColor"]) != "")
 		FontDialogUI->BackColor = TColor(atoi(tmpval.c_str()));
 	else FontDialogUI->BackColor = clWhite;
 
 		//****	Font Face Name 	****//
-	if((tmpval = config->Sections["Appearance"]["TextFontName"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["TextFontName"]) != "")
 		FontDialogText->Font->Name =  tmpval.c_str();
 	else FontDialogText->Font->Name = "Times New Roman";
 	
-	if((tmpval = config->Sections["Appearance"]["CommentFontName"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["CommentFontName"]) != "")
 		FontDialogComment->Font->Name =  tmpval.c_str();
 	else FontDialogComment->Font->Name = "Times New Roman";
 
-	if((tmpval = config->Sections["Appearance"]["LDFontName"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["LDFontName"]) != "")
 		FontDialogLD->Font->Name =  tmpval.c_str();
 	else FontDialogLD->Font->Name = "Times New Roman";
 
-	if((tmpval = config->Sections["Appearance"]["PopupFontName"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["PopupFontName"]) != "")
 		FontDialogPopup->Font->Name =  tmpval.c_str();
 	else FontDialogPopup->Font->Name = "Times New Roman";
 
-	if((tmpval = config->Sections["Appearance"]["SearchFontName"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["SearchFontName"]) != "")
 		FontDialogSearch->Font->Name =  tmpval.c_str();
 	else FontDialogSearch->Font->Name = "Times New Roman";
 
-	if((tmpval = config->Sections["Appearance"]["UIFontName"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["UIFontName"]) != "")
 		FontDialogUI->Font->Name =  tmpval.c_str();
 	else FontDialogUI->Font->Name = "MS Sans Serif";
 
 		//****	Font Size			****//
-	if((tmpval = config->Sections["Appearance"]["TextFontSize"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["TextFontSize"]) != "")
 		FontDialogText->Font->Size =  atoi(tmpval.c_str());
 	else FontDialogText->Font->Size = 10;
 
-	if((tmpval = config->Sections["Appearance"]["CommentFontSize"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["CommentFontSize"]) != "")
 		FontDialogComment->Font->Size =  atoi(tmpval.c_str());
 	else FontDialogComment->Font->Size = 10;
 
-	if((tmpval = config->Sections["Appearance"]["LDFontSize"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["LDFontSize"]) != "")
 		FontDialogLD->Font->Size =  atoi(tmpval.c_str());
 	else FontDialogLD->Font->Size = 10;
 
-	if((tmpval = config->Sections["Appearance"]["PopupFontSize"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["PopupFontSize"]) != "")
 		FontDialogPopup->Font->Size =  atoi(tmpval.c_str());
 	else FontDialogPopup->Font->Size = 10;
 
-	if((tmpval = config->Sections["Appearance"]["SearchFontSize"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["SearchFontSize"]) != "")
 		FontDialogSearch->Font->Size =  atoi(tmpval.c_str());
 	else FontDialogSearch->Font->Size = 10;
 
-	if((tmpval = config->Sections["Appearance"]["UIFontSize"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["UIFontSize"]) != "")
 		FontDialogUI->Font->Size =  atoi(tmpval.c_str());
 	else FontDialogUI->Font->Size = 8;
 
 		//****	Font ForeColor		****//
-	if((tmpval = config->Sections["Appearance"]["TextFontColor"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["TextFontColor"]) != "")
 		FontDialogText->Font->Color = TColor(atoi(tmpval.c_str()));
 	else FontDialogText->Font->Color = clBlack;
 
-	if((tmpval = config->Sections["Appearance"]["CommentFontColor"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["CommentFontColor"]) != "")
 		FontDialogComment->Font->Color = TColor(atoi(tmpval.c_str()));
 	else FontDialogComment->Font->Color = clBlack;
 
-	if((tmpval = config->Sections["Appearance"]["LDFontColor"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["LDFontColor"]) != "")
 		FontDialogLD->Font->Color = TColor(atoi(tmpval.c_str()));
 	else FontDialogLD->Font->Color = clBlack;
 
-	if((tmpval = config->Sections["Appearance"]["PopupFontColor"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["PopupFontColor"]) != "")
 		FontDialogPopup->Font->Color = TColor(atoi(tmpval.c_str()));
 	else FontDialogPopup->Font->Color = clBlack;
 
-	if((tmpval = config->Sections["Appearance"]["SearchFontColor"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["SearchFontColor"]) != "")
 		FontDialogSearch->Font->Color = TColor(atoi(tmpval.c_str()));
 	else FontDialogSearch->Font->Color = clBlack;
 
-	if((tmpval = config->Sections["Appearance"]["UIFontColor"]) != "")
+	if((tmpval = config->getSections()["Appearance"]["UIFontColor"]) != "")
 		FontDialogUI->Font->Color = TColor(atoi(tmpval.c_str()));
 	else FontDialogUI->Font->Color = clBlack;
 }
@@ -701,40 +701,40 @@
 
 	Optionsfrm->AutoBMPersonal->Checked = true;
 	Optionsfrm->AutoLayout->Checked = true;
-	if ((sit = config->Sections.find("Bookmarks")) != config->Sections.end()) {
+	if ((sit = config->getSections().find("Bookmarks")) != config->getSections().end()) {
 		Optionsfrm->AutoBMPersonal->Checked = ((atoi(sit->second["AutoSavePersonal"].c_str()))?true:false);
 		Optionsfrm->AutoBMOther->Checked    = ((atoi(sit->second["AutoSaveOther"].c_str()))?true:false);
 	}
-	if ((sit = config->Sections.find("Layout")) != config->Sections.end()) {
+	if ((sit = config->getSections().find("Layout")) != config->getSections().end()) {
 		Optionsfrm->AutoLayout->Checked = ((atoi(sit->second["AutoSaveLayout"].c_str()))?true:false);
 
 	}
 
-	tmpval = config->Sections["Hints"].getWithDefault("Hints", "true");
+	tmpval = config->getSections()["Hints"].getWithDefault("Hints", "true");
 	Optionsfrm->HintPopups->Checked = (tmpval != "false");
 
-	tmpval = config->Sections["Hints"].getWithDefault("Strongs", "true");
+	tmpval = config->getSections()["Hints"].getWithDefault("Strongs", "true");
 	Optionsfrm->HintStrongs->Checked = (tmpval != "false");
 
-	tmpval = config->Sections["Hints"].getWithDefault("VLists", "true");
+	tmpval = config->getSections()["Hints"].getWithDefault("VLists", "true");
 	Optionsfrm->HintVLists->Checked = (tmpval != "false");
 
-	tmpval = config->Sections["Hints"].getWithDefault("Words", "false");
+	tmpval = config->getSections()["Hints"].getWithDefault("Words", "false");
 	Optionsfrm->HintWords->Checked = (tmpval == "true");
 
 
 	Optionsfrm->devsAsDictsCB->Checked = false;
-	tmpval = ((eit = config->Sections["General"].find("DevsAsDicts")) != config->Sections["General"].end())? (*eit).second : (SWBuf)"false";
+	tmpval = ((eit = config->getSections()["General"].find("DevsAsDicts")) != config->getSections()["General"].end())? (*eit).second : (SWBuf)"false";
 	if (!sword::stricmp(tmpval.c_str(), "true"))
 		Optionsfrm->devsAsDictsCB->Checked = true;
 
 	Optionsfrm->glosAsDictsCB->Checked = true;
-	tmpval = config->Sections["General"].getWithDefault("GlosAsDicts", "true");
+	tmpval = config->getSections()["General"].getWithDefault("GlosAsDicts", "true");
 	if (!sword::stricmp(tmpval.c_str(), "false"))
 		Optionsfrm->glosAsDictsCB->Checked = false;
 
 	Optionsfrm->devSplashCB->Checked = false;
-	tmpval = ((eit = config->Sections["General"].find("TipOfTheDay")) != config->Sections["General"].end())? (*eit).second : (SWBuf)"";
+	tmpval = ((eit = config->getSections()["General"].find("TipOfTheDay")) != config->getSections()["General"].end())? (*eit).second : (SWBuf)"";
 	if (!sword::stricmp(tmpval.c_str(), "Devotional"))
 		Optionsfrm->devSplashCB->Checked = true;
 
@@ -742,37 +742,37 @@
 	SWLocale *defLocale = LocaleMgr::getSystemLocaleMgr()->getLocale(localeName);
 	Optionsfrm->localeCB->ItemIndex = Optionsfrm->localeCB->Items->IndexOf((defLocale)?defLocale->getDescription():"English (US)");
 
-	tmpval = ((eit = config->Sections["ModDefaults"].find("GreekDef")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
+	tmpval = ((eit = config->getSections()["ModDefaults"].find("GreekDef")) != config->getSections()["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
 		Optionsfrm->greekDefCB->ItemIndex = Optionsfrm->greekDefCB->Items->IndexOf(it->second->getDescription());
 	}
 
-	tmpval = ((eit = config->Sections["ModDefaults"].find("GreekParse")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
+	tmpval = ((eit = config->getSections()["ModDefaults"].find("GreekParse")) != config->getSections()["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
 		Optionsfrm->greekParseCB->ItemIndex = Optionsfrm->greekParseCB->Items->IndexOf(it->second->getDescription());
 	}
 
-	tmpval = ((eit = config->Sections["ModDefaults"].find("HebrewDef")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
+	tmpval = ((eit = config->getSections()["ModDefaults"].find("HebrewDef")) != config->getSections()["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
 		Optionsfrm->hebrewDefCB->ItemIndex = Optionsfrm->hebrewDefCB->Items->IndexOf(it->second->getDescription());
 	}
 
-	tmpval = ((eit = config->Sections["ModDefaults"].find("HebrewParse")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
+	tmpval = ((eit = config->getSections()["ModDefaults"].find("HebrewParse")) != config->getSections()["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
 		Optionsfrm->hebrewParseCB->ItemIndex = Optionsfrm->hebrewParseCB->Items->IndexOf(it->second->getDescription());
 	}
 
-	tmpval = ((eit = config->Sections["ModDefaults"].find("DailyDevotion")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
+	tmpval = ((eit = config->getSections()["ModDefaults"].find("DailyDevotion")) != config->getSections()["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
 		Optionsfrm->dailyDefaultCB->ItemIndex = Optionsfrm->dailyDefaultCB->Items->IndexOf(it->second->getDescription());
 	}
 
-	tmpval = ((eit = config->Sections["ModDefaults"].find("GenDict")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
+	tmpval = ((eit = config->getSections()["ModDefaults"].find("GenDict")) != config->getSections()["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
 		Optionsfrm->genDictCB->ItemIndex = Optionsfrm->genDictCB->Items->IndexOf(it->second->getDescription());
 	}
 
-	tmpval = ((eit = config->Sections["ModDefaults"].find("StrongsNumbers")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
+	tmpval = ((eit = config->getSections()["ModDefaults"].find("StrongsNumbers")) != config->getSections()["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
 		Optionsfrm->strongsNumsCB->ItemIndex = Optionsfrm->strongsNumsCB->Items->IndexOf(it->second->getDescription());
 	}
@@ -787,7 +787,7 @@
 	int color;
 	SWBuf tmpval;
 
-	emap = config->Sections["Appearance"];
+	emap = config->getSections()["Appearance"];
 	emap["AutoVSColor"]      = IntToStr((Optionsfrm->AutoVSColor->Checked)?1:0).c_str();
 	emap["VerseNewLine"]     = IntToStr((Optionsfrm->VerseNewLine->Checked)?1:0).c_str();
 	emap["CurrentVSColor"]   = IntToStr(Optionsfrm->ColorDialogVS->Color).c_str();
@@ -826,9 +826,9 @@
 	    
 	emap["locale"]           = (const char *)Optionsfrm->localeCB->Items->Objects[Optionsfrm->localeCB->ItemIndex];
 
-	config->Sections["Appearance"] = emap;
+	config->getSections()["Appearance"] = emap;
 
-	emap = config->Sections["ModDefaults"];
+	emap = config->getSections()["ModDefaults"];
 
 	if (Optionsfrm->greekDefCB->ItemIndex > -1) {
 		emap["GreekDef"]       = (const char *)Optionsfrm->greekDefCB->Items->Objects[Optionsfrm->greekDefCB->ItemIndex];
@@ -851,27 +851,27 @@
 	if (Optionsfrm->strongsNumsCB->ItemIndex > -1) {
 		emap["StrongsNumbers"] = (const char *)Optionsfrm->strongsNumsCB->Items->Objects[Optionsfrm->strongsNumsCB->ItemIndex];
 	}
-	config->Sections["ModDefaults"] = emap;
+	config->getSections()["ModDefaults"] = emap;
 
 
-	emap = config->Sections["Bookmarks"];
+	emap = config->getSections()["Bookmarks"];
 	emap["AutoSavePersonal"] = IntToStr((Optionsfrm->AutoBMPersonal->Checked)?1:0).c_str();
 	emap["AutoSaveOther"]    = IntToStr((Optionsfrm->AutoBMOther->Checked)?1:0).c_str();
-	config->Sections["Bookmarks"] = emap;
+	config->getSections()["Bookmarks"] = emap;
 
-	config->Sections["Layout"]["AutoSaveLayout"] = IntToStr((Optionsfrm->AutoLayout->Checked)?1:0).c_str();
+	config->getSections()["Layout"]["AutoSaveLayout"] = IntToStr((Optionsfrm->AutoLayout->Checked)?1:0).c_str();
 
-	config->Sections["Hints"]["Hints"]   = (Optionsfrm->HintPopups->Checked) ? "true" : "false";
-	config->Sections["Hints"]["Strongs"] = (Optionsfrm->HintStrongs->Checked)? "true" : "false";
-	config->Sections["Hints"]["VLists"]  = (Optionsfrm->HintVLists->Checked) ? "true" : "false";
-	config->Sections["Hints"]["Words"]   = (Optionsfrm->HintWords->Checked)  ? "true" : "false";
+	config->getSections()["Hints"]["Hints"]   = (Optionsfrm->HintPopups->Checked) ? "true" : "false";
+	config->getSections()["Hints"]["Strongs"] = (Optionsfrm->HintStrongs->Checked)? "true" : "false";
+	config->getSections()["Hints"]["VLists"]  = (Optionsfrm->HintVLists->Checked) ? "true" : "false";
+	config->getSections()["Hints"]["Words"]   = (Optionsfrm->HintWords->Checked)  ? "true" : "false";
 
-	emap = config->Sections["General"];
+	emap = config->getSections()["General"];
 	emap["TipOfTheDay"] = (Optionsfrm->devSplashCB->Checked)?"Devotional":"";
 	emap["DevsAsDicts"] = (Optionsfrm->devsAsDictsCB->Checked)?"true":"false";
 	emap["GlosAsDicts"] = (Optionsfrm->glosAsDictsCB->Checked)?"true":"false";
 
-	config->Sections["General"] = emap;
+	config->getSections()["General"] = emap;
 }
 
 

Modified: branches/BCB5/optionfrm.dfm
===================================================================
(Binary files differ)

Modified: branches/BCB5/paraldisp.cpp
===================================================================
--- branches/BCB5/paraldisp.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/paraldisp.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -197,7 +197,7 @@
 		        makeBracketsEven(tmptext);
 
 			lastEntry = mods[z]->getRawEntry();
-			for (const char *loop = (const char *)(*mods[z]); *loop; loop++) {
+			for (const char *loop = (const char *)mods[z]->renderText(); *loop; loop++) {
 				if (*loop == '\n') {
 					tmptext += "\\par ";
 				}

Modified: branches/BCB5/searchfrm.cpp
===================================================================
--- branches/BCB5/searchfrm.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/searchfrm.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -245,8 +245,8 @@
 	ConfigEntMap::iterator loop, end;
 	SWConfig config(TForm1::getDataRootPath()+"/BibleCS/options.conf");	
 	ComboBox1->Clear();
-	loop = config.Sections["CustomRanges"].begin();
-	end = config.Sections["CustomRanges"].end();
+	loop = config.getSections()["CustomRanges"].begin();
+	end = config.getSections()["CustomRanges"].end();
 	while (loop != end) {
 		TCustomRange *rs = new TCustomRange(loop->first.c_str(), loop->second.c_str());
 		ComboBox1->Items->AddObject(UTF8Decode(rs->name.c_str()), rs);
@@ -474,8 +474,8 @@
 void __fastcall TsearchForm::Button2Click(TObject *Sender)
 {
 	SWBuf helpDir;
-	ConfigEntMap::iterator it = Form1->optionsconf->Sections["Help"].find("Directory");
-	if (it != Form1->optionsconf->Sections["Help"].end())
+	ConfigEntMap::iterator it = Form1->optionsconf->getSections()["Help"].find("Directory");
+	if (it != Form1->optionsconf->getSections()["Help"].end())
 		helpDir = (*it).second;
 	else helpDir = ".\\help";
 

Modified: branches/BCB5/searchfrm.dfm
===================================================================
(Binary files differ)

Modified: branches/BCB5/swdisprtf.cpp
===================================================================
--- branches/BCB5/swdisprtf.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/swdisprtf.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -60,7 +60,7 @@
 	newtext = newtext + RTFHeadMargin;
 	Module.popError(); // clear error;
 	newtext = newtext + "\\pard \\nowidctlpar \\cf7\\f0 ";
-	(const char *)Module;	// force key to snap to entry before pulling out the text of the key
+	(const char *)Module.renderText();	// force key to snap to entry before pulling out the text of the key
 	buf = Module.getKeyText();
 	SWKey *key = Module;
 
@@ -71,7 +71,7 @@
 	newtext = newtext + RTFHeadingPre + buf.c_str() + RTFHeadingPost + ":{\\par}";
 	tmptext = "";
 
-	tmptext = (const char *)Module;
+	tmptext = (const char *)Module.renderText();
 
 	newtext = newtext + RTFVersePre + tmptext + RTFVersePost;
 	newtext = newtext + RTFTrailer;

Modified: branches/BCB5/swdisprtfchap.cpp
===================================================================
--- branches/BCB5/swdisprtfchap.cpp	2013-07-26 15:11:32 UTC (rev 513)
+++ branches/BCB5/swdisprtfchap.cpp	2020-07-19 18:41:42 UTC (rev 514)
@@ -120,7 +120,7 @@
 
 		tmptext = "";
 		lastEntry = rawText;
-		for (const char *loop = (const char *)Module; *loop; loop++) {
+		for (const char *loop = (const char *)Module.renderText(); *loop; loop++) {
 			if (*loop == '\n') {
 				tmptext += "\\par ";
 			}



More information about the sword-cvs mailing list