1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-29 14:26:39 +02:00

api: add info "auto_connect" (closes #1453)

This commit is contained in:
Sébastien Helleu
2020-03-20 20:42:05 +01:00
parent c05cb595dc
commit c29b45a0f2
26 changed files with 187 additions and 31 deletions
+21 -9
View File
@@ -271,7 +271,8 @@ plugin_check_autoload (const char *filename)
void
plugin_get_args (struct t_weechat_plugin *plugin,
int argc, char **argv,
int *plugin_argc, char ***plugin_argv)
int *plugin_argc, char ***plugin_argv,
int *no_connect)
{
int i, temp_argc, length_plugin_name;
char **temp_argv;
@@ -279,6 +280,8 @@ plugin_get_args (struct t_weechat_plugin *plugin,
temp_argc = 0;
temp_argv = NULL;
*no_connect = 0;
length_plugin_name = strlen (plugin->name);
if (argc > 0)
@@ -289,12 +292,15 @@ plugin_get_args (struct t_weechat_plugin *plugin,
for (i = 0; i < argc; i++)
{
if ((strcmp (argv[i], "-a") == 0)
|| (strcmp (argv[i], "--no-connect") == 0)
|| (strcmp (argv[i], "-s") == 0)
|| (strcmp (argv[i], "--no-script") == 0)
|| ((strncmp (argv[i], plugin->name,
length_plugin_name) == 0)
&& (argv[i][length_plugin_name] == ':')))
|| (strcmp (argv[i], "--no-connect") == 0))
{
*no_connect = 1;
}
else if ((strcmp (argv[i], "-s") == 0)
|| (strcmp (argv[i], "--no-script") == 0)
|| ((strncmp (argv[i], plugin->name,
length_plugin_name) == 0)
&& (argv[i][length_plugin_name] == ':')))
{
temp_argv[temp_argc++] = argv[i];
}
@@ -325,7 +331,7 @@ int
plugin_call_init (struct t_weechat_plugin *plugin, int argc, char **argv)
{
t_weechat_init_func *init_func;
int plugin_argc, rc;
int plugin_argc, no_connect, rc, old_auto_connect;
char **plugin_argv;
if (plugin->initialized)
@@ -337,7 +343,11 @@ plugin_call_init (struct t_weechat_plugin *plugin, int argc, char **argv)
return 0;
/* get arguments for the plugin */
plugin_get_args (plugin, argc, argv, &plugin_argc, &plugin_argv);
plugin_get_args (plugin, argc, argv,
&plugin_argc, &plugin_argv, &no_connect);
old_auto_connect = weechat_auto_connect;
weechat_auto_connect = (no_connect) ? 0 : 1;
/* init plugin */
if (weechat_debug_core >= 1)
@@ -362,6 +372,8 @@ plugin_call_init (struct t_weechat_plugin *plugin, int argc, char **argv)
plugin->filename);
}
weechat_auto_connect = old_auto_connect;
if (plugin_argv)
free (plugin_argv);