summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSébastien Helleu <flashcode@flashtux.org>2017-07-04 22:05:11 +0200
committerSébastien Helleu <flashcode@flashtux.org>2017-07-04 22:14:44 +0200
commitb276d0621cb19f29af65fbe351c8c7d8234b2ed0 (patch)
tree20af09ecf19c688fac9c78bfd28eb49454495403 /src
parentf70c2e521ed07c37683f4d6cc48608c3e9505f0e (diff)
downloadweechat-b276d0621cb19f29af65fbe351c8c7d8234b2ed0.zip
core: add arguments in function plugin_auto_load to load plugins only from custom path or lib dir
Diffstat (limited to 'src')
-rw-r--r--src/core/wee-command.c8
-rw-r--r--src/plugins/plugin.c25
-rw-r--r--src/plugins/plugin.h3
3 files changed, 21 insertions, 15 deletions
diff --git a/src/core/wee-command.c b/src/core/wee-command.c
index fee94fc5b..5c00f3d5b 100644
--- a/src/core/wee-command.c
+++ b/src/core/wee-command.c
@@ -4477,10 +4477,10 @@ COMMAND_CALLBACK(plugin)
{
plugin_argv = string_split (argv_eol[2], " ", 0, 0,
&plugin_argc);
- plugin_auto_load (plugin_argc, plugin_argv);
+ plugin_auto_load (plugin_argc, plugin_argv, 1, 1);
}
else
- plugin_auto_load (0, NULL);
+ plugin_auto_load (0, NULL, 1, 1);
return WEECHAT_RC_OK;
}
@@ -4514,7 +4514,7 @@ COMMAND_CALLBACK(plugin)
if (strcmp (argv[2], "*") == 0)
{
plugin_unload_all ();
- plugin_auto_load (plugin_argc, plugin_argv);
+ plugin_auto_load (plugin_argc, plugin_argv, 1, 1);
}
else
{
@@ -4529,7 +4529,7 @@ COMMAND_CALLBACK(plugin)
else
{
plugin_unload_all ();
- plugin_auto_load (0, NULL);
+ plugin_auto_load (0, NULL, 1, 1);
}
return WEECHAT_RC_OK;
}
diff --git a/src/plugins/plugin.c b/src/plugins/plugin.c
index 20d02859b..3ba9a59b0 100644
--- a/src/plugins/plugin.c
+++ b/src/plugins/plugin.c
@@ -992,7 +992,8 @@ plugin_arraylist_cmp_cb (void *data,
*/
void
-plugin_auto_load (int argc, char **argv)
+plugin_auto_load (int argc, char **argv, int load_from_plugin_path,
+ int load_from_lib_dir)
{
char *dir_name, *plugin_path, *plugin_path2;
struct t_weechat_plugin *ptr_plugin;
@@ -1015,7 +1016,8 @@ plugin_auto_load (int argc, char **argv)
}
/* auto-load plugins in WeeChat home dir */
- if (CONFIG_STRING(config_plugin_path)
+ if (load_from_plugin_path
+ && CONFIG_STRING(config_plugin_path)
&& CONFIG_STRING(config_plugin_path)[0])
{
plugin_path = string_expand_home (CONFIG_STRING(config_plugin_path));
@@ -1035,14 +1037,17 @@ plugin_auto_load (int argc, char **argv)
}
/* auto-load plugins in WeeChat global lib dir */
- length = strlen (WEECHAT_LIBDIR) + 16 + 1;
- dir_name = malloc (length);
- if (dir_name)
+ if (load_from_lib_dir)
{
- snprintf (dir_name, length, "%s/plugins", WEECHAT_LIBDIR);
- util_exec_on_files (dir_name, 1, 0,
- &plugin_auto_load_file, &plugin_args);
- free (dir_name);
+ length = strlen (WEECHAT_LIBDIR) + 16 + 1;
+ dir_name = malloc (length);
+ if (dir_name)
+ {
+ snprintf (dir_name, length, "%s/plugins", WEECHAT_LIBDIR);
+ util_exec_on_files (dir_name, 1, 0,
+ &plugin_auto_load_file, &plugin_args);
+ free (dir_name);
+ }
}
/* free autoload array */
@@ -1332,7 +1337,7 @@ plugin_init (int auto_load, int argc, char *argv[])
if (auto_load)
{
plugin_quiet = 1;
- plugin_auto_load (argc, argv);
+ plugin_auto_load (argc, argv, 1, 1);
plugin_display_short_list ();
plugin_quiet = 0;
}
diff --git a/src/plugins/plugin.h b/src/plugins/plugin.h
index 54df30aac..23adcc2f9 100644
--- a/src/plugins/plugin.h
+++ b/src/plugins/plugin.h
@@ -39,7 +39,8 @@ extern const char *plugin_get_name (struct t_weechat_plugin *plugin);
extern struct t_weechat_plugin *plugin_load (const char *filename,
int init_plugin,
int argc, char **argv);
-extern void plugin_auto_load (int argc, char **argv);
+extern void plugin_auto_load (int argc, char **argv, int load_from_plugin_path,
+ int load_from_lib_dir);
extern void plugin_unload (struct t_weechat_plugin *plugin);
extern void plugin_unload_name (const char *name);
extern void plugin_unload_all ();