mirror of
https://github.com/weechat/weechat.git
synced 2026-06-12 14:14:48 +02:00
core: fix crash on plugin reload when using musl libs (closes #2052)
This commit is contained in:
@@ -40,6 +40,7 @@ New features::
|
||||
|
||||
Bug fixes::
|
||||
|
||||
* core: fix crash on plugin reload when using musl libs (issue #2052)
|
||||
* core: fix infinite loop in display when the chat area is too small (issue #2053)
|
||||
* core: fix value of buffer variable "num_history" when the value defined in option weechat.history.max_commands is reached
|
||||
* core: remove incorrect warning when binding keys kbd:[F10] to kbd:[F20] (issue #2039)
|
||||
|
||||
@@ -768,6 +768,7 @@ buflist_bar_item_end ()
|
||||
for (i = 0; i < BUFLIST_BAR_NUM_ITEMS; i++)
|
||||
{
|
||||
weechat_bar_item_remove (buflist_bar_item_buflist[i]);
|
||||
buflist_bar_item_buflist[i] = NULL;
|
||||
}
|
||||
|
||||
weechat_hashtable_free (buflist_hashtable_pointers);
|
||||
|
||||
@@ -844,6 +844,7 @@ buflist_config_free ()
|
||||
int i;
|
||||
|
||||
weechat_config_free (buflist_config_file);
|
||||
buflist_config_file = NULL;
|
||||
|
||||
if (buflist_config_signals_refresh)
|
||||
buflist_config_free_signals_refresh ();
|
||||
@@ -859,9 +860,18 @@ buflist_config_free ()
|
||||
}
|
||||
|
||||
if (buflist_config_format_buffer_eval)
|
||||
{
|
||||
free (buflist_config_format_buffer_eval);
|
||||
buflist_config_format_buffer_eval = NULL;
|
||||
}
|
||||
if (buflist_config_format_buffer_current_eval)
|
||||
{
|
||||
free (buflist_config_format_buffer_current_eval);
|
||||
buflist_config_format_buffer_current_eval = NULL;
|
||||
}
|
||||
if (buflist_config_format_hotlist_eval)
|
||||
{
|
||||
free (buflist_config_format_hotlist_eval);
|
||||
buflist_config_format_hotlist_eval = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -534,5 +534,12 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
buflist_config_write ();
|
||||
buflist_config_free ();
|
||||
|
||||
buflist_hdata_window = NULL;
|
||||
buflist_hdata_buffer = NULL;
|
||||
buflist_hdata_hotlist = NULL;
|
||||
buflist_hdata_bar = NULL;
|
||||
buflist_hdata_bar_item = NULL;
|
||||
buflist_hdata_bar_window = NULL;
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
@@ -639,11 +639,18 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
charset_config_write ();
|
||||
|
||||
weechat_config_free (charset_config_file);
|
||||
charset_config_file = NULL;
|
||||
|
||||
if (charset_terminal)
|
||||
{
|
||||
free (charset_terminal);
|
||||
charset_terminal = NULL;
|
||||
}
|
||||
if (charset_internal)
|
||||
{
|
||||
free (charset_internal);
|
||||
charset_internal = NULL;
|
||||
}
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
@@ -206,6 +206,7 @@ void
|
||||
exec_config_free ()
|
||||
{
|
||||
weechat_config_free (exec_config_file);
|
||||
exec_config_file = NULL;
|
||||
|
||||
if (exec_config_cmd_options)
|
||||
{
|
||||
|
||||
@@ -157,4 +157,5 @@ void
|
||||
fifo_config_free ()
|
||||
{
|
||||
weechat_config_free (fifo_config_file);
|
||||
fifo_config_file = NULL;
|
||||
}
|
||||
|
||||
@@ -367,6 +367,9 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_plugin = plugin;
|
||||
|
||||
fifo_quiet = 0;
|
||||
fifo_fd = -1;
|
||||
|
||||
if (!fifo_config_init ())
|
||||
return WEECHAT_RC_ERROR;
|
||||
|
||||
|
||||
@@ -248,4 +248,5 @@ void
|
||||
fset_bar_item_end ()
|
||||
{
|
||||
weechat_bar_item_remove (fset_bar_item_fset);
|
||||
fset_bar_item_fset = NULL;
|
||||
}
|
||||
|
||||
@@ -1654,9 +1654,21 @@ fset_buffer_init ()
|
||||
void
|
||||
fset_buffer_end ()
|
||||
{
|
||||
weechat_hashtable_free (fset_buffer_hashtable_pointers);
|
||||
fset_buffer_hashtable_pointers = NULL;
|
||||
if (fset_buffer)
|
||||
{
|
||||
weechat_buffer_close (fset_buffer);
|
||||
fset_buffer = NULL;
|
||||
}
|
||||
|
||||
weechat_hashtable_free (fset_buffer_hashtable_extra_vars);
|
||||
fset_buffer_hashtable_extra_vars = NULL;
|
||||
if (fset_buffer_hashtable_pointers)
|
||||
{
|
||||
weechat_hashtable_free (fset_buffer_hashtable_pointers);
|
||||
fset_buffer_hashtable_pointers = NULL;
|
||||
}
|
||||
|
||||
if (fset_buffer_hashtable_extra_vars)
|
||||
{
|
||||
weechat_hashtable_free (fset_buffer_hashtable_extra_vars);
|
||||
fset_buffer_hashtable_extra_vars = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1186,6 +1186,7 @@ void
|
||||
fset_config_free ()
|
||||
{
|
||||
weechat_config_free (fset_config_file);
|
||||
fset_config_file = NULL;
|
||||
|
||||
if (fset_config_auto_refresh)
|
||||
{
|
||||
|
||||
@@ -1934,4 +1934,9 @@ fset_option_end ()
|
||||
weechat_hashtable_free (fset_option_timer_options_changed);
|
||||
fset_option_timer_options_changed = NULL;
|
||||
}
|
||||
if (fset_option_timer_hook)
|
||||
{
|
||||
weechat_unhook (fset_option_timer_hook);
|
||||
fset_option_timer_hook = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1258,6 +1258,11 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_guile_plugin = plugin;
|
||||
|
||||
guile_quiet = 0;
|
||||
guile_eval_mode = 0;
|
||||
guile_eval_send_input = 0;
|
||||
guile_eval_exec_commands = 0;
|
||||
|
||||
/* set interpreter name and version */
|
||||
weechat_hashtable_set (plugin->variables, "interpreter_name",
|
||||
plugin->name);
|
||||
@@ -1354,12 +1359,22 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
|
||||
/* free some data */
|
||||
if (guile_action_install_list)
|
||||
{
|
||||
free (guile_action_install_list);
|
||||
guile_action_install_list = NULL;
|
||||
}
|
||||
if (guile_action_remove_list)
|
||||
{
|
||||
free (guile_action_remove_list);
|
||||
guile_action_remove_list = NULL;
|
||||
}
|
||||
if (guile_action_autoload_list)
|
||||
{
|
||||
free (guile_action_autoload_list);
|
||||
guile_action_autoload_list = NULL;
|
||||
}
|
||||
weechat_string_dyn_free (guile_buffer_output, 1);
|
||||
guile_buffer_output = NULL;
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
@@ -4106,6 +4106,7 @@ void
|
||||
irc_config_free ()
|
||||
{
|
||||
weechat_config_free (irc_config_file);
|
||||
irc_config_file = NULL;
|
||||
|
||||
if (irc_config_hook_config_nick_color_options)
|
||||
{
|
||||
|
||||
@@ -1340,4 +1340,5 @@ irc_list_end ()
|
||||
weechat_hashtable_free (irc_list_filter_hashtable_options);
|
||||
irc_list_filter_hashtable_options = NULL;
|
||||
}
|
||||
irc_list_hdata_list_channel = NULL;
|
||||
}
|
||||
|
||||
@@ -1307,9 +1307,18 @@ void
|
||||
irc_notify_end ()
|
||||
{
|
||||
if (irc_notify_timer_ison)
|
||||
{
|
||||
weechat_unhook (irc_notify_timer_ison);
|
||||
irc_notify_timer_ison = NULL;
|
||||
}
|
||||
if (irc_notify_timer_whois)
|
||||
{
|
||||
weechat_unhook (irc_notify_timer_whois);
|
||||
irc_notify_timer_whois = NULL;
|
||||
}
|
||||
if (irc_notify_hsignal)
|
||||
{
|
||||
weechat_unhook (irc_notify_hsignal);
|
||||
irc_notify_hsignal = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -673,6 +673,11 @@ irc_raw_end ()
|
||||
{
|
||||
irc_raw_message_free_all ();
|
||||
|
||||
if (irc_raw_buffer)
|
||||
{
|
||||
weechat_buffer_close (irc_raw_buffer);
|
||||
irc_raw_buffer = NULL;
|
||||
}
|
||||
if (irc_raw_filter)
|
||||
{
|
||||
free (irc_raw_filter);
|
||||
|
||||
@@ -193,6 +193,9 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_plugin = plugin;
|
||||
|
||||
irc_signal_quit_received = 0;
|
||||
irc_signal_upgrade_received = 0;
|
||||
|
||||
if (!irc_config_init ())
|
||||
return WEECHAT_RC_ERROR;
|
||||
|
||||
@@ -314,7 +317,10 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
(void) plugin;
|
||||
|
||||
if (irc_hook_timer)
|
||||
{
|
||||
weechat_unhook (irc_hook_timer);
|
||||
irc_hook_timer = NULL;
|
||||
}
|
||||
|
||||
if (irc_signal_upgrade_received)
|
||||
{
|
||||
|
||||
@@ -930,6 +930,11 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_js_plugin = plugin;
|
||||
|
||||
js_quiet = 0;
|
||||
js_eval_mode = 0;
|
||||
js_eval_send_input = 0;
|
||||
js_eval_exec_commands = 0;
|
||||
|
||||
/* set interpreter name and version */
|
||||
snprintf (str_interpreter, sizeof (str_interpreter),
|
||||
"%s (v8)", plugin->name);
|
||||
@@ -980,11 +985,20 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
|
||||
/* free some data */
|
||||
if (js_action_install_list)
|
||||
{
|
||||
free (js_action_install_list);
|
||||
js_action_install_list = NULL;
|
||||
}
|
||||
if (js_action_remove_list)
|
||||
{
|
||||
free (js_action_remove_list);
|
||||
js_action_remove_list = NULL;
|
||||
}
|
||||
if (js_action_autoload_list)
|
||||
{
|
||||
free (js_action_autoload_list);
|
||||
js_action_autoload_list = NULL;
|
||||
}
|
||||
/* weechat_string_dyn_free (js_buffer_output, 1); */
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
|
||||
@@ -780,4 +780,5 @@ void
|
||||
logger_config_free ()
|
||||
{
|
||||
weechat_config_free (logger_config_file);
|
||||
logger_config_file = NULL;
|
||||
}
|
||||
|
||||
@@ -1243,6 +1243,11 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_lua_plugin = plugin;
|
||||
|
||||
lua_quiet = 0;
|
||||
lua_eval_mode = 0;
|
||||
lua_eval_send_input = 0;
|
||||
lua_eval_exec_commands = 0;
|
||||
|
||||
/* set interpreter name and version */
|
||||
weechat_hashtable_set (plugin->variables, "interpreter_name",
|
||||
plugin->name);
|
||||
@@ -1304,12 +1309,22 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
|
||||
/* free some data */
|
||||
if (lua_action_install_list)
|
||||
{
|
||||
free (lua_action_install_list);
|
||||
lua_action_install_list = NULL;
|
||||
}
|
||||
if (lua_action_remove_list)
|
||||
{
|
||||
free (lua_action_remove_list);
|
||||
lua_action_remove_list = NULL;
|
||||
}
|
||||
if (lua_action_autoload_list)
|
||||
{
|
||||
free (lua_action_autoload_list);
|
||||
lua_action_autoload_list = NULL;
|
||||
}
|
||||
weechat_string_dyn_free (lua_buffer_output, 1);
|
||||
lua_buffer_output = NULL;
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
@@ -1264,6 +1264,11 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_perl_plugin = plugin;
|
||||
|
||||
perl_quiet = 0;
|
||||
perl_eval_mode = 0;
|
||||
perl_eval_send_input = 0;
|
||||
perl_eval_exec_commands = 0;
|
||||
|
||||
/* set interpreter name and version */
|
||||
weechat_hashtable_set (plugin->variables, "interpreter_name",
|
||||
plugin->name);
|
||||
@@ -1368,12 +1373,22 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
|
||||
/* free some data */
|
||||
if (perl_action_install_list)
|
||||
{
|
||||
free (perl_action_install_list);
|
||||
perl_action_install_list = NULL;
|
||||
}
|
||||
if (perl_action_remove_list)
|
||||
{
|
||||
free (perl_action_remove_list);
|
||||
perl_action_remove_list = NULL;
|
||||
}
|
||||
if (perl_action_autoload_list)
|
||||
{
|
||||
free (perl_action_autoload_list);
|
||||
perl_action_autoload_list = NULL;
|
||||
}
|
||||
weechat_string_dyn_free (perl_buffer_output, 1);
|
||||
perl_buffer_output = NULL;
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
@@ -1311,6 +1311,11 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_php_plugin = plugin;
|
||||
|
||||
php_quiet = 0;
|
||||
php_eval_mode = 0;
|
||||
php_eval_send_input = 0;
|
||||
php_eval_exec_commands = 0;
|
||||
|
||||
/* set interpreter name and version */
|
||||
weechat_hashtable_set (plugin->variables, "interpreter_name",
|
||||
plugin->name);
|
||||
@@ -1385,11 +1390,20 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
php_embed_shutdown ();
|
||||
|
||||
if (php_action_install_list)
|
||||
{
|
||||
free (php_action_install_list);
|
||||
php_action_install_list = NULL;
|
||||
}
|
||||
if (php_action_remove_list)
|
||||
{
|
||||
free (php_action_remove_list);
|
||||
php_action_remove_list = NULL;
|
||||
}
|
||||
if (php_action_autoload_list)
|
||||
{
|
||||
free (php_action_autoload_list);
|
||||
php_action_autoload_list = NULL;
|
||||
}
|
||||
/* weechat_string_dyn_free (php_buffer_output, 1); */
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
|
||||
@@ -1797,6 +1797,7 @@ plugin_script_end (struct t_weechat_plugin *weechat_plugin,
|
||||
/* write config file (file: "<language>.conf") */
|
||||
weechat_config_write (*(plugin_data->config_file));
|
||||
weechat_config_free (*(plugin_data->config_file));
|
||||
*(plugin_data->config_file) = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -1471,6 +1471,11 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_python_plugin = plugin;
|
||||
|
||||
python_quiet = 0;
|
||||
python_eval_mode = 0;
|
||||
python_eval_send_input = 0;
|
||||
python_eval_exec_commands = 0;
|
||||
|
||||
/* set interpreter name and version */
|
||||
weechat_hashtable_set (plugin->variables, "interpreter_name",
|
||||
plugin->name);
|
||||
@@ -1582,12 +1587,22 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
|
||||
/* free some data */
|
||||
if (python_action_install_list)
|
||||
{
|
||||
free (python_action_install_list);
|
||||
python_action_install_list = NULL;
|
||||
}
|
||||
if (python_action_remove_list)
|
||||
{
|
||||
free (python_action_remove_list);
|
||||
python_action_remove_list = NULL;
|
||||
}
|
||||
if (python_action_autoload_list)
|
||||
{
|
||||
free (python_action_autoload_list);
|
||||
python_action_autoload_list = NULL;
|
||||
}
|
||||
weechat_string_dyn_free (python_buffer_output, 1);
|
||||
python_buffer_output = NULL;
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
@@ -1460,6 +1460,7 @@ void
|
||||
relay_config_free ()
|
||||
{
|
||||
weechat_config_free (relay_config_file);
|
||||
relay_config_file = NULL;
|
||||
|
||||
if (relay_config_regex_allowed_ips)
|
||||
{
|
||||
|
||||
@@ -162,6 +162,9 @@ relay_network_set_priority ()
|
||||
void
|
||||
relay_network_init ()
|
||||
{
|
||||
relay_network_init_ok = 0;
|
||||
relay_network_init_tls_cert_key_ok = 0;
|
||||
|
||||
/* credentials */
|
||||
gnutls_certificate_allocate_credentials (&relay_gnutls_x509_cred);
|
||||
relay_network_set_tls_cert_key (0);
|
||||
|
||||
@@ -203,6 +203,8 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_plugin = plugin;
|
||||
|
||||
relay_signal_upgrade_received = 0;
|
||||
|
||||
if (!relay_config_init ())
|
||||
return WEECHAT_RC_ERROR;
|
||||
|
||||
@@ -240,7 +242,10 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
(void) plugin;
|
||||
|
||||
if (relay_hook_timer)
|
||||
{
|
||||
weechat_unhook (relay_hook_timer);
|
||||
relay_hook_timer = NULL;
|
||||
}
|
||||
|
||||
relay_config_write ();
|
||||
|
||||
@@ -254,7 +259,11 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
relay_server_free_all ();
|
||||
|
||||
if (relay_buffer)
|
||||
{
|
||||
weechat_buffer_close (relay_buffer);
|
||||
relay_buffer = NULL;
|
||||
}
|
||||
relay_buffer_selected_line = 0;
|
||||
|
||||
relay_client_free_all ();
|
||||
|
||||
|
||||
@@ -1336,6 +1336,11 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_ruby_plugin = plugin;
|
||||
|
||||
ruby_quiet = 0;
|
||||
ruby_eval_mode = 0;
|
||||
ruby_eval_send_input = 0;
|
||||
ruby_eval_exec_commands = 0;
|
||||
|
||||
/* set interpreter name and version */
|
||||
weechat_hashtable_set (plugin->variables, "interpreter_name",
|
||||
plugin->name);
|
||||
@@ -1439,12 +1444,22 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
|
||||
/* free some data */
|
||||
if (ruby_action_install_list)
|
||||
{
|
||||
free (ruby_action_install_list);
|
||||
ruby_action_install_list = NULL;
|
||||
}
|
||||
if (ruby_action_remove_list)
|
||||
{
|
||||
free (ruby_action_remove_list);
|
||||
ruby_action_remove_list = NULL;
|
||||
}
|
||||
if (ruby_action_autoload_list)
|
||||
{
|
||||
free (ruby_action_autoload_list);
|
||||
ruby_action_autoload_list = NULL;
|
||||
}
|
||||
weechat_string_dyn_free (ruby_buffer_output, 1);
|
||||
ruby_buffer_output = NULL;
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
@@ -840,4 +840,5 @@ void
|
||||
script_config_free ()
|
||||
{
|
||||
weechat_config_free (script_config_file);
|
||||
script_config_file = NULL;
|
||||
}
|
||||
|
||||
@@ -386,6 +386,27 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
/* make C compiler happy */
|
||||
(void) plugin;
|
||||
|
||||
if (script_loaded)
|
||||
{
|
||||
weechat_hashtable_free (script_loaded);
|
||||
script_loaded = NULL;
|
||||
}
|
||||
if (script_timer_refresh)
|
||||
{
|
||||
weechat_unhook (script_timer_refresh);
|
||||
script_timer_refresh = NULL;
|
||||
}
|
||||
|
||||
if (script_buffer)
|
||||
{
|
||||
weechat_buffer_close (script_buffer);
|
||||
script_buffer = NULL;
|
||||
}
|
||||
script_buffer_selected_line = 0;
|
||||
script_buffer_detail_script = NULL;
|
||||
script_buffer_detail_script_last_line = 0;
|
||||
script_buffer_detail_script_line_diff = -1;
|
||||
|
||||
script_mouse_end ();
|
||||
|
||||
script_config_write ();
|
||||
@@ -393,10 +414,16 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
script_repo_remove_all ();
|
||||
|
||||
if (script_repo_filter)
|
||||
{
|
||||
free (script_repo_filter);
|
||||
script_repo_filter = NULL;
|
||||
}
|
||||
|
||||
if (script_loaded)
|
||||
{
|
||||
weechat_hashtable_free (script_loaded);
|
||||
script_loaded = NULL;
|
||||
}
|
||||
|
||||
script_config_free ();
|
||||
|
||||
|
||||
@@ -654,9 +654,16 @@ void
|
||||
spell_config_free ()
|
||||
{
|
||||
weechat_config_free (spell_config_file);
|
||||
spell_config_file = NULL;
|
||||
|
||||
if (spell_commands_to_check)
|
||||
{
|
||||
weechat_string_free_split (spell_commands_to_check);
|
||||
spell_commands_to_check = NULL;
|
||||
}
|
||||
if (spell_length_commands_to_check)
|
||||
{
|
||||
free (spell_length_commands_to_check);
|
||||
spell_length_commands_to_check = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -501,5 +501,8 @@ void
|
||||
spell_speller_end ()
|
||||
{
|
||||
weechat_hashtable_free (spell_spellers);
|
||||
spell_spellers = NULL;
|
||||
|
||||
weechat_hashtable_free (spell_speller_buffer);
|
||||
spell_speller_buffer = NULL;
|
||||
}
|
||||
|
||||
@@ -1188,6 +1188,8 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_plugin = plugin;
|
||||
|
||||
spell_enabled = 0;
|
||||
|
||||
spell_warning_aspell_config ();
|
||||
|
||||
#ifdef USE_ENCHANT
|
||||
@@ -1260,10 +1262,15 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
#ifdef USE_ENCHANT
|
||||
/* release enchant broker */
|
||||
enchant_broker_free (broker);
|
||||
broker = NULL;
|
||||
#endif /* USE_ENCHANT */
|
||||
|
||||
if (spell_nick_completer)
|
||||
{
|
||||
free (spell_nick_completer);
|
||||
spell_nick_completer = NULL;
|
||||
}
|
||||
spell_len_nick_completer = 0;
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,6 @@ struct t_plugin_script *tcl_script_eval = NULL;
|
||||
int tcl_eval_mode = 0;
|
||||
int tcl_eval_send_input = 0;
|
||||
int tcl_eval_exec_commands = 0;
|
||||
struct t_gui_buffer *tcl_eval_buffer = NULL;
|
||||
|
||||
struct t_plugin_script *tcl_scripts = NULL;
|
||||
struct t_plugin_script *last_tcl_script = NULL;
|
||||
@@ -928,6 +927,11 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_tcl_plugin = plugin;
|
||||
|
||||
tcl_quiet = 0;
|
||||
tcl_eval_mode = 0;
|
||||
tcl_eval_send_input = 0;
|
||||
tcl_eval_exec_commands = 0;
|
||||
|
||||
/* set interpreter name and version */
|
||||
weechat_hashtable_set (plugin->variables, "interpreter_name",
|
||||
plugin->name);
|
||||
@@ -984,11 +988,20 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
|
||||
/* free some data */
|
||||
if (tcl_action_install_list)
|
||||
{
|
||||
free (tcl_action_install_list);
|
||||
tcl_action_install_list = NULL;
|
||||
}
|
||||
if (tcl_action_remove_list)
|
||||
{
|
||||
free (tcl_action_remove_list);
|
||||
tcl_action_remove_list = NULL;
|
||||
}
|
||||
if (tcl_action_autoload_list)
|
||||
{
|
||||
free (tcl_action_autoload_list);
|
||||
tcl_action_autoload_list = NULL;
|
||||
}
|
||||
/* weechat_string_dyn_free (tcl_buffer_output, 1); */
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
|
||||
@@ -388,6 +388,12 @@ trigger_buffer_display_trigger (struct t_trigger *trigger,
|
||||
void
|
||||
trigger_buffer_end ()
|
||||
{
|
||||
if (trigger_buffer)
|
||||
{
|
||||
weechat_buffer_close (trigger_buffer);
|
||||
trigger_buffer = NULL;
|
||||
}
|
||||
|
||||
if (trigger_buffer_filters)
|
||||
{
|
||||
weechat_string_free_split (trigger_buffer_filters);
|
||||
|
||||
@@ -1534,5 +1534,8 @@ void
|
||||
trigger_callback_end ()
|
||||
{
|
||||
if (trigger_callback_hashtable_options_conditions)
|
||||
{
|
||||
weechat_hashtable_free (trigger_callback_hashtable_options_conditions);
|
||||
trigger_callback_hashtable_options_conditions = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,6 +105,8 @@ struct t_trigger_context
|
||||
} \
|
||||
return __rc;
|
||||
|
||||
extern unsigned long trigger_context_id;
|
||||
|
||||
extern int trigger_callback_signal_cb (const void *pointer, void *data,
|
||||
const char *signal,
|
||||
const char *type_data,
|
||||
|
||||
@@ -831,4 +831,5 @@ void
|
||||
trigger_config_free ()
|
||||
{
|
||||
weechat_config_free (trigger_config_file);
|
||||
trigger_config_file = NULL;
|
||||
}
|
||||
|
||||
@@ -1391,6 +1391,8 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_plugin = plugin;
|
||||
|
||||
trigger_enabled = 1;
|
||||
|
||||
trigger_callback_init ();
|
||||
|
||||
trigger_command_init ();
|
||||
@@ -1427,6 +1429,7 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
trigger_free_all ();
|
||||
trigger_config_free ();
|
||||
trigger_callback_end ();
|
||||
trigger_context_id = 0;
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
@@ -218,4 +218,5 @@ void
|
||||
typing_config_free ()
|
||||
{
|
||||
weechat_config_free (typing_config_file);
|
||||
typing_config_file = NULL;
|
||||
}
|
||||
|
||||
@@ -580,6 +580,45 @@ typing_setup_hooks ()
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Removes all hooks.
|
||||
*/
|
||||
|
||||
void
|
||||
typing_remove_hooks ()
|
||||
{
|
||||
if (typing_signal_buffer_closing)
|
||||
{
|
||||
weechat_unhook (typing_signal_buffer_closing);
|
||||
typing_signal_buffer_closing = NULL;
|
||||
}
|
||||
if (typing_signal_input_text_changed)
|
||||
{
|
||||
weechat_unhook (typing_signal_input_text_changed);
|
||||
typing_signal_input_text_changed = NULL;
|
||||
}
|
||||
if (typing_modifier_input_text_for_buffer)
|
||||
{
|
||||
weechat_unhook (typing_modifier_input_text_for_buffer);
|
||||
typing_modifier_input_text_for_buffer = NULL;
|
||||
}
|
||||
if (typing_timer)
|
||||
{
|
||||
weechat_unhook (typing_timer);
|
||||
typing_timer = NULL;
|
||||
}
|
||||
if (typing_signal_typing_set_nick)
|
||||
{
|
||||
weechat_unhook (typing_signal_typing_set_nick);
|
||||
typing_signal_typing_set_nick = NULL;
|
||||
}
|
||||
if (typing_signal_typing_reset_buffer)
|
||||
{
|
||||
weechat_unhook (typing_signal_typing_reset_buffer);
|
||||
typing_signal_typing_reset_buffer = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Initializes typing plugin.
|
||||
*/
|
||||
@@ -615,6 +654,8 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
/* make C compiler happy */
|
||||
(void) plugin;
|
||||
|
||||
typing_remove_hooks ();
|
||||
|
||||
typing_config_write ();
|
||||
typing_config_free ();
|
||||
|
||||
|
||||
@@ -1838,6 +1838,8 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_plugin = plugin;
|
||||
|
||||
xfer_signal_upgrade_received = 0;
|
||||
|
||||
if (!xfer_config_init ())
|
||||
return WEECHAT_RC_ERROR;
|
||||
|
||||
@@ -1880,6 +1882,13 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
/* make C compiler happy */
|
||||
(void) plugin;
|
||||
|
||||
if (xfer_buffer)
|
||||
{
|
||||
weechat_buffer_close (xfer_buffer);
|
||||
xfer_buffer = NULL;
|
||||
}
|
||||
xfer_buffer_selected_line = 0;
|
||||
|
||||
xfer_config_write ();
|
||||
|
||||
if (xfer_signal_upgrade_received)
|
||||
@@ -1890,6 +1899,7 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
|
||||
xfer_free_all ();
|
||||
|
||||
weechat_config_free (xfer_config_file);
|
||||
xfer_config_file = NULL;
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user