From 668be802514882bc78c18bea3fa46a0b2fd76d13 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sun, 24 Feb 2008 09:23:34 +0000
Subject: [PATCH] Created global JS method: mkpath()

---
 src/sbbs3/js_global.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c
index 5a69fc2059..aee54995c6 100644
--- a/src/sbbs3/js_global.c
+++ b/src/sbbs3/js_global.c
@@ -2966,6 +2966,21 @@ js_mkdir(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 	return(JS_TRUE);
 }
 
+static JSBool
+js_mkpath(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+	char*		p;
+
+	if(JSVAL_IS_VOID(argv[0]))
+		return(JS_TRUE);
+
+	if((p=js_ValueToStringBytes(cx, argv[0], NULL))==NULL) 
+		return(JS_FALSE);
+
+	*rval = BOOLEAN_TO_JSVAL(mkpath(p)==0);
+	return(JS_TRUE);
+}
+
 static JSBool
 js_rmdir(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 {
@@ -3345,6 +3360,10 @@ static jsSyncMethodSpec js_global_functions[] = {
 	,JSDOCSTR("make a directory")
 	,310
 	},		
+	{"mkpath",			js_mkpath,			1,	JSTYPE_BOOLEAN,	JSDOCSTR("path/directory")
+	,JSDOCSTR("make a path to a directory (creating all necessary sub-directories)")
+	,315
+	},		
 	{"rmdir",			js_rmdir,			1,	JSTYPE_BOOLEAN,	JSDOCSTR("path/directory")
 	,JSDOCSTR("remove a directory")
 	,310
-- 
GitLab