mirror of
https://github.com/weechat/weechat.git
synced 2026-06-12 14:14:48 +02:00
plugins: move scripting API constants to plugin-script.c
This commit is contained in:
@@ -5395,6 +5395,8 @@ weechat_guile_api_upgrade_close (SCM upgrade_file)
|
||||
void
|
||||
weechat_guile_api_module_init (void *data)
|
||||
{
|
||||
char str_const[256];
|
||||
int i;
|
||||
#if SCM_MAJOR_VERSION >= 3 || (SCM_MAJOR_VERSION == 2 && SCM_MINOR_VERSION >= 2)
|
||||
/* Guile >= 2.2 */
|
||||
scm_t_port_type *port_type;
|
||||
@@ -5642,92 +5644,15 @@ weechat_guile_api_module_init (void *data)
|
||||
API_DEF_FUNC(upgrade_close, 1);
|
||||
|
||||
/* interface constants */
|
||||
scm_c_define ("weechat:WEECHAT_RC_OK", scm_from_int (WEECHAT_RC_OK));
|
||||
scm_c_define ("weechat:WEECHAT_RC_OK_EAT", scm_from_int (WEECHAT_RC_OK_EAT));
|
||||
scm_c_define ("weechat:WEECHAT_RC_ERROR", scm_from_int (WEECHAT_RC_ERROR));
|
||||
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_READ_OK", scm_from_int (WEECHAT_CONFIG_READ_OK));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_READ_MEMORY_ERROR", scm_from_int (WEECHAT_CONFIG_READ_MEMORY_ERROR));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_READ_FILE_NOT_FOUND", scm_from_int (WEECHAT_CONFIG_READ_FILE_NOT_FOUND));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_WRITE_OK", scm_from_int (WEECHAT_CONFIG_WRITE_OK));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_WRITE_ERROR", scm_from_int (WEECHAT_CONFIG_WRITE_ERROR));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_WRITE_MEMORY_ERROR", scm_from_int (WEECHAT_CONFIG_WRITE_MEMORY_ERROR));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_OPTION_SET_OK_CHANGED", scm_from_int (WEECHAT_CONFIG_OPTION_SET_OK_CHANGED));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE", scm_from_int (WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_OPTION_SET_ERROR", scm_from_int (WEECHAT_CONFIG_OPTION_SET_ERROR));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND", scm_from_int (WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET", scm_from_int (WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_OPTION_UNSET_OK_RESET", scm_from_int (WEECHAT_CONFIG_OPTION_UNSET_OK_RESET));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED", scm_from_int (WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED));
|
||||
scm_c_define ("weechat:WEECHAT_CONFIG_OPTION_UNSET_ERROR", scm_from_int (WEECHAT_CONFIG_OPTION_UNSET_ERROR));
|
||||
|
||||
scm_c_define ("weechat:WEECHAT_LIST_POS_SORT", scm_from_locale_string (WEECHAT_LIST_POS_SORT));
|
||||
scm_c_define ("weechat:WEECHAT_LIST_POS_BEGINNING", scm_from_locale_string (WEECHAT_LIST_POS_BEGINNING));
|
||||
scm_c_define ("weechat:WEECHAT_LIST_POS_END", scm_from_locale_string (WEECHAT_LIST_POS_END));
|
||||
|
||||
scm_c_define ("weechat:WEECHAT_HOTLIST_LOW", scm_from_locale_string (WEECHAT_HOTLIST_LOW));
|
||||
scm_c_define ("weechat:WEECHAT_HOTLIST_MESSAGE", scm_from_locale_string (WEECHAT_HOTLIST_MESSAGE));
|
||||
scm_c_define ("weechat:WEECHAT_HOTLIST_PRIVATE", scm_from_locale_string (WEECHAT_HOTLIST_PRIVATE));
|
||||
scm_c_define ("weechat:WEECHAT_HOTLIST_HIGHLIGHT", scm_from_locale_string (WEECHAT_HOTLIST_HIGHLIGHT));
|
||||
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_PROCESS_RUNNING", scm_from_int (WEECHAT_HOOK_PROCESS_RUNNING));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_PROCESS_ERROR", scm_from_int (WEECHAT_HOOK_PROCESS_ERROR));
|
||||
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_CONNECT_OK", scm_from_int (WEECHAT_HOOK_CONNECT_OK));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND", scm_from_int (WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND", scm_from_int (WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED", scm_from_int (WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_CONNECT_PROXY_ERROR", scm_from_int (WEECHAT_HOOK_CONNECT_PROXY_ERROR));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR", scm_from_int (WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR", scm_from_int (WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR", scm_from_int (WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_CONNECT_MEMORY_ERROR", scm_from_int (WEECHAT_HOOK_CONNECT_MEMORY_ERROR));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_CONNECT_TIMEOUT", scm_from_int (WEECHAT_HOOK_CONNECT_TIMEOUT));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_CONNECT_SOCKET_ERROR", scm_from_int (WEECHAT_HOOK_CONNECT_SOCKET_ERROR));
|
||||
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_SIGNAL_STRING", scm_from_locale_string (WEECHAT_HOOK_SIGNAL_STRING));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_SIGNAL_INT", scm_from_locale_string (WEECHAT_HOOK_SIGNAL_INT));
|
||||
scm_c_define ("weechat:WEECHAT_HOOK_SIGNAL_POINTER", scm_from_locale_string (WEECHAT_HOOK_SIGNAL_POINTER));
|
||||
|
||||
scm_c_export ("weechat:WEECHAT_RC_OK",
|
||||
"weechat:WEECHAT_RC_OK_EAT",
|
||||
"weechat:WEECHAT_RC_ERROR",
|
||||
"weechat:WEECHAT_CONFIG_READ_OK",
|
||||
"weechat:WEECHAT_CONFIG_READ_MEMORY_ERROR",
|
||||
"weechat:WEECHAT_CONFIG_READ_FILE_NOT_FOUND",
|
||||
"weechat:WEECHAT_CONFIG_WRITE_OK",
|
||||
"weechat:WEECHAT_CONFIG_WRITE_ERROR",
|
||||
"weechat:WEECHAT_CONFIG_WRITE_MEMORY_ERROR",
|
||||
"weechat:WEECHAT_CONFIG_OPTION_SET_OK_CHANGED",
|
||||
"weechat:WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE",
|
||||
"weechat:WEECHAT_CONFIG_OPTION_SET_ERROR",
|
||||
"weechat:WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND",
|
||||
"weechat:WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET",
|
||||
"weechat:WEECHAT_CONFIG_OPTION_UNSET_OK_RESET",
|
||||
"weechat:WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED",
|
||||
"weechat:WEECHAT_CONFIG_OPTION_UNSET_ERROR",
|
||||
"weechat:WEECHAT_LIST_POS_SORT",
|
||||
"weechat:WEECHAT_LIST_POS_BEGINNING",
|
||||
"weechat:WEECHAT_LIST_POS_END",
|
||||
"weechat:WEECHAT_HOTLIST_LOW",
|
||||
"weechat:WEECHAT_HOTLIST_MESSAGE",
|
||||
"weechat:WEECHAT_HOTLIST_PRIVATE",
|
||||
"weechat:WEECHAT_HOTLIST_HIGHLIGHT",
|
||||
"weechat:WEECHAT_HOOK_PROCESS_RUNNING",
|
||||
"weechat:WEECHAT_HOOK_PROCESS_ERROR",
|
||||
"weechat:WEECHAT_HOOK_CONNECT_OK",
|
||||
"weechat:WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND",
|
||||
"weechat:WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND",
|
||||
"weechat:WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED",
|
||||
"weechat:WEECHAT_HOOK_CONNECT_PROXY_ERROR",
|
||||
"weechat:WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR",
|
||||
"weechat:WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR",
|
||||
"weechat:WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR",
|
||||
"weechat:WEECHAT_HOOK_CONNECT_MEMORY_ERROR",
|
||||
"weechat:WEECHAT_HOOK_CONNECT_TIMEOUT",
|
||||
"weechat:WEECHAT_HOOK_CONNECT_SOCKET_ERROR",
|
||||
"weechat:WEECHAT_HOOK_SIGNAL_STRING",
|
||||
"weechat:WEECHAT_HOOK_SIGNAL_INT",
|
||||
"weechat:WEECHAT_HOOK_SIGNAL_POINTER",
|
||||
NULL);
|
||||
for (i = 0; weechat_script_constants[i].name; i++)
|
||||
{
|
||||
snprintf (str_const, sizeof (str_const),
|
||||
"weechat:%s", weechat_script_constants[i].name);
|
||||
scm_c_define (
|
||||
str_const,
|
||||
(weechat_script_constants[i].value_string) ?
|
||||
scm_from_locale_string (weechat_script_constants[i].value_string) :
|
||||
scm_from_int (weechat_script_constants[i].value_integer));
|
||||
scm_c_export (str_const, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,12 +43,6 @@ extern "C"
|
||||
weechat_obj->Set( \
|
||||
v8::String::New(#__name), \
|
||||
v8::FunctionTemplate::New(weechat_js_api_##__name));
|
||||
#define API_DEF_CONST_INT(__name) \
|
||||
weechat_obj->Set(v8::String::New(#__name), \
|
||||
v8::Integer::New(__name));
|
||||
#define API_DEF_CONST_STR(__name) \
|
||||
weechat_obj->Set(v8::String::New(#__name), \
|
||||
v8::String::New(__name));
|
||||
#define API_FUNC(__name) \
|
||||
static v8::Handle<v8::Value> \
|
||||
weechat_js_api_##__name(const v8::Arguments &args)
|
||||
@@ -5320,57 +5314,28 @@ API_FUNC(upgrade_close)
|
||||
void
|
||||
WeechatJsV8::loadLibs()
|
||||
{
|
||||
int i;
|
||||
|
||||
v8::Local<v8::ObjectTemplate> weechat_obj = v8::ObjectTemplate::New();
|
||||
|
||||
/* constants */
|
||||
API_DEF_CONST_INT(WEECHAT_RC_OK);
|
||||
API_DEF_CONST_INT(WEECHAT_RC_OK_EAT);
|
||||
API_DEF_CONST_INT(WEECHAT_RC_ERROR);
|
||||
/* interface constants */
|
||||
for (i = 0; weechat_script_constants[i].name; i++)
|
||||
{
|
||||
if (weechat_script_constants[i].value_string)
|
||||
{
|
||||
weechat_obj->Set(
|
||||
v8::String::New(weechat_script_constants[i].name),
|
||||
v8::String::New(weechat_script_constants[i].value_string));
|
||||
}
|
||||
else
|
||||
{
|
||||
weechat_obj->Set(
|
||||
v8::String::New(weechat_script_constants[i].name),
|
||||
v8::Integer::New(weechat_script_constants[i].value_integer));
|
||||
}
|
||||
}
|
||||
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_READ_OK);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_READ_MEMORY_ERROR);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_READ_FILE_NOT_FOUND);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_WRITE_OK);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_WRITE_ERROR);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_WRITE_MEMORY_ERROR);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_SET_OK_CHANGED);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_SET_ERROR);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_UNSET_OK_RESET);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED);
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_UNSET_ERROR);
|
||||
|
||||
API_DEF_CONST_STR(WEECHAT_LIST_POS_SORT);
|
||||
API_DEF_CONST_STR(WEECHAT_LIST_POS_BEGINNING);
|
||||
API_DEF_CONST_STR(WEECHAT_LIST_POS_END);
|
||||
|
||||
API_DEF_CONST_STR(WEECHAT_HOTLIST_LOW);
|
||||
API_DEF_CONST_STR(WEECHAT_HOTLIST_MESSAGE);
|
||||
API_DEF_CONST_STR(WEECHAT_HOTLIST_PRIVATE);
|
||||
API_DEF_CONST_STR(WEECHAT_HOTLIST_HIGHLIGHT);
|
||||
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_PROCESS_RUNNING);
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_PROCESS_ERROR);
|
||||
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_OK);
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND);
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND);
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED);
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_PROXY_ERROR);
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR);
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR);
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR);
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_MEMORY_ERROR);
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_TIMEOUT);
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_SOCKET_ERROR);
|
||||
|
||||
API_DEF_CONST_STR(WEECHAT_HOOK_SIGNAL_STRING);
|
||||
API_DEF_CONST_STR(WEECHAT_HOOK_SIGNAL_INT);
|
||||
API_DEF_CONST_STR(WEECHAT_HOOK_SIGNAL_POINTER);
|
||||
|
||||
/* functions */
|
||||
/* interface functions */
|
||||
API_DEF_FUNC(register);
|
||||
API_DEF_FUNC(plugin_get_name);
|
||||
API_DEF_FUNC(charset_set);
|
||||
|
||||
@@ -36,10 +36,6 @@
|
||||
#include "weechat-lua.h"
|
||||
|
||||
|
||||
#define API_DEF_CONST_INT(__name) \
|
||||
{ #__name, __name, NULL }
|
||||
#define API_DEF_CONST_STR(__name) \
|
||||
{ #__name, 0, __name }
|
||||
#define API_DEF_FUNC(__name) \
|
||||
{ #__name, &weechat_lua_api_##__name }
|
||||
#define API_FUNC(__name) \
|
||||
@@ -5966,58 +5962,5 @@ const struct luaL_Reg weechat_lua_api_funcs[] = {
|
||||
API_DEF_FUNC(upgrade_write_object),
|
||||
API_DEF_FUNC(upgrade_read),
|
||||
API_DEF_FUNC(upgrade_close),
|
||||
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
const struct t_lua_const weechat_lua_api_consts[] =
|
||||
{
|
||||
API_DEF_CONST_INT(WEECHAT_RC_OK),
|
||||
API_DEF_CONST_INT(WEECHAT_RC_OK_EAT),
|
||||
API_DEF_CONST_INT(WEECHAT_RC_ERROR),
|
||||
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_READ_OK),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_READ_MEMORY_ERROR),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_READ_FILE_NOT_FOUND),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_WRITE_OK),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_WRITE_ERROR),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_WRITE_MEMORY_ERROR),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_SET_OK_CHANGED),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_SET_ERROR),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_UNSET_OK_RESET),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED),
|
||||
API_DEF_CONST_INT(WEECHAT_CONFIG_OPTION_UNSET_ERROR),
|
||||
|
||||
API_DEF_CONST_STR(WEECHAT_LIST_POS_SORT),
|
||||
API_DEF_CONST_STR(WEECHAT_LIST_POS_BEGINNING),
|
||||
API_DEF_CONST_STR(WEECHAT_LIST_POS_END),
|
||||
|
||||
API_DEF_CONST_STR(WEECHAT_HOTLIST_LOW),
|
||||
API_DEF_CONST_STR(WEECHAT_HOTLIST_MESSAGE),
|
||||
API_DEF_CONST_STR(WEECHAT_HOTLIST_PRIVATE),
|
||||
API_DEF_CONST_STR(WEECHAT_HOTLIST_HIGHLIGHT),
|
||||
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_PROCESS_RUNNING),
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_PROCESS_ERROR),
|
||||
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_OK),
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND),
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND),
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED),
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_PROXY_ERROR),
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR),
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR),
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR),
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_MEMORY_ERROR),
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_TIMEOUT),
|
||||
API_DEF_CONST_INT(WEECHAT_HOOK_CONNECT_SOCKET_ERROR),
|
||||
|
||||
API_DEF_CONST_STR(WEECHAT_HOOK_SIGNAL_STRING),
|
||||
API_DEF_CONST_STR(WEECHAT_HOOK_SIGNAL_INT),
|
||||
API_DEF_CONST_STR(WEECHAT_HOOK_SIGNAL_POINTER),
|
||||
|
||||
{ NULL, 0, NULL }
|
||||
{ NULL, NULL },
|
||||
};
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
#define WEECHAT_PLUGIN_LUA_API_H
|
||||
|
||||
extern struct luaL_Reg weechat_lua_api_funcs[];
|
||||
extern struct t_lua_const weechat_lua_api_consts[];
|
||||
|
||||
extern int weechat_lua_api_buffer_input_data_cb (const void *pointer,
|
||||
void *data,
|
||||
|
||||
@@ -422,25 +422,6 @@ weechat_lua_exec (struct t_plugin_script *script, int ret_type,
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
/*
|
||||
* Adds a constant.
|
||||
*/
|
||||
|
||||
void
|
||||
weechat_lua_add_constant (lua_State *L, struct t_lua_const *ptr_const)
|
||||
{
|
||||
lua_pushstring (L, ptr_const->name);
|
||||
if (ptr_const->str_value)
|
||||
lua_pushstring (L, ptr_const->str_value);
|
||||
else
|
||||
#if LUA_VERSION_NUM >= 503
|
||||
lua_pushinteger (L, ptr_const->int_value);
|
||||
#else
|
||||
lua_pushnumber (L, ptr_const->int_value);
|
||||
#endif /* LUA_VERSION_NUM >= 503 */
|
||||
lua_settable (L, -3);
|
||||
}
|
||||
|
||||
/*
|
||||
* Called when a constant is modified.
|
||||
*/
|
||||
@@ -459,8 +440,7 @@ weechat_lua_newindex (lua_State *L)
|
||||
|
||||
void
|
||||
weechat_lua_register_lib (lua_State *L, const char *libname,
|
||||
const luaL_Reg *lua_api_funcs,
|
||||
struct t_lua_const lua_api_consts[])
|
||||
const luaL_Reg *lua_api_funcs)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -482,10 +462,21 @@ weechat_lua_register_lib (lua_State *L, const char *libname,
|
||||
lua_pushliteral (L, "__index");
|
||||
lua_newtable (L);
|
||||
|
||||
for (i= 0; lua_api_consts[i].name; i++)
|
||||
/* define constants */
|
||||
for (i = 0; weechat_script_constants[i].name; i++)
|
||||
{
|
||||
weechat_lua_add_constant (L, &lua_api_consts[i]);
|
||||
lua_pushstring (L, weechat_script_constants[i].name);
|
||||
if (weechat_script_constants[i].value_string)
|
||||
lua_pushstring (L, weechat_script_constants[i].value_string);
|
||||
else
|
||||
#if LUA_VERSION_NUM >= 503
|
||||
lua_pushinteger (L, weechat_script_constants[i].value_integer);
|
||||
#else
|
||||
lua_pushnumber (L, weechat_script_constants[i].value_integer);
|
||||
#endif /* LUA_VERSION_NUM >= 503 */
|
||||
lua_settable (L, -3);
|
||||
}
|
||||
|
||||
lua_settable (L, -3);
|
||||
|
||||
lua_pushliteral (L, "__newindex");
|
||||
@@ -572,8 +563,7 @@ weechat_lua_load (const char *filename, const char *code)
|
||||
#endif /* LUA_VERSION_NUM */
|
||||
|
||||
weechat_lua_register_lib (lua_current_interpreter, "weechat",
|
||||
weechat_lua_api_funcs,
|
||||
weechat_lua_api_consts);
|
||||
weechat_lua_api_funcs);
|
||||
|
||||
#ifdef LUA_VERSION_NUM
|
||||
if (luaL_dostring (lua_current_interpreter, lua_redirect_output) != 0)
|
||||
|
||||
@@ -27,13 +27,6 @@
|
||||
|
||||
#define LUA_CURRENT_SCRIPT_NAME ((lua_current_script) ? lua_current_script->name : "-")
|
||||
|
||||
struct t_lua_const
|
||||
{
|
||||
char *name;
|
||||
int int_value;
|
||||
char *str_value;
|
||||
};
|
||||
|
||||
extern struct t_weechat_plugin *weechat_lua_plugin;
|
||||
|
||||
extern struct t_plugin_script_data lua_data;
|
||||
@@ -59,7 +52,6 @@ extern void *weechat_lua_exec (struct t_plugin_script *script,
|
||||
const char *function,
|
||||
const char *format, void **argv);
|
||||
extern void weechat_lua_register_lib (lua_State *L, const char *libname,
|
||||
const luaL_Reg *lua_api_funcs,
|
||||
struct t_lua_const lua_api_consts[]);
|
||||
const luaL_Reg *lua_api_funcs);
|
||||
|
||||
#endif /* WEECHAT_PLUGIN_LUA_H */
|
||||
|
||||
@@ -5674,6 +5674,8 @@ void
|
||||
weechat_perl_api_init (pTHX)
|
||||
{
|
||||
HV *stash;
|
||||
int i;
|
||||
char str_const[256];
|
||||
|
||||
newXS ("DynaLoader::boot_DynaLoader", boot_DynaLoader, __FILE__);
|
||||
newXS ("weechat::__output__", weechat_perl_output, "weechat");
|
||||
@@ -5900,50 +5902,15 @@ weechat_perl_api_init (pTHX)
|
||||
|
||||
/* interface constants */
|
||||
stash = gv_stashpv ("weechat", TRUE);
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_RC_OK", newSViv (WEECHAT_RC_OK));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_RC_OK_EAT", newSViv (WEECHAT_RC_OK_EAT));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_RC_ERROR", newSViv (WEECHAT_RC_ERROR));
|
||||
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_READ_OK", newSViv (WEECHAT_CONFIG_READ_OK));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_READ_MEMORY_ERROR", newSViv (WEECHAT_CONFIG_READ_MEMORY_ERROR));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_READ_FILE_NOT_FOUND", newSViv (WEECHAT_CONFIG_READ_FILE_NOT_FOUND));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_WRITE_OK", newSViv (WEECHAT_CONFIG_WRITE_OK));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_WRITE_ERROR", newSViv (WEECHAT_CONFIG_WRITE_ERROR));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_WRITE_MEMORY_ERROR", newSViv (WEECHAT_CONFIG_WRITE_MEMORY_ERROR));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_OPTION_SET_OK_CHANGED", newSViv (WEECHAT_CONFIG_OPTION_SET_OK_CHANGED));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE", newSViv (WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_OPTION_SET_ERROR", newSViv (WEECHAT_CONFIG_OPTION_SET_ERROR));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND", newSViv (WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET", newSViv (WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_OPTION_UNSET_OK_RESET", newSViv (WEECHAT_CONFIG_OPTION_UNSET_OK_RESET));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED", newSViv (WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_CONFIG_OPTION_UNSET_ERROR", newSViv (WEECHAT_CONFIG_OPTION_UNSET_ERROR));
|
||||
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_LIST_POS_SORT", newSVpv (WEECHAT_LIST_POS_SORT, PL_na));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_LIST_POS_BEGINNING", newSVpv (WEECHAT_LIST_POS_BEGINNING, PL_na));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_LIST_POS_END", newSVpv (WEECHAT_LIST_POS_END, PL_na));
|
||||
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOTLIST_LOW", newSVpv (WEECHAT_HOTLIST_LOW, PL_na));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOTLIST_MESSAGE", newSVpv (WEECHAT_HOTLIST_MESSAGE, PL_na));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOTLIST_PRIVATE", newSVpv (WEECHAT_HOTLIST_PRIVATE, PL_na));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOTLIST_HIGHLIGHT", newSVpv (WEECHAT_HOTLIST_HIGHLIGHT, PL_na));
|
||||
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_PROCESS_RUNNING", newSViv (WEECHAT_HOOK_PROCESS_RUNNING));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_PROCESS_ERROR", newSViv (WEECHAT_HOOK_PROCESS_ERROR));
|
||||
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_CONNECT_OK", newSViv (WEECHAT_HOOK_CONNECT_OK));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND", newSViv (WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND", newSViv (WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED", newSViv (WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_CONNECT_PROXY_ERROR", newSViv (WEECHAT_HOOK_CONNECT_PROXY_ERROR));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR", newSViv (WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR", newSViv (WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR", newSViv (WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_CONNECT_MEMORY_ERROR", newSViv (WEECHAT_HOOK_CONNECT_MEMORY_ERROR));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_CONNECT_TIMEOUT", newSViv (WEECHAT_HOOK_CONNECT_TIMEOUT));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_CONNECT_SOCKET_ERROR", newSViv (WEECHAT_HOOK_CONNECT_SOCKET_ERROR));
|
||||
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_SIGNAL_STRING", newSVpv (WEECHAT_HOOK_SIGNAL_STRING, PL_na));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_SIGNAL_INT", newSVpv (WEECHAT_HOOK_SIGNAL_INT, PL_na));
|
||||
newCONSTSUB (stash, "weechat::WEECHAT_HOOK_SIGNAL_POINTER", newSVpv (WEECHAT_HOOK_SIGNAL_POINTER, PL_na));
|
||||
for (i = 0; weechat_script_constants[i].name; i++)
|
||||
{
|
||||
snprintf (str_const, sizeof (str_const),
|
||||
"weechat::%s", weechat_script_constants[i].name);
|
||||
newCONSTSUB (
|
||||
stash,
|
||||
str_const,
|
||||
(weechat_script_constants[i].value_string) ?
|
||||
newSVpv (weechat_script_constants[i].value_string, PL_na) :
|
||||
newSViv (weechat_script_constants[i].value_integer));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -328,67 +328,33 @@ const zend_function_entry weechat_functions[] = {
|
||||
|
||||
PHP_MINIT_FUNCTION(weechat)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* make C compiler happy */
|
||||
(void) type;
|
||||
|
||||
/* Register integer constants */
|
||||
#define PHP_WEECHAT_CONSTANT(NAME) \
|
||||
zend_register_long_constant(#NAME, sizeof(#NAME)-1, (NAME), CONST_CS | CONST_PERSISTENT, module_number)
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_RC_OK);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_RC_OK_EAT);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_RC_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_READ_OK);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_READ_MEMORY_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_READ_FILE_NOT_FOUND);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_WRITE_OK);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_WRITE_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_WRITE_MEMORY_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_OPTION_SET_OK_CHANGED);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_OPTION_SET_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_OPTION_UNSET_OK_RESET);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_OPTION_UNSET_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_PROCESS_RUNNING);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_PROCESS_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_OK);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_PROXY_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_MEMORY_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_TIMEOUT);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_SOCKET_ERROR);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_GNUTLS_CB_VERIFY_CERT);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_CONNECT_GNUTLS_CB_SET_CERT);
|
||||
#undef PHP_WEECHAT_CONSTANT
|
||||
|
||||
/* Register string constants */
|
||||
#define PHP_WEECHAT_CONSTANT(NAME) \
|
||||
zend_register_string_constant(#NAME, sizeof(#NAME)-1, (NAME), CONST_CS | CONST_PERSISTENT, module_number)
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_PLUGIN_API_VERSION);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_CONFIG_OPTION_NULL);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_LIST_POS_SORT);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_LIST_POS_BEGINNING);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_LIST_POS_END);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HASHTABLE_INTEGER);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HASHTABLE_STRING);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HASHTABLE_POINTER);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HASHTABLE_BUFFER);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HASHTABLE_TIME);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOTLIST_LOW);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOTLIST_MESSAGE);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOTLIST_PRIVATE);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOTLIST_HIGHLIGHT);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_SIGNAL_STRING);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_SIGNAL_INT);
|
||||
PHP_WEECHAT_CONSTANT(WEECHAT_HOOK_SIGNAL_POINTER);
|
||||
#undef PHP_WEECHAT_CONSTANT
|
||||
/* interface constants */
|
||||
for (i = 0; weechat_script_constants[i].name; i++)
|
||||
{
|
||||
if (weechat_script_constants[i].value_string)
|
||||
{
|
||||
zend_register_string_constant(
|
||||
weechat_script_constants[i].name,
|
||||
strlen (weechat_script_constants[i].name),
|
||||
weechat_script_constants[i].value_string,
|
||||
CONST_CS | CONST_PERSISTENT,
|
||||
module_number);
|
||||
}
|
||||
else
|
||||
{
|
||||
zend_register_long_constant(
|
||||
weechat_script_constants[i].name,
|
||||
strlen (weechat_script_constants[i].name),
|
||||
weechat_script_constants[i].value_integer,
|
||||
CONST_CS | CONST_PERSISTENT,
|
||||
module_number);
|
||||
}
|
||||
}
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,51 @@
|
||||
#include "plugin-script-config.h"
|
||||
|
||||
|
||||
struct t_weechat_script_constant weechat_script_constants[] = {
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_RC_OK),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_RC_OK_EAT),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_RC_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_READ_OK),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_READ_MEMORY_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_READ_FILE_NOT_FOUND),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_WRITE_OK),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_WRITE_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_WRITE_MEMORY_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_OPTION_SET_OK_CHANGED),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_OPTION_SET_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_OPTION_UNSET_OK_RESET),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_CONFIG_OPTION_UNSET_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_STR(WEECHAT_LIST_POS_SORT),
|
||||
WEECHAT_SCRIPT_CONST_STR(WEECHAT_LIST_POS_BEGINNING),
|
||||
WEECHAT_SCRIPT_CONST_STR(WEECHAT_LIST_POS_END),
|
||||
WEECHAT_SCRIPT_CONST_STR(WEECHAT_HOTLIST_LOW),
|
||||
WEECHAT_SCRIPT_CONST_STR(WEECHAT_HOTLIST_MESSAGE),
|
||||
WEECHAT_SCRIPT_CONST_STR(WEECHAT_HOTLIST_PRIVATE),
|
||||
WEECHAT_SCRIPT_CONST_STR(WEECHAT_HOTLIST_HIGHLIGHT),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_PROCESS_RUNNING),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_PROCESS_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_CONNECT_OK),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_CONNECT_PROXY_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_CONNECT_MEMORY_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_CONNECT_TIMEOUT),
|
||||
WEECHAT_SCRIPT_CONST_INT(WEECHAT_HOOK_CONNECT_SOCKET_ERROR),
|
||||
WEECHAT_SCRIPT_CONST_STR(WEECHAT_HOOK_SIGNAL_STRING),
|
||||
WEECHAT_SCRIPT_CONST_STR(WEECHAT_HOOK_SIGNAL_INT),
|
||||
WEECHAT_SCRIPT_CONST_STR(WEECHAT_HOOK_SIGNAL_POINTER),
|
||||
{ NULL, 0, NULL },
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Displays name and version of interpreter used.
|
||||
*/
|
||||
|
||||
+25
-11
@@ -20,17 +20,6 @@
|
||||
#ifndef WEECHAT_PLUGIN_PLUGIN_SCRIPT_H
|
||||
#define WEECHAT_PLUGIN_PLUGIN_SCRIPT_H
|
||||
|
||||
/* constants which defines return types for weechat_<lang>_exec functions */
|
||||
|
||||
enum t_weechat_script_exec_type
|
||||
{
|
||||
WEECHAT_SCRIPT_EXEC_INT = 0,
|
||||
WEECHAT_SCRIPT_EXEC_STRING,
|
||||
WEECHAT_SCRIPT_EXEC_POINTER,
|
||||
WEECHAT_SCRIPT_EXEC_HASHTABLE,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
};
|
||||
|
||||
#define WEECHAT_SCRIPT_HASHTABLE_DEFAULT_SIZE 16
|
||||
|
||||
#define WEECHAT_SCRIPT_EVAL_NAME "__eval__"
|
||||
@@ -53,6 +42,29 @@ enum t_weechat_script_exec_type
|
||||
__function, \
|
||||
(__current_script) ? __current_script : "-");
|
||||
|
||||
#define WEECHAT_SCRIPT_CONST_INT(__name) \
|
||||
{ #__name, __name, NULL }
|
||||
#define WEECHAT_SCRIPT_CONST_STR(__name) \
|
||||
{ #__name, 0, __name }
|
||||
\
|
||||
/* constants which defines return types for weechat_<lang>_exec functions */
|
||||
|
||||
enum t_weechat_script_exec_type
|
||||
{
|
||||
WEECHAT_SCRIPT_EXEC_INT = 0,
|
||||
WEECHAT_SCRIPT_EXEC_STRING,
|
||||
WEECHAT_SCRIPT_EXEC_POINTER,
|
||||
WEECHAT_SCRIPT_EXEC_HASHTABLE,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
};
|
||||
|
||||
struct t_weechat_script_constant
|
||||
{
|
||||
char *name; /* constant name */
|
||||
int value_integer; /* value as integer */
|
||||
char *value_string; /* value as string */
|
||||
};
|
||||
|
||||
struct t_plugin_script
|
||||
{
|
||||
/* script variables */
|
||||
@@ -113,6 +125,8 @@ struct t_plugin_script_data
|
||||
void (*unload_all) ();
|
||||
};
|
||||
|
||||
extern struct t_weechat_script_constant weechat_script_constants[];
|
||||
|
||||
extern void plugin_script_display_interpreter (struct t_weechat_plugin *plugin,
|
||||
int indent);
|
||||
extern void plugin_script_init (struct t_weechat_plugin *weechat_plugin,
|
||||
|
||||
@@ -609,6 +609,7 @@ end:
|
||||
static PyObject *weechat_python_init_module_weechat ()
|
||||
{
|
||||
PyObject *weechat_module, *weechat_dict;
|
||||
int i;
|
||||
|
||||
weechat_module = PyModule_Create (&moduleDef);
|
||||
|
||||
@@ -623,52 +624,23 @@ static PyObject *weechat_python_init_module_weechat ()
|
||||
|
||||
/* define some constants */
|
||||
weechat_dict = PyModule_GetDict (weechat_module);
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_RC_OK", PyLong_FromLong ((long)WEECHAT_RC_OK));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_RC_OK_EAT", PyLong_FromLong ((long)WEECHAT_RC_OK_EAT));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_RC_ERROR", PyLong_FromLong ((long)WEECHAT_RC_ERROR));
|
||||
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_READ_OK", PyLong_FromLong ((long)WEECHAT_CONFIG_READ_OK));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_READ_MEMORY_ERROR", PyLong_FromLong ((long)WEECHAT_CONFIG_READ_MEMORY_ERROR));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_READ_FILE_NOT_FOUND", PyLong_FromLong ((long)WEECHAT_CONFIG_READ_FILE_NOT_FOUND));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_WRITE_OK", PyLong_FromLong ((long)WEECHAT_CONFIG_WRITE_OK));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_WRITE_ERROR", PyLong_FromLong ((long)WEECHAT_CONFIG_WRITE_ERROR));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_WRITE_MEMORY_ERROR", PyLong_FromLong ((long)WEECHAT_CONFIG_WRITE_MEMORY_ERROR));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_OPTION_SET_OK_CHANGED", PyLong_FromLong ((long)WEECHAT_CONFIG_OPTION_SET_OK_CHANGED));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE", PyLong_FromLong ((long)WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_OPTION_SET_ERROR", PyLong_FromLong ((long)WEECHAT_CONFIG_OPTION_SET_ERROR));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND", PyLong_FromLong ((long)WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET", PyLong_FromLong ((long)WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_OPTION_UNSET_OK_RESET", PyLong_FromLong ((long)WEECHAT_CONFIG_OPTION_UNSET_OK_RESET));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED", PyLong_FromLong ((long)WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_CONFIG_OPTION_UNSET_ERROR", PyLong_FromLong ((long)WEECHAT_CONFIG_OPTION_UNSET_ERROR));
|
||||
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_LIST_POS_SORT", PyUnicode_FromString (WEECHAT_LIST_POS_SORT));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_LIST_POS_BEGINNING", PyUnicode_FromString (WEECHAT_LIST_POS_BEGINNING));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_LIST_POS_END", PyUnicode_FromString (WEECHAT_LIST_POS_END));
|
||||
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOTLIST_LOW", PyUnicode_FromString (WEECHAT_HOTLIST_LOW));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOTLIST_MESSAGE", PyUnicode_FromString (WEECHAT_HOTLIST_MESSAGE));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOTLIST_PRIVATE", PyUnicode_FromString (WEECHAT_HOTLIST_PRIVATE));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOTLIST_HIGHLIGHT", PyUnicode_FromString (WEECHAT_HOTLIST_HIGHLIGHT));
|
||||
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_PROCESS_RUNNING", PyLong_FromLong ((long)WEECHAT_HOOK_PROCESS_RUNNING));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_PROCESS_ERROR", PyLong_FromLong ((long)WEECHAT_HOOK_PROCESS_ERROR));
|
||||
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_CONNECT_OK", PyLong_FromLong ((long)WEECHAT_HOOK_CONNECT_OK));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND", PyLong_FromLong ((long)WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND", PyLong_FromLong ((long)WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED", PyLong_FromLong ((long)WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_CONNECT_PROXY_ERROR", PyLong_FromLong ((long)WEECHAT_HOOK_CONNECT_PROXY_ERROR));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR", PyLong_FromLong ((long)WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR", PyLong_FromLong ((long)WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR", PyLong_FromLong ((long)WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_CONNECT_MEMORY_ERROR", PyLong_FromLong ((long)WEECHAT_HOOK_CONNECT_MEMORY_ERROR));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_CONNECT_TIMEOUT", PyLong_FromLong ((long)WEECHAT_HOOK_CONNECT_TIMEOUT));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_CONNECT_SOCKET_ERROR", PyLong_FromLong ((long)WEECHAT_HOOK_CONNECT_SOCKET_ERROR));
|
||||
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_SIGNAL_STRING", PyUnicode_FromString (WEECHAT_HOOK_SIGNAL_STRING));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_SIGNAL_INT", PyUnicode_FromString (WEECHAT_HOOK_SIGNAL_INT));
|
||||
PyDict_SetItemString (weechat_dict, "WEECHAT_HOOK_SIGNAL_POINTER", PyUnicode_FromString (WEECHAT_HOOK_SIGNAL_POINTER));
|
||||
for (i = 0; weechat_script_constants[i].name; i++)
|
||||
{
|
||||
if (weechat_script_constants[i].value_string)
|
||||
{
|
||||
PyDict_SetItemString (
|
||||
weechat_dict,
|
||||
weechat_script_constants[i].name,
|
||||
PyUnicode_FromString (weechat_script_constants[i].value_string));
|
||||
}
|
||||
else
|
||||
{
|
||||
PyDict_SetItemString (
|
||||
weechat_dict,
|
||||
weechat_script_constants[i].name,
|
||||
PyLong_FromLong ((long)weechat_script_constants[i].value_integer));
|
||||
}
|
||||
}
|
||||
|
||||
return weechat_module;
|
||||
}
|
||||
|
||||
@@ -6926,53 +6926,20 @@ weechat_ruby_api_upgrade_close (VALUE class, VALUE upgrade_file)
|
||||
void
|
||||
weechat_ruby_api_init (VALUE ruby_mWeechat)
|
||||
{
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_RC_OK", INT2NUM(WEECHAT_RC_OK));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_RC_OK_EAT", INT2NUM(WEECHAT_RC_OK_EAT));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_RC_ERROR", INT2NUM(WEECHAT_RC_ERROR));
|
||||
int i;
|
||||
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_READ_OK", INT2NUM(WEECHAT_CONFIG_READ_OK));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_READ_MEMORY_ERROR", INT2NUM(WEECHAT_CONFIG_READ_MEMORY_ERROR));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_READ_FILE_NOT_FOUND", INT2NUM(WEECHAT_CONFIG_READ_FILE_NOT_FOUND));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_WRITE_OK", INT2NUM(WEECHAT_CONFIG_WRITE_OK));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_WRITE_ERROR", INT2NUM(WEECHAT_CONFIG_WRITE_ERROR));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_WRITE_MEMORY_ERROR", INT2NUM(WEECHAT_CONFIG_WRITE_MEMORY_ERROR));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_OPTION_SET_OK_CHANGED", INT2NUM(WEECHAT_CONFIG_OPTION_SET_OK_CHANGED));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE", INT2NUM(WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_OPTION_SET_ERROR", INT2NUM(WEECHAT_CONFIG_OPTION_SET_ERROR));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND", INT2NUM(WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET", INT2NUM(WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_OPTION_UNSET_OK_RESET", INT2NUM(WEECHAT_CONFIG_OPTION_UNSET_OK_RESET));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED", INT2NUM(WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_CONFIG_OPTION_UNSET_ERROR", INT2NUM(WEECHAT_CONFIG_OPTION_UNSET_ERROR));
|
||||
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_LIST_POS_SORT", rb_str_new2 (WEECHAT_LIST_POS_SORT));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_LIST_POS_BEGINNING", rb_str_new2 (WEECHAT_LIST_POS_BEGINNING));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_LIST_POS_END", rb_str_new2 (WEECHAT_LIST_POS_END));
|
||||
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOTLIST_LOW", rb_str_new2 (WEECHAT_HOTLIST_LOW));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOTLIST_MESSAGE", rb_str_new2 (WEECHAT_HOTLIST_MESSAGE));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOTLIST_PRIVATE", rb_str_new2 (WEECHAT_HOTLIST_PRIVATE));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOTLIST_HIGHLIGHT", rb_str_new2 (WEECHAT_HOTLIST_HIGHLIGHT));
|
||||
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_PROCESS_RUNNING", INT2NUM(WEECHAT_HOOK_PROCESS_RUNNING));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_PROCESS_ERROR", INT2NUM(WEECHAT_HOOK_PROCESS_ERROR));
|
||||
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_CONNECT_OK", INT2NUM(WEECHAT_HOOK_CONNECT_OK));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND", INT2NUM(WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND", INT2NUM(WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED", INT2NUM(WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_CONNECT_PROXY_ERROR", INT2NUM(WEECHAT_HOOK_CONNECT_PROXY_ERROR));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR", INT2NUM(WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR", INT2NUM(WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR", INT2NUM(WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_CONNECT_MEMORY_ERROR", INT2NUM(WEECHAT_HOOK_CONNECT_MEMORY_ERROR));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_CONNECT_TIMEOUT", INT2NUM(WEECHAT_HOOK_CONNECT_TIMEOUT));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_CONNECT_SOCKET_ERROR", INT2NUM(WEECHAT_HOOK_CONNECT_SOCKET_ERROR));
|
||||
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_SIGNAL_STRING", rb_str_new2 (WEECHAT_HOOK_SIGNAL_STRING));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_SIGNAL_INT", rb_str_new2 (WEECHAT_HOOK_SIGNAL_INT));
|
||||
rb_define_const (ruby_mWeechat, "WEECHAT_HOOK_SIGNAL_POINTER", rb_str_new2 (WEECHAT_HOOK_SIGNAL_POINTER));
|
||||
/* interface constants */
|
||||
for (i = 0; weechat_script_constants[i].name; i++)
|
||||
{
|
||||
rb_define_const (
|
||||
ruby_mWeechat,
|
||||
weechat_script_constants[i].name,
|
||||
(weechat_script_constants[i].value_string) ?
|
||||
rb_str_new2 (weechat_script_constants[i].value_string) :
|
||||
INT2NUM(weechat_script_constants[i].value_integer));
|
||||
}
|
||||
|
||||
/* interface functions */
|
||||
API_DEF_FUNC(register, 7);
|
||||
API_DEF_FUNC(plugin_get_name, 1);
|
||||
API_DEF_FUNC(charset_set, 1);
|
||||
|
||||
@@ -5650,6 +5650,9 @@ API_FUNC(upgrade_close)
|
||||
|
||||
void weechat_tcl_api_init (Tcl_Interp *interp)
|
||||
{
|
||||
char str_const[256];
|
||||
int i;
|
||||
|
||||
/* standard initializer */
|
||||
Tcl_Init (interp);
|
||||
|
||||
@@ -5658,55 +5661,25 @@ void weechat_tcl_api_init (Tcl_Interp *interp)
|
||||
/* interface constants */
|
||||
/* set variables, TODO: make them unmodifiable (thru Tcl_TraceVar) ? */
|
||||
/* NOTE: it is not good for performance to convert "defines" to Tcl_Obj */
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_RC_OK", NULL, Tcl_NewIntObj (WEECHAT_RC_OK), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_RC_OK_EAT", NULL, Tcl_NewIntObj (WEECHAT_RC_OK_EAT), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_RC_ERROR", NULL, Tcl_NewIntObj (WEECHAT_RC_ERROR), 0);
|
||||
for (i = 0; weechat_script_constants[i].name; i++)
|
||||
{
|
||||
snprintf (str_const, sizeof (str_const),
|
||||
"::weechat::%s", weechat_script_constants[i].name);
|
||||
if (weechat_script_constants[i].value_string)
|
||||
{
|
||||
Tcl_SetVar (interp, str_const,
|
||||
weechat_script_constants[i].value_string, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
Tcl_SetVar2Ex (interp, str_const, NULL,
|
||||
Tcl_NewIntObj (weechat_script_constants[i].value_integer), 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* add specific constant for `NULL` in tcl */
|
||||
Tcl_SetVar (interp, "::weechat::WEECHAT_NULL", WEECHAT_NULL_STRING, 0);
|
||||
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_READ_OK", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_READ_OK), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_READ_MEMORY_ERROR", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_READ_MEMORY_ERROR), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_READ_FILE_NOT_FOUND", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_READ_FILE_NOT_FOUND), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_WRITE_OK", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_WRITE_OK), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_WRITE_ERROR", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_WRITE_ERROR), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_WRITE_MEMORY_ERROR", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_WRITE_MEMORY_ERROR), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_OPTION_SET_OK_CHANGED", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_OPTION_SET_OK_CHANGED), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_OPTION_SET_ERROR", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_OPTION_SET_ERROR), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_OPTION_UNSET_OK_RESET", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_OPTION_UNSET_OK_RESET), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_CONFIG_OPTION_UNSET_ERROR", NULL, Tcl_NewIntObj (WEECHAT_CONFIG_OPTION_UNSET_ERROR), 0);
|
||||
|
||||
Tcl_SetVar (interp, "::weechat::WEECHAT_LIST_POS_SORT", WEECHAT_LIST_POS_SORT, 0);
|
||||
Tcl_SetVar (interp, "::weechat::WEECHAT_LIST_POS_BEGINNING", WEECHAT_LIST_POS_BEGINNING, 0);
|
||||
Tcl_SetVar (interp, "::weechat::WEECHAT_LIST_POS_END", WEECHAT_LIST_POS_END, 0);
|
||||
|
||||
Tcl_SetVar (interp, "::weechat::WEECHAT_HOTLIST_LOW", WEECHAT_HOTLIST_LOW, 0);
|
||||
Tcl_SetVar (interp, "::weechat::WEECHAT_HOTLIST_MESSAGE", WEECHAT_HOTLIST_MESSAGE, 0);
|
||||
Tcl_SetVar (interp, "::weechat::WEECHAT_HOTLIST_PRIVATE", WEECHAT_HOTLIST_PRIVATE, 0);
|
||||
Tcl_SetVar (interp, "::weechat::WEECHAT_HOTLIST_HIGHLIGHT", WEECHAT_HOTLIST_HIGHLIGHT, 0);
|
||||
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_PROCESS_RUNNING", NULL, Tcl_NewIntObj (WEECHAT_HOOK_PROCESS_RUNNING), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_PROCESS_ERROR", NULL, Tcl_NewIntObj (WEECHAT_HOOK_PROCESS_ERROR), 0);
|
||||
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_CONNECT_OK", NULL, Tcl_NewIntObj (WEECHAT_HOOK_CONNECT_OK), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND", NULL, Tcl_NewIntObj (WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND", NULL, Tcl_NewIntObj (WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED", NULL, Tcl_NewIntObj (WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_CONNECT_PROXY_ERROR", NULL, Tcl_NewIntObj (WEECHAT_HOOK_CONNECT_PROXY_ERROR), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR", NULL, Tcl_NewIntObj (WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR", NULL, Tcl_NewIntObj (WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR", NULL, Tcl_NewIntObj (WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_CONNECT_MEMORY_ERROR", NULL, Tcl_NewIntObj (WEECHAT_HOOK_CONNECT_MEMORY_ERROR), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_CONNECT_TIMEOUT", NULL, Tcl_NewIntObj (WEECHAT_HOOK_CONNECT_TIMEOUT), 0);
|
||||
Tcl_SetVar2Ex (interp, "::weechat::WEECHAT_HOOK_CONNECT_SOCKET_ERROR", NULL, Tcl_NewIntObj (WEECHAT_HOOK_CONNECT_SOCKET_ERROR), 0);
|
||||
|
||||
Tcl_SetVar (interp, "::weechat::WEECHAT_HOOK_SIGNAL_STRING", WEECHAT_HOOK_SIGNAL_STRING, 0);
|
||||
Tcl_SetVar (interp, "::weechat::WEECHAT_HOOK_SIGNAL_INT", WEECHAT_HOOK_SIGNAL_INT, 0);
|
||||
Tcl_SetVar (interp, "::weechat::WEECHAT_HOOK_SIGNAL_POINTER", WEECHAT_HOOK_SIGNAL_POINTER, 0);
|
||||
|
||||
/* interface functions */
|
||||
API_DEF_FUNC(register);
|
||||
API_DEF_FUNC(plugin_get_name);
|
||||
|
||||
@@ -41,8 +41,7 @@ from typing import Dict, Union
|
||||
"""
|
||||
|
||||
CONSTANT_RE = (
|
||||
r"( |\|) `(?P<constant>WEECHAT_[A-Z0-9_]+)` "
|
||||
r"\((?P<type>(string|integer))\)(?: \+)?"
|
||||
r"WEECHAT_SCRIPT_CONST_(?P<type>(INT|STR))\((?P<constant>WEECHAT_[A-Z0-9_]+)\)"
|
||||
)
|
||||
|
||||
FUNCTION_RE = r"""\[source,python\]
|
||||
@@ -53,25 +52,20 @@ def (?P<function>\w+)(?P<args>[^)]*)(?P<return>\) -> [^:]+:) \.\.\.(?P<example>.
|
||||
|
||||
|
||||
def print_stub_constants() -> None:
|
||||
"""Print constants, extracted from the Scripting guide."""
|
||||
types = {
|
||||
"integer": "int",
|
||||
"string": "str",
|
||||
}
|
||||
"""Print constants, extracted from the plugin-script.c."""
|
||||
constant_pattern = re.compile(CONSTANT_RE)
|
||||
with open(
|
||||
DOC_DIR / "weechat_scripting.en.adoc", encoding="utf-8"
|
||||
) as scripting_file, open(
|
||||
SRC_DIR / "plugins" / "plugin-script.c", encoding="utf-8"
|
||||
) as plugin_script_file, open(
|
||||
SRC_DIR / "plugins" / "weechat-plugin.h", encoding="utf-8"
|
||||
) as plugin_header_file:
|
||||
scripting = scripting_file.read()
|
||||
plugin_header = plugin_header_file.read()
|
||||
for match in constant_pattern.finditer(scripting):
|
||||
) as plugin_public_header_file:
|
||||
plugin_script = plugin_script_file.read()
|
||||
plugin_public_header = plugin_public_header_file.read()
|
||||
for match in constant_pattern.finditer(plugin_script):
|
||||
value_re = rf'^#define {match["constant"]} +(?P<value>[\w"-]+)$'
|
||||
value_match = re.search(value_re, plugin_header, re.MULTILINE)
|
||||
value_match = re.search(value_re, plugin_public_header, re.MULTILINE)
|
||||
value = f' = {value_match["value"]}' if value_match else ""
|
||||
|
||||
print(f'{match["constant"]}: {types[match["type"]]}{value}')
|
||||
print(f'{match["constant"]}: {match["type"].lower()}{value}')
|
||||
|
||||
|
||||
def print_stub_functions() -> None:
|
||||
|
||||
Reference in New Issue
Block a user