diff options
author | Sébastien Helleu <flashcode@flashtux.org> | 2017-07-04 22:05:11 +0200 |
---|---|---|
committer | Sébastien Helleu <flashcode@flashtux.org> | 2017-07-04 22:14:44 +0200 |
commit | b276d0621cb19f29af65fbe351c8c7d8234b2ed0 (patch) | |
tree | 20af09ecf19c688fac9c78bfd28eb49454495403 /src | |
parent | f70c2e521ed07c37683f4d6cc48608c3e9505f0e (diff) | |
download | weechat-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.c | 8 | ||||
-rw-r--r-- | src/plugins/plugin.c | 25 | ||||
-rw-r--r-- | src/plugins/plugin.h | 3 |
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 (); |