Loading mwjs.rst +0 −20 Original line number Diff line number Diff line Loading @@ -22,10 +22,6 @@ The following symbols are defined in the global scope for ``MWJS`` scripts: A string containing the name of the current ``Milliways`` user. `K_BROADCAST` A type specifier to be used in `rpc()` and `ipc()` calls (see below). BIND TYPES ========== Loading @@ -36,10 +32,6 @@ The following constants can be used with the `bind` and `unbind` functions (see ``bind(K_BIND_EVENT, handler)`` hooks a user-defined function named in the string `handler` to be called when certain events occur. `K_BIND_IPC` ``bind(K_BIND_IPC, )`` - To be documented. `K_BIND_ONOFF` ``bind(K_BIND_ONOFF, )`` - To be documented. Loading @@ -52,10 +44,6 @@ The following constants can be used with the `bind` and `unbind` functions (see ``bind(K_BIND_SHUTDOWN, )`` - To be documented. `K_BIND_RPC` ``bind(K_BIND_RPC, )`` - To be documented. `K_BIND_ALIAS` ``bind(K_BIND_ALIAS, )`` - To be documented. Loading Loading @@ -100,14 +88,6 @@ The following functions are defined in the global scope of ``MWJS`` scripts. Note that the wholist is currently not guaranteed to be available on joining the talker and so the value returned from `wholist()` could be `undefined`. `rpc()` To be documented. `ipc()` To be documented. `urlget(url)` Takes a URL string, fetches it, and returns the contents of the response. Loading src/client/js-duk.c +1 −66 Original line number Diff line number Diff line Loading @@ -40,10 +40,8 @@ struct binding { const struct binding bindings[] = { { K_BIND, 1, &bind_list, "Bind" }, { K_BIND_ALIAS, 1, &alias_list, "Alias" }, { K_BIND_RPC, 1, &rpc_list, "RPC bind" }, { K_BIND_EVENT, 0, &event_list, "Event bind" }, { K_BIND_ONOFF, 0, &onoff_list, "Check on/off bind" }, { K_BIND_IPC, 0, &ipc_list, "IPC bind" }, { K_BIND_FORCE, 0, &force_list, "Force bind" }, { K_BIND_SHUTDOWN, 0, &shutdown_list, "Shutdown bind" }, { K_BIND_INPUT, 0, &eventin_list, "Input event bind" }, Loading Loading @@ -251,62 +249,6 @@ static duk_ret_t js_wholist(duk_context *cx) return 1; /* Array is returned at top of stack */ } static duk_ret_t js_rpc(duk_context *cx) { const char *username = NULL; const char *rpc_type = NULL; const char *msg = NULL; int broadcast = 0; if (duk_is_undefined(cx, -1) || duk_is_undefined(cx, -2) || duk_is_undefined(cx, -3)) { fprintf(stderr, "mwjs error: rpc() expects 3 arguments\n"); return DUK_RET_SYNTAX_ERROR; } if (duk_is_number(cx, -3)) { if (duk_get_int(cx, -3) == K_BROADCAST) broadcast = 1; } else if (duk_is_string(cx, -3)) { username = duk_get_string(cx, -3); } rpc_type = duk_safe_to_string(cx, -2); msg = duk_safe_to_string(cx, -1); if((!broadcast && username[0] == '\0') || rpc_type[0] == '\0') { fprintf(stderr, "Error: javascript rpc(): invalid arguments - [%s] [%s]", (broadcast ? "K_BROADCAST" : username), rpc_type); return DUK_RET_ERROR; } sendrpc(username, rpc_type, msg, broadcast); return 0; } static duk_ret_t js_ipc(duk_context *cx) { const char *username = NULL; const char *msg = NULL; int broadcast = 0; if (duk_is_undefined(cx, -1) || duk_is_undefined(cx, -2)) { fprintf(stderr, "mwjs error: ipc() expects 2 arguments\n"); return DUK_RET_SYNTAX_ERROR; } if (duk_is_number(cx, -2)) { if (duk_get_int(cx, -2) == K_BROADCAST) broadcast = 1; } else if (duk_is_string(cx, -2)) { username = duk_get_string(cx, -2); } msg = duk_safe_to_string(cx, -1); if (broadcast == 0 && (!username || username[0] == '\0')) { fprintf(stderr, "mwjs error: ipc() expects either a username or K_BROADCAST\n"); return DUK_RET_ERROR; } sendipc(username, msg, broadcast); return 0; } struct urlget { duk_context *cx; duk_idx_t nchunks; Loading Loading @@ -477,8 +419,7 @@ static duk_ret_t js_bind(duk_context *cx) } else if (duk_is_number(cx, -3)) { bind_type = duk_get_int_default(cx, -3, -1); if (bind_type == K_BIND || bind_type == K_BIND_ALIAS || bind_type == K_BIND_RPC) { bind_type == K_BIND_ALIAS) { bind_name = duk_get_string(cx, -2); } else { duk_pop(cx); Loading Loading @@ -675,7 +616,6 @@ static duk_ret_t js_dbquery(duk_context *cx) return 1; } int js_isrunning(void) { return (interrupt == 0 && timeout_event != NULL); Loading Loading @@ -850,14 +790,11 @@ static void define_string(const char *name, const char *value) static void define_constants(void) { define_number("K_BIND_EVENT", (duk_double_t)K_BIND_EVENT); define_number("K_BIND_IPC", (duk_double_t)K_BIND_IPC); define_number("K_BIND_ONOFF", (duk_double_t)K_BIND_ONOFF); define_number("K_BIND_FORCE", (duk_double_t)K_BIND_FORCE); define_number("K_BIND_SHUTDOWN", (duk_double_t)K_BIND_SHUTDOWN); define_number("K_BIND_RPC", (duk_double_t)K_BIND_RPC); define_number("K_BIND_ALIAS", (duk_double_t)K_BIND_ALIAS); define_number("K_BIND_INPUT", (duk_double_t)K_BIND_INPUT); define_number("K_BROADCAST", (duk_double_t)K_BROADCAST); define_string("whoami", user->record.name); } Loading @@ -878,8 +815,6 @@ int setup_js(void) define_func("exec", js_mwexec, 1); define_func("say", js_say, 1); define_func("wholist", js_wholist, 0); define_func("rpc", js_rpc, 3); define_func("ipc", js_ipc, 2); define_func("urlget", js_urlget, 1); define_func("beep", js_beep, 1); define_func("input", js_input, 1); Loading src/client/js.h +0 −3 Original line number Diff line number Diff line Loading @@ -15,13 +15,10 @@ enum bindtype { K_BIND = 0, K_BIND_EVENT, K_BIND_ONOFF, K_BIND_IPC, K_BIND_FORCE, K_BIND_SHUTDOWN, K_BIND_ALIAS, K_BIND_RPC, K_BIND_INPUT }; #define K_BROADCAST 1 #endif /* JS_H */ Loading
mwjs.rst +0 −20 Original line number Diff line number Diff line Loading @@ -22,10 +22,6 @@ The following symbols are defined in the global scope for ``MWJS`` scripts: A string containing the name of the current ``Milliways`` user. `K_BROADCAST` A type specifier to be used in `rpc()` and `ipc()` calls (see below). BIND TYPES ========== Loading @@ -36,10 +32,6 @@ The following constants can be used with the `bind` and `unbind` functions (see ``bind(K_BIND_EVENT, handler)`` hooks a user-defined function named in the string `handler` to be called when certain events occur. `K_BIND_IPC` ``bind(K_BIND_IPC, )`` - To be documented. `K_BIND_ONOFF` ``bind(K_BIND_ONOFF, )`` - To be documented. Loading @@ -52,10 +44,6 @@ The following constants can be used with the `bind` and `unbind` functions (see ``bind(K_BIND_SHUTDOWN, )`` - To be documented. `K_BIND_RPC` ``bind(K_BIND_RPC, )`` - To be documented. `K_BIND_ALIAS` ``bind(K_BIND_ALIAS, )`` - To be documented. Loading Loading @@ -100,14 +88,6 @@ The following functions are defined in the global scope of ``MWJS`` scripts. Note that the wholist is currently not guaranteed to be available on joining the talker and so the value returned from `wholist()` could be `undefined`. `rpc()` To be documented. `ipc()` To be documented. `urlget(url)` Takes a URL string, fetches it, and returns the contents of the response. Loading
src/client/js-duk.c +1 −66 Original line number Diff line number Diff line Loading @@ -40,10 +40,8 @@ struct binding { const struct binding bindings[] = { { K_BIND, 1, &bind_list, "Bind" }, { K_BIND_ALIAS, 1, &alias_list, "Alias" }, { K_BIND_RPC, 1, &rpc_list, "RPC bind" }, { K_BIND_EVENT, 0, &event_list, "Event bind" }, { K_BIND_ONOFF, 0, &onoff_list, "Check on/off bind" }, { K_BIND_IPC, 0, &ipc_list, "IPC bind" }, { K_BIND_FORCE, 0, &force_list, "Force bind" }, { K_BIND_SHUTDOWN, 0, &shutdown_list, "Shutdown bind" }, { K_BIND_INPUT, 0, &eventin_list, "Input event bind" }, Loading Loading @@ -251,62 +249,6 @@ static duk_ret_t js_wholist(duk_context *cx) return 1; /* Array is returned at top of stack */ } static duk_ret_t js_rpc(duk_context *cx) { const char *username = NULL; const char *rpc_type = NULL; const char *msg = NULL; int broadcast = 0; if (duk_is_undefined(cx, -1) || duk_is_undefined(cx, -2) || duk_is_undefined(cx, -3)) { fprintf(stderr, "mwjs error: rpc() expects 3 arguments\n"); return DUK_RET_SYNTAX_ERROR; } if (duk_is_number(cx, -3)) { if (duk_get_int(cx, -3) == K_BROADCAST) broadcast = 1; } else if (duk_is_string(cx, -3)) { username = duk_get_string(cx, -3); } rpc_type = duk_safe_to_string(cx, -2); msg = duk_safe_to_string(cx, -1); if((!broadcast && username[0] == '\0') || rpc_type[0] == '\0') { fprintf(stderr, "Error: javascript rpc(): invalid arguments - [%s] [%s]", (broadcast ? "K_BROADCAST" : username), rpc_type); return DUK_RET_ERROR; } sendrpc(username, rpc_type, msg, broadcast); return 0; } static duk_ret_t js_ipc(duk_context *cx) { const char *username = NULL; const char *msg = NULL; int broadcast = 0; if (duk_is_undefined(cx, -1) || duk_is_undefined(cx, -2)) { fprintf(stderr, "mwjs error: ipc() expects 2 arguments\n"); return DUK_RET_SYNTAX_ERROR; } if (duk_is_number(cx, -2)) { if (duk_get_int(cx, -2) == K_BROADCAST) broadcast = 1; } else if (duk_is_string(cx, -2)) { username = duk_get_string(cx, -2); } msg = duk_safe_to_string(cx, -1); if (broadcast == 0 && (!username || username[0] == '\0')) { fprintf(stderr, "mwjs error: ipc() expects either a username or K_BROADCAST\n"); return DUK_RET_ERROR; } sendipc(username, msg, broadcast); return 0; } struct urlget { duk_context *cx; duk_idx_t nchunks; Loading Loading @@ -477,8 +419,7 @@ static duk_ret_t js_bind(duk_context *cx) } else if (duk_is_number(cx, -3)) { bind_type = duk_get_int_default(cx, -3, -1); if (bind_type == K_BIND || bind_type == K_BIND_ALIAS || bind_type == K_BIND_RPC) { bind_type == K_BIND_ALIAS) { bind_name = duk_get_string(cx, -2); } else { duk_pop(cx); Loading Loading @@ -675,7 +616,6 @@ static duk_ret_t js_dbquery(duk_context *cx) return 1; } int js_isrunning(void) { return (interrupt == 0 && timeout_event != NULL); Loading Loading @@ -850,14 +790,11 @@ static void define_string(const char *name, const char *value) static void define_constants(void) { define_number("K_BIND_EVENT", (duk_double_t)K_BIND_EVENT); define_number("K_BIND_IPC", (duk_double_t)K_BIND_IPC); define_number("K_BIND_ONOFF", (duk_double_t)K_BIND_ONOFF); define_number("K_BIND_FORCE", (duk_double_t)K_BIND_FORCE); define_number("K_BIND_SHUTDOWN", (duk_double_t)K_BIND_SHUTDOWN); define_number("K_BIND_RPC", (duk_double_t)K_BIND_RPC); define_number("K_BIND_ALIAS", (duk_double_t)K_BIND_ALIAS); define_number("K_BIND_INPUT", (duk_double_t)K_BIND_INPUT); define_number("K_BROADCAST", (duk_double_t)K_BROADCAST); define_string("whoami", user->record.name); } Loading @@ -878,8 +815,6 @@ int setup_js(void) define_func("exec", js_mwexec, 1); define_func("say", js_say, 1); define_func("wholist", js_wholist, 0); define_func("rpc", js_rpc, 3); define_func("ipc", js_ipc, 2); define_func("urlget", js_urlget, 1); define_func("beep", js_beep, 1); define_func("input", js_input, 1); Loading
src/client/js.h +0 −3 Original line number Diff line number Diff line Loading @@ -15,13 +15,10 @@ enum bindtype { K_BIND = 0, K_BIND_EVENT, K_BIND_ONOFF, K_BIND_IPC, K_BIND_FORCE, K_BIND_SHUTDOWN, K_BIND_ALIAS, K_BIND_RPC, K_BIND_INPUT }; #define K_BROADCAST 1 #endif /* JS_H */