diff --git a/src/sbbs3/js_bbs.cpp b/src/sbbs3/js_bbs.cpp index 183c35666bb06791a4a6d371a9aaedd7787af7fe..2e0e324614f35e54284b2dc48c60febc3738fb10 100644 --- a/src/sbbs3/js_bbs.cpp +++ b/src/sbbs3/js_bbs.cpp @@ -4055,7 +4055,7 @@ js_msgscan_reinit(JSContext *cx, uintN argc, jsval *arglist) jsrefcount rc; if((sbbs=js_GetPrivate(cx, JS_THIS_OBJECT(cx, arglist)))==NULL) - return(JS_FALSE); + return JS_FALSE; JS_SET_RVAL(cx, arglist, JSVAL_VOID); @@ -4064,6 +4064,42 @@ js_msgscan_reinit(JSContext *cx, uintN argc, jsval *arglist) sbbs->bputs(sbbs->text[MsgPtrsInitialized]); JS_RESUMEREQUEST(cx, rc); + return JS_TRUE; +} + +static JSBool +js_save_msg_scan(JSContext *cx, uintN argc, jsval *arglist) +{ + sbbs_t* sbbs; + jsrefcount rc; + + if((sbbs=js_GetPrivate(cx, JS_THIS_OBJECT(cx, arglist)))==NULL) + return JS_FALSE; + + JS_SET_RVAL(cx, arglist, JSVAL_VOID); + + rc=JS_SUSPENDREQUEST(cx); + sbbs->putmsgptrs(); + JS_RESUMEREQUEST(cx, rc); + + return JS_TRUE; +} + +static JSBool +js_reload_msg_scan(JSContext *cx, uintN argc, jsval *arglist) +{ + sbbs_t* sbbs; + jsrefcount rc; + + if((sbbs=js_GetPrivate(cx, JS_THIS_OBJECT(cx, arglist)))==NULL) + return(JS_FALSE); + + JS_SET_RVAL(cx, arglist, JSVAL_VOID); + + rc=JS_SUSPENDREQUEST(cx); + sbbs->getmsgptrs(); + JS_RESUMEREQUEST(cx, rc); + return(JS_TRUE); } @@ -4642,6 +4678,14 @@ static jsSyncMethodSpec js_bbs_functions[] = { ,JSDOCSTR("re-initialize new message scan pointers to values at logon") ,310 }, + {"save_msg_scan", js_save_msg_scan, 0, JSTYPE_VOID, JSDOCSTR("") + ,JSDOCSTR("save message scan configuration and pointers to userbase") + ,320 + }, + {"reload_msg_scan", js_reload_msg_scan, 0, JSTYPE_VOID, JSDOCSTR("") + ,JSDOCSTR("re-loads message scan configuration and pointers from userbase") + ,320 + }, {"scan_subs", js_scansubs, 0, JSTYPE_VOID, JSDOCSTR("[mode=<tt>SCAN_NEW</tt>] [,all=<tt>false</tt>]") ,JSDOCSTR("scan sub-boards for messages") ,310