From 049674ad1e4f4e14ea6508717f3a7fbe784db70d Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Mon, 10 Mar 2003 05:06:53 +0000
Subject: [PATCH] Created a new msg_area.sub property that contains all the
 sub-boards the user has access to in a single object (associative array).

---
 src/sbbs3/js_msg_area.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/sbbs3/js_msg_area.c b/src/sbbs3/js_msg_area.c
index 98c2766636..442cfe3314 100644
--- a/src/sbbs3/js_msg_area.c
+++ b/src/sbbs3/js_msg_area.c
@@ -146,6 +146,7 @@ JSObject* DLLCALL js_CreateMsgAreaObject(JSContext* cx, JSObject* parent, scfg_t
 {
 	char		str[128];
 	JSObject*	areaobj;
+	JSObject*	allsubs;
 	JSObject*	grpobj;
 	JSObject*	subobj;
 	JSObject*	grp_list;
@@ -169,6 +170,9 @@ JSObject* DLLCALL js_CreateMsgAreaObject(JSContext* cx, JSObject* parent, scfg_t
 	js_DescribeObject(cx,areaobj,"Message Areas");
 #endif
 
+	if((allsubs=JS_NewObject(cx, NULL, NULL, areaobj))==NULL)
+		return(NULL);
+
 	/* grp_list[] */
 	if((grp_list=JS_NewArrayObject(cx, 0, NULL))==NULL) 
 		return(NULL);
@@ -307,6 +311,10 @@ JSObject* DLLCALL js_CreateMsgAreaObject(JSContext* cx, JSObject* parent, scfg_t
 			if(!JS_SetElement(cx, sub_list, index, &val))
 				return(NULL);
 
+			/* Add as property (associative array element) */
+			if(!JS_SetProperty(cx, allsubs, cfg->sub[d]->code, &val))
+				return(NULL);
+
 #ifdef _DEBUG
 			js_DescribeObject(cx,subobj,"Message Sub-boards");
 #endif
@@ -321,6 +329,10 @@ JSObject* DLLCALL js_CreateMsgAreaObject(JSContext* cx, JSObject* parent, scfg_t
 			return(NULL);
 	}
 
+	val=OBJECT_TO_JSVAL(allsubs);
+	if(!JS_SetProperty(cx, areaobj, "sub", &val))
+		return(NULL);
+
 	return(areaobj);
 }
 
-- 
GitLab