From f6570391fe328ee450d7f1d0f9e87d21af2be614 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Mon, 11 Jan 2016 05:23:29 +0000
Subject: [PATCH] Add file_area.alt_paths array containing the (zero-based) alt
 paths.

---
 src/sbbs3/js_file_area.c | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/sbbs3/js_file_area.c b/src/sbbs3/js_file_area.c
index 0761695157..8f13756c33 100644
--- a/src/sbbs3/js_file_area.c
+++ b/src/sbbs3/js_file_area.c
@@ -44,10 +44,10 @@
 static char* file_area_prop_desc[] = {
 	 "minimum amount of available disk space (in kilobytes) required for user uploads to be allowed"
 	,"file area settings (bitfield) - see <tt>FM_*</tt> in <tt>sbbsdefs.js</tt> for details"
+	,"array of alternative file paths.  NOTE: this array is zero-based, but alt path fields are one-based."
 	,NULL
 };
 
-
 static char* lib_prop_desc[] = {
 	 "index into lib_list array (or -1 if not in array) <i>(introduced in v3.12)</i>"
 	,"unique number for this library"
@@ -110,6 +110,7 @@ JSBool DLLCALL js_file_area_resolve(JSContext* cx, JSObject* areaobj, jsid id)
 	JSObject*	alldirs;
 	JSObject*	libobj;
 	JSObject*	dirobj;
+	JSObject*	alt_list;
 	JSObject*	lib_list;
 	JSObject*	dir_list;
 	JSString*	js_str;
@@ -151,6 +152,27 @@ JSBool DLLCALL js_file_area_resolve(JSContext* cx, JSObject* areaobj, jsid id)
 			return(JS_TRUE);
 	}
 
+	if(name==NULL || strcmp(name, "alt_paths")==0) {
+		if(name)
+			free(name);
+		/* file_area.alt_paths[] */
+		if((alt_list=JS_NewArrayObject(cx, 0, NULL))==NULL) 
+			return JS_FALSE;
+
+		val=OBJECT_TO_JSVAL(alt_list);
+		if(!JS_SetProperty(cx, areaobj, "alt_paths", &val)) 
+			return JS_FALSE;
+
+		for (l=0; l<p->cfg->altpaths; l++) {
+			if((js_str=JS_NewStringCopyZ(cx, p->cfg->altpath[l]))==NULL)
+				return JS_FALSE;
+			val=STRING_TO_JSVAL(js_str);
+
+			if(!JS_SetElement(cx, alt_list, l, &val))
+				return JS_FALSE;
+		}
+	}
+
 #ifdef BUILD_JSDOCS
 	js_CreateArrayOfStrings(cx, areaobj, "_property_desc_list", file_area_prop_desc, JSPROP_READONLY);
 #endif
-- 
GitLab