1
0
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:
Sébastien Helleu
2024-03-04 23:10:55 +01:00
parent 84437ab672
commit 81599b88d4
14 changed files with 215 additions and 503 deletions
+13 -88
View File
@@ -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);
}
}
+19 -54
View File
@@ -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);
+1 -58
View File
@@ -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 },
};
-1
View File
@@ -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,
+15 -25
View File
@@ -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)
+1 -9
View File
@@ -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 */
+13 -46
View File
@@ -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));
}
}
+24 -58
View File
@@ -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;
}
+45
View File
@@ -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
View File
@@ -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,
+18 -46
View File
@@ -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;
}
+12 -45
View File
@@ -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);
+19 -46
View File
@@ -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);
+10 -16
View File
@@ -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: