1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-04 22:25:42 +02:00

Add missing config functions in script plugin API to free sections and options

This commit is contained in:
Sebastien Helleu
2009-02-21 21:31:46 +01:00
parent afdee2d919
commit a708f9f813
10 changed files with 648 additions and 14 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+86
View File
@@ -475,6 +475,92 @@ script_api_config_new_option (struct t_weechat_plugin *weechat_plugin,
return new_option;
}
/*
* script_api_config_option_free: free an option in configuration file
*/
void
script_api_config_option_free (struct t_weechat_plugin *weechat_plugin,
struct t_plugin_script *script,
struct t_config_option *option)
{
struct t_script_callback *ptr_script_callback, *next_callback;
if (!weechat_plugin || !script || !option)
return;
weechat_config_option_free (option);
ptr_script_callback = script->callbacks;
while (ptr_script_callback)
{
next_callback = ptr_script_callback->next_callback;
if (ptr_script_callback->config_option == option)
script_callback_remove (script, ptr_script_callback);
ptr_script_callback = next_callback;
}
}
/*
* script_api_config_section_free_options: free all options of a section in
* configuration file
*/
void
script_api_config_section_free_options (struct t_weechat_plugin *weechat_plugin,
struct t_plugin_script *script,
struct t_config_section *section)
{
struct t_script_callback *ptr_script_callback, *next_callback;
if (!weechat_plugin || !script || !section)
return;
weechat_config_section_free_options (section);
ptr_script_callback = script->callbacks;
while (ptr_script_callback)
{
next_callback = ptr_script_callback->next_callback;
if ((ptr_script_callback->config_section == section)
&& ptr_script_callback->config_option)
script_callback_remove (script, ptr_script_callback);
ptr_script_callback = next_callback;
}
}
/*
* script_api_config_section_free: free a section in configuration file
*/
void
script_api_config_section_free (struct t_weechat_plugin *weechat_plugin,
struct t_plugin_script *script,
struct t_config_section *section)
{
struct t_script_callback *ptr_script_callback, *next_callback;
if (!weechat_plugin || !script || !section)
return;
weechat_config_section_free (section);
ptr_script_callback = script->callbacks;
while (ptr_script_callback)
{
next_callback = ptr_script_callback->next_callback;
if (ptr_script_callback->config_section == section)
script_callback_remove (script, ptr_script_callback);
ptr_script_callback = next_callback;
}
}
/*
* script_api_config_free: free configuration file
*/
+9
View File
@@ -80,6 +80,15 @@ extern struct t_config_option *script_api_config_new_option (struct t_weechat_pl
void (*callback_delete)(void *data,
struct t_config_option *option),
const char *function_delete);
extern void script_api_config_option_free (struct t_weechat_plugin *weechat_plugin,
struct t_plugin_script *script,
struct t_config_option *option);
extern void script_api_config_section_free_options (struct t_weechat_plugin *weechat_plugin,
struct t_plugin_script *script,
struct t_config_section *section);
extern void script_api_config_section_free (struct t_weechat_plugin *weechat_plugin,
struct t_plugin_script *script,
struct t_config_section *section);
extern void script_api_config_free (struct t_weechat_plugin *weechat_plugin,
struct t_plugin_script *script,
struct t_config_file *config_file);
File diff suppressed because it is too large Load Diff