diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c index d28b00f5d511f65a4df01136270a3523e9ac664c..afa2174230d7015b3d3d1480469abfb2c88cfbb6 100644 --- a/src/sbbs3/js_global.c +++ b/src/sbbs3/js_global.c @@ -2327,6 +2327,29 @@ js_backslash(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) return(JS_TRUE); } +static JSBool +js_fullpath(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + char path[MAX_PATH+1]; + char* str; + JSString* js_str; + + if(JSVAL_IS_VOID(argv[0])) + return(JS_TRUE); + + if((str=js_ValueToStringBytes(cx, argv[0], NULL))==NULL) + return(JS_FALSE); + + SAFECOPY(path,str); + _fullpath(path, str, sizeof(path)); + + if((js_str = JS_NewStringCopyZ(cx, path))==NULL) + return(JS_FALSE); + + *rval = STRING_TO_JSVAL(js_str); + return(JS_TRUE); +} + static JSBool js_getfname(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) @@ -3206,6 +3229,10 @@ static jsSyncMethodSpec js_global_functions[] = { "(i.e. \"slash\" or \"backslash\")") ,312 }, + {"fullpath", js_fullpath, 1, JSTYPE_STRING, JSDOCSTR("path") + ,JSDOCSTR("Creates an absolute or full path name for the specified relative path name.") + ,315 + }, {"file_getname", js_getfname, 1, JSTYPE_STRING, JSDOCSTR("path/filename") ,JSDOCSTR("returns filename portion of passed path string") ,311