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