From f9e5e9395679da08eb2bf867a399cb265535620e Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Mon, 18 Nov 2002 03:24:43 +0000
Subject: [PATCH] Now detects failure to read config files and displays error
 message.

---
 src/sbbs3/scfg/scfg.c | 133 ++++++++++++++++++++++++++++++++++++------
 1 file changed, 114 insertions(+), 19 deletions(-)

diff --git a/src/sbbs3/scfg/scfg.c b/src/sbbs3/scfg/scfg.c
index ae7573846e..4f8976ea6d 100644
--- a/src/sbbs3/scfg/scfg.c
+++ b/src/sbbs3/scfg/scfg.c
@@ -280,16 +280,31 @@ Use the arrow keys and  ENTER  to select an option, or  ESC  to exit.
 		,"Configure",mopt)) {
 		case 0:
 			uifc.pop("Reading MAIN.CNF...");
-			read_main_cfg(&cfg,error);
+			if(!read_main_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop(0);
 			node_menu();
 			free_main_cfg(&cfg);
 			break;
 		case 1:
 			uifc.pop("Reading MAIN.CNF...");
-			read_main_cfg(&cfg,error);
+			if(!read_main_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop("Reading XTRN.CNF...");
-			read_xtrn_cfg(&cfg,error);
+			if(!read_xtrn_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop(0);
 			sys_cfg();
 			free_xtrn_cfg(&cfg);
@@ -297,9 +312,19 @@ Use the arrow keys and  ENTER  to select an option, or  ESC  to exit.
 			break;
 		case 2:
 			uifc.pop("Reading MAIN.CNF...");
-            read_main_cfg(&cfg,error);
+			if(!read_main_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop("Reading MSGS.CNF...");
-			read_msgs_cfg(&cfg,error);
+			if(!read_msgs_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop(0);
 			net_cfg();
 			free_msgs_cfg(&cfg);
@@ -307,9 +332,19 @@ Use the arrow keys and  ENTER  to select an option, or  ESC  to exit.
 			break;
 		case 3:
 			uifc.pop("Reading MAIN.CNF...");
-            read_main_cfg(&cfg,error);
+			if(!read_main_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
             uifc.pop("Reading FILE.CNF...");
-            read_file_cfg(&cfg,error);
+            if(!read_file_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}	
 			uifc.pop(0);
             xfer_cfg();
             free_file_cfg(&cfg);
@@ -317,9 +352,19 @@ Use the arrow keys and  ENTER  to select an option, or  ESC  to exit.
             break;
 		case 4:
 			uifc.pop("Reading MAIN.CNF...");
-            read_main_cfg(&cfg,error);
+			if(!read_main_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
             uifc.pop("Reading FILE.CNF...");
-            read_file_cfg(&cfg,error);
+            if(!read_file_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop(0);
 			xfer_opts();
             free_file_cfg(&cfg);
@@ -327,7 +372,12 @@ Use the arrow keys and  ENTER  to select an option, or  ESC  to exit.
             break;
 		case 5:
             uifc.pop("Reading CHAT.CNF...");
-            read_chat_cfg(&cfg,error);
+            if(!read_chat_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}	
 			uifc.pop(0);
             while(1) {
                 i=0;
@@ -365,9 +415,19 @@ Use the arrow keys and  ENTER  to select an option, or  ESC  to exit.
             break;
 		case 6:
 			uifc.pop("Reading MAIN.CNF...");
-            read_main_cfg(&cfg,error);
+			if(!read_main_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop("Reading MSGS.CNF...");
-			read_msgs_cfg(&cfg,error);
+			if(!read_msgs_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop(0);
 			msgs_cfg();
 			free_msgs_cfg(&cfg);
@@ -375,9 +435,19 @@ Use the arrow keys and  ENTER  to select an option, or  ESC  to exit.
 			break;
 		case 7:
 			uifc.pop("Reading MAIN.CNF...");
-            read_main_cfg(&cfg,error);
+            if(!read_main_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop("Reading MSGS.CNF...");
-            read_msgs_cfg(&cfg,error);
+            if(!read_msgs_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop(0);
 			msg_opts();
 			free_msgs_cfg(&cfg);
@@ -385,16 +455,31 @@ Use the arrow keys and  ENTER  to select an option, or  ESC  to exit.
 			break;
 		case 8:
 			uifc.pop("Reading MAIN.CNF...");
-			read_main_cfg(&cfg,error);
+			if(!read_main_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop(0);
 			shell_cfg();
 			free_main_cfg(&cfg);
             break;
 		case 9:
 			uifc.pop("Reading MAIN.CNF...");
-            read_main_cfg(&cfg,error);
+            if(!read_main_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop("Reading XTRN.CNF...");
-			read_xtrn_cfg(&cfg,error);
+			if(!read_xtrn_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop(0);
 			xprogs_cfg();
 			free_xtrn_cfg(&cfg);
@@ -402,9 +487,19 @@ Use the arrow keys and  ENTER  to select an option, or  ESC  to exit.
 			break;
 		case 10:
 			uifc.pop("Reading MAIN.CNF...");
-            read_main_cfg(&cfg,error);
+            if(!read_main_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
             uifc.pop("Reading FILE.CNF...");
-            read_file_cfg(&cfg,error);
+            if(!read_file_cfg(&cfg,error)) {
+				uifc.pop(0);
+				sprintf(errormsg,"ERROR: %s",error);
+				uifc.msg(errormsg);
+				break;
+			}
 			uifc.pop(0);
             txt_cfg();
             free_file_cfg(&cfg);
-- 
GitLab