From 69f08a3f7c853f46668ce7bfec0a5f8392bcf5de Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Thu, 16 Nov 2017 07:22:54 +0000 Subject: [PATCH] New global method: file_cdate() to get a file's creation time. --- src/sbbs3/js_global.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c index f806bf2686..a97b3f6c2d 100644 --- a/src/sbbs3/js_global.c +++ b/src/sbbs3/js_global.c @@ -3174,6 +3174,32 @@ js_fdate(JSContext *cx, uintN argc, jsval *arglist) return(JS_TRUE); } +static JSBool +js_fcdate(JSContext *cx, uintN argc, jsval *arglist) +{ + jsval *argv=JS_ARGV(cx, arglist); + char* p; + time_t fd; + jsrefcount rc; + + JS_SET_RVAL(cx, arglist, JSVAL_VOID); + + if(argc==0 || JSVAL_IS_VOID(argv[0])) + return(JS_TRUE); + + JSVALUE_TO_MSTRING(cx, argv[0], p, NULL) + HANDLE_PENDING(cx); + if(p==NULL) + return(JS_TRUE); + + rc=JS_SUSPENDREQUEST(cx); + fd=fcdate(p); + free(p); + JS_RESUMEREQUEST(cx, rc); + JS_SET_RVAL(cx, arglist,DOUBLE_TO_JSVAL((double)fd)); + return(JS_TRUE); +} + static JSBool js_utime(JSContext *cx, uintN argc, jsval *arglist) { @@ -4143,6 +4169,10 @@ static jsSyncMethodSpec js_global_functions[] = { ,JSDOCSTR("get a file's last modified date/time (in time_t format)") ,310 }, + {"file_cdate", js_fcdate, 1, JSTYPE_NUMBER, JSDOCSTR("path/filename") + ,JSDOCSTR("get a file's creation date/time (in time_t format)") + ,317 + }, {"file_size", js_flength, 1, JSTYPE_NUMBER, JSDOCSTR("path/filename") ,JSDOCSTR("get a file's length (in bytes)") ,310 -- GitLab