1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-26 04:46:37 +02:00

Allow script commands to reload only one script

This commit is contained in:
Sebastien Helleu
2010-02-23 10:51:59 +01:00
parent 27bf347e1c
commit 3d3dc1593d
31 changed files with 257 additions and 134 deletions
@@ -602,6 +602,38 @@ weechat_python_unload_all ()
}
}
/*
* weechat_python_reload_name: reload a Python script by name
*/
void
weechat_python_reload_name (const char *name)
{
struct t_plugin_script *ptr_script;
char *filename;
ptr_script = script_search (weechat_python_plugin, python_scripts, name);
if (ptr_script)
{
filename = strdup (ptr_script->filename);
if (filename)
{
weechat_python_unload (ptr_script);
weechat_printf (NULL,
weechat_gettext ("%s: script \"%s\" unloaded"),
PYTHON_PLUGIN_NAME, name);
weechat_python_load (filename);
free (filename);
}
}
else
{
weechat_printf (NULL,
weechat_gettext ("%s%s: script \"%s\" not loaded"),
weechat_prefix ("error"), PYTHON_PLUGIN_NAME, name);
}
}
/*
* weechat_python_cmd: callback for "/python" command
*/
@@ -668,6 +700,11 @@ weechat_python_command_cb (void *data, struct t_gui_buffer *buffer,
if (path_script)
free (path_script);
}
else if (weechat_strcasecmp (argv[1], "reload") == 0)
{
/* reload one Python script */
weechat_python_reload_name (argv_eol[2]);
}
else if (weechat_strcasecmp (argv[1], "unload") == 0)
{
/* unload Python script */