From 6aa11c93b7e5a8c81be894a94861fb8190f4d5dc Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Fri, 5 Aug 2011 03:16:04 +0000
Subject: [PATCH] Use ctrl/modopts.ini to enable/disable optional behavior
 (e.g. multi-column external program listing, sorting, emailing of passwords).

---
 exec/login.js    |  4 ++--
 exec/xtrn_sec.js | 16 ++++++++--------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/exec/login.js b/exec/login.js
index de908257cc..0584998a91 100644
--- a/exec/login.js
+++ b/exec/login.js
@@ -6,7 +6,7 @@
 
 load("sbbsdefs.js");
 
-var email_passwords = true;
+options=load("modopts.js","login");
 
 // The following 2 lines are only required for "Re-login" capability
 bbs.logout();
@@ -49,7 +49,7 @@ for(var c=0; c<10; c++) {
 		bbs.logon();
 		exit();
 	}
-	if(email_passwords) {
+	if(options && options.email_passwords) {
 		var usernum = system.matchuser(str);
 		if(usernum) {
 			var u = new User(usernum);
diff --git a/exec/xtrn_sec.js b/exec/xtrn_sec.js
index cdfa98b625..1266bc29f6 100644
--- a/exec/xtrn_sec.js
+++ b/exec/xtrn_sec.js
@@ -10,8 +10,8 @@ load("sbbsdefs.js");
 /* text.dat entries */
 load("text.js");
 
-var multicolumn = true;
-var sort = false;
+if((options=load("modopts.js","xtrn_sec")) == null)
+	options = {multicolumn: true, sort: false};	// default values
 
 function sort_by_name(a, b)
 { 
@@ -50,7 +50,7 @@ while(bbs.online) {
 		}
 		else {
 	
-			if(sort)
+			if(options.sort)
 				sec_list.sort(sort_by_name);
 			for(i in sec_list)
 				console.uselect(Number(i),"External Program Section"
@@ -75,23 +75,23 @@ while(bbs.online) {
 			bbs.menu("xtrn" + (xtrn_area.sec_list[xsec].number+1)); 
 		}
 		else {
-			if(sort)
+			if(options.sort)
 				prog_list.sort(sort_by_name);
 			printf(bbs.text(XtrnProgLstHdr),xtrn_area.sec_list[xsec].name);
 			write(bbs.text(XtrnProgLstTitles));
-			if(multicolumn && prog_list.length >= 10) {
+			if(options.multicolumn && prog_list.length >= 10) {
 				write("     ");
 				write(bbs.text(XtrnProgLstTitles)); 
 			}
 			console.crlf();
 			write(bbs.text(XtrnProgLstUnderline));
-			if(multicolumn && prog_list.length >= 10) {
+			if(options.multicolumn && prog_list.length >= 10) {
 				write("     ");
 				write(bbs.text(XtrnProgLstUnderline)); 
 			}
 			console.crlf();
 			var n;
-			if(multicolumn && prog_list.length >= 10)
+			if(options.multicolumn && prog_list.length >= 10)
 				n=Math.floor(prog_list.length/2)+(prog_list.length&1);
 			else
 				n=prog_list.length;
@@ -101,7 +101,7 @@ while(bbs.online) {
 					,prog_list[i].name
 					,prog_list[i].cost);
 
-				if(multicolumn
+				if(options.multicolumn
 					&& prog_list.length>=10) {
 					j=Math.floor(prog_list.length/2)+i+(prog_list.length&1);
 					if(j<prog_list.length) {
-- 
GitLab