1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-01 07:16:37 +02:00

Close all buffers created by a plugin when plugin is unloaded (bug #22978)

This commit is contained in:
Sebastien Helleu
2008-04-19 12:02:06 +02:00
parent 170192936c
commit 198e0e2375
+12 -12
View File
@@ -564,6 +564,18 @@ plugin_remove (struct t_weechat_plugin *plugin)
struct t_weechat_plugin *new_weechat_plugins;
struct t_gui_buffer *ptr_buffer;
/* close buffers created by this plugin */
for (ptr_buffer = gui_buffers; ptr_buffer;
ptr_buffer = ptr_buffer->next_buffer)
{
if (ptr_buffer->plugin == plugin)
{
ptr_buffer->close_callback = NULL;
ptr_buffer->close_callback_data = NULL;
gui_buffer_close (ptr_buffer, 1);
}
}
/* remove plugin from list */
if (last_weechat_plugin == plugin)
last_weechat_plugin = plugin->prev_plugin;
@@ -587,18 +599,6 @@ plugin_remove (struct t_weechat_plugin *plugin)
/* remove all bar items */
gui_bar_item_free_all_plugin (plugin);
/* remove pointer to this plugin on buffers */
for (ptr_buffer = gui_buffers; ptr_buffer;
ptr_buffer = ptr_buffer->next_buffer)
{
if (ptr_buffer->plugin == plugin)
{
ptr_buffer->plugin = NULL;
ptr_buffer->close_callback = NULL;
ptr_buffer->close_callback_data = NULL;
}
}
/* free data */
if (plugin->filename)
free (plugin->filename);