mirror of
https://github.com/weechat/weechat.git
synced 2026-06-26 12:56:37 +02:00
api: do not expect any return value in callbacks change/delete of config_new_option (scripting API)
This commit is contained in:
@@ -1232,10 +1232,9 @@ weechat_guile_api_config_option_change_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1245,10 +1244,10 @@ weechat_guile_api_config_option_change_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *) weechat_guile_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_guile_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
@@ -1260,10 +1259,9 @@ weechat_guile_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1273,10 +1271,10 @@ weechat_guile_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *) weechat_guile_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_guile_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
|
||||
@@ -1149,10 +1149,9 @@ weechat_js_api_config_option_change_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1162,10 +1161,10 @@ weechat_js_api_config_option_change_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *)weechat_js_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_js_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
@@ -1177,10 +1176,9 @@ weechat_js_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1190,10 +1188,10 @@ weechat_js_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *)weechat_js_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_js_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
|
||||
@@ -1262,10 +1262,9 @@ weechat_lua_api_config_option_change_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1275,10 +1274,10 @@ weechat_lua_api_config_option_change_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *) weechat_lua_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_lua_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
@@ -1290,10 +1289,9 @@ weechat_lua_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1303,10 +1301,10 @@ weechat_lua_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *) weechat_lua_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_lua_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
|
||||
@@ -1203,10 +1203,9 @@ weechat_perl_api_config_option_change_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1216,10 +1215,10 @@ weechat_perl_api_config_option_change_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *) weechat_perl_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_perl_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
@@ -1231,10 +1230,9 @@ weechat_perl_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1244,10 +1242,10 @@ weechat_perl_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *) weechat_perl_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_perl_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
|
||||
@@ -186,12 +186,14 @@ API_FUNC(register)
|
||||
|
||||
static void
|
||||
weechat_php_cb (const void *pointer, void *data, void **func_argv,
|
||||
const char *func_types, int func_type, void *rc)
|
||||
const char *func_types, int ret_type, void *rc)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
const char *ptr_function, *ptr_data;
|
||||
void *ret;
|
||||
|
||||
ret = NULL;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
|
||||
@@ -202,20 +204,25 @@ weechat_php_cb (const void *pointer, void *data, void **func_argv,
|
||||
goto weechat_php_cb_err;
|
||||
}
|
||||
|
||||
ret = weechat_php_exec (script, func_type, ptr_function,
|
||||
ret = weechat_php_exec (script, ret_type, ptr_function,
|
||||
func_types, func_argv);
|
||||
|
||||
if (!ret)
|
||||
if ((ret_type != WEECHAT_SCRIPT_EXEC_IGNORE) && !ret)
|
||||
{
|
||||
goto weechat_php_cb_err;
|
||||
}
|
||||
|
||||
if (func_type == WEECHAT_SCRIPT_EXEC_INT)
|
||||
if (ret_type == WEECHAT_SCRIPT_EXEC_IGNORE)
|
||||
{
|
||||
if (ret)
|
||||
free (ret);
|
||||
}
|
||||
else if (ret_type == WEECHAT_SCRIPT_EXEC_INT)
|
||||
{
|
||||
*((int *)rc) = *((int *)ret);
|
||||
free (ret);
|
||||
}
|
||||
else if (func_type == WEECHAT_SCRIPT_EXEC_HASHTABLE)
|
||||
else if (ret_type == WEECHAT_SCRIPT_EXEC_HASHTABLE)
|
||||
{
|
||||
*((struct t_hashtable **)rc) = (struct t_hashtable *)ret;
|
||||
}
|
||||
@@ -226,11 +233,16 @@ weechat_php_cb (const void *pointer, void *data, void **func_argv,
|
||||
return;
|
||||
|
||||
weechat_php_cb_err:
|
||||
if (func_type == WEECHAT_SCRIPT_EXEC_INT)
|
||||
if (ret_type == WEECHAT_SCRIPT_EXEC_IGNORE)
|
||||
{
|
||||
if (ret)
|
||||
free (ret);
|
||||
}
|
||||
else if (ret_type == WEECHAT_SCRIPT_EXEC_INT)
|
||||
{
|
||||
*((int *)rc) = WEECHAT_RC_ERROR;
|
||||
}
|
||||
else if (func_type == WEECHAT_SCRIPT_EXEC_HASHTABLE)
|
||||
else if (ret_type == WEECHAT_SCRIPT_EXEC_HASHTABLE)
|
||||
{
|
||||
*((struct t_hashtable **)rc) = NULL;
|
||||
}
|
||||
@@ -1273,13 +1285,12 @@ weechat_php_api_config_option_change_cb (const void *pointer,
|
||||
void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
int *rc;
|
||||
void *func_argv[2];
|
||||
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
weechat_php_cb (pointer, data, func_argv, "ss",
|
||||
WEECHAT_SCRIPT_EXEC_INT, &rc);
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1287,13 +1298,12 @@ weechat_php_api_config_option_delete_cb (const void *pointer,
|
||||
void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
int rc;
|
||||
void *func_argv[2];
|
||||
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
weechat_php_cb (pointer, data, func_argv, "ss",
|
||||
WEECHAT_SCRIPT_EXEC_INT, &rc);
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE, NULL);
|
||||
}
|
||||
|
||||
API_FUNC(config_new_option)
|
||||
|
||||
@@ -1195,10 +1195,9 @@ weechat_python_api_config_option_change_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1208,10 +1207,10 @@ weechat_python_api_config_option_change_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *) weechat_python_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_python_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
@@ -1223,10 +1222,9 @@ weechat_python_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1236,10 +1234,10 @@ weechat_python_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *) weechat_python_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_python_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
|
||||
@@ -1437,10 +1437,9 @@ weechat_ruby_api_config_option_change_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1450,10 +1449,10 @@ weechat_ruby_api_config_option_change_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *) weechat_ruby_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_ruby_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
@@ -1465,10 +1464,9 @@ weechat_ruby_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1478,10 +1476,10 @@ weechat_ruby_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *) weechat_ruby_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_ruby_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
|
||||
@@ -1410,10 +1410,9 @@ weechat_tcl_api_config_option_change_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1423,10 +1422,10 @@ weechat_tcl_api_config_option_change_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *) weechat_tcl_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_tcl_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
@@ -1438,10 +1437,9 @@ weechat_tcl_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
struct t_plugin_script *script;
|
||||
void *func_argv[2];
|
||||
void *func_argv[2], *rc;
|
||||
char empty_arg[1] = { '\0' };
|
||||
const char *ptr_function, *ptr_data;
|
||||
int *rc;
|
||||
|
||||
script = (struct t_plugin_script *)pointer;
|
||||
plugin_script_get_function_and_data (data, &ptr_function, &ptr_data);
|
||||
@@ -1451,10 +1449,10 @@ weechat_tcl_api_config_option_delete_cb (const void *pointer, void *data,
|
||||
func_argv[0] = (ptr_data) ? (char *)ptr_data : empty_arg;
|
||||
func_argv[1] = (char *)API_PTR2STR(option);
|
||||
|
||||
rc = (int *) weechat_tcl_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
rc = weechat_tcl_exec (script,
|
||||
WEECHAT_SCRIPT_EXEC_IGNORE,
|
||||
ptr_function,
|
||||
"ss", func_argv);
|
||||
|
||||
if (rc)
|
||||
free (rc);
|
||||
|
||||
Reference in New Issue
Block a user