summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/wee-command.c2
-rw-r--r--src/core/wee-string.c4
-rw-r--r--src/core/wee-utf8.c4
-rw-r--r--src/core/weechat.c43
-rw-r--r--src/core/weechat.h5
-rw-r--r--src/gui/curses/gui-curses-keyboard.c4
-rw-r--r--src/gui/curses/gui-curses-main.c8
-rw-r--r--src/plugins/irc/irc.c8
-rw-r--r--src/plugins/plugin-api.c7
9 files changed, 47 insertions, 38 deletions
diff --git a/src/core/wee-command.c b/src/core/wee-command.c
index 3ca29a587..24847f194 100644
--- a/src/core/wee-command.c
+++ b/src/core/wee-command.c
@@ -1661,7 +1661,7 @@ command_quit (void *data, struct t_gui_buffer *buffer,
(argc > 1) ? argv_eol[1] : NULL);
/* force end of main loop */
- quit_weechat = 1;
+ weechat_quit = 1;
return WEECHAT_RC_OK;
}
diff --git a/src/core/wee-string.c b/src/core/wee-string.c
index a2784b542..e0089d7d7 100644
--- a/src/core/wee-string.c
+++ b/src/core/wee-string.c
@@ -940,7 +940,7 @@ string_iconv_to_internal (char *charset, char *string)
output = string_iconv (0,
(charset && charset[0]) ?
- charset : local_charset,
+ charset : weechat_local_charset,
WEECHAT_INTERNAL_CHARSET,
input);
utf8_normalize (output, '?');
@@ -976,7 +976,7 @@ string_iconv_from_internal (char *charset, char *string)
output = string_iconv (1,
WEECHAT_INTERNAL_CHARSET,
(charset && charset[0]) ?
- charset : local_charset,
+ charset : weechat_local_charset,
input);
free (input);
return output;
diff --git a/src/core/wee-utf8.c b/src/core/wee-utf8.c
index c6f6f5a4d..7dbb5ac8c 100644
--- a/src/core/wee-utf8.c
+++ b/src/core/wee-utf8.c
@@ -41,7 +41,7 @@ int local_utf8 = 0;
void
utf8_init ()
{
- local_utf8 = (string_strcasecmp (local_charset, "UTF-8") == 0);
+ local_utf8 = (string_strcasecmp (weechat_local_charset, "UTF-8") == 0);
}
/*
@@ -443,7 +443,7 @@ utf8_pos (char *string, int real_pos)
int count;
char *limit;
- if (!string || !local_charset)
+ if (!string || !weechat_local_charset)
return real_pos;
count = 0;
diff --git a/src/core/weechat.c b/src/core/weechat.c
index 6ba8eb4b1..f9c266897 100644
--- a/src/core/weechat.c
+++ b/src/core/weechat.c
@@ -66,18 +66,16 @@
#include "../plugins/plugin.h"
-char *weechat_argv0 = NULL; /* WeeChat binary file name (argv[0]) */
-char *weechat_session = NULL; /* WeeChat session file (for /upgrade cmd) */
-time_t weechat_start_time; /* WeeChat start time (used by /uptime cmd) */
-int quit_weechat; /* = 1 if quit request from user... why ? :'( */
-int sigsegv = 0; /* SIGSEGV received? */
-char *weechat_home = NULL; /* WeeChat home dir. (default: ~/.weechat) */
-
-char *local_charset = NULL; /* local charset, for ex.: ISO-8859-1, UTF-8 */
-
-int server_cmd_line; /* at least 1 server on WeeChat command line */
-int auto_connect; /* enabled by default (cmd option to disable) */
-int auto_load_plugins; /* enabled by default (cmd option to disable) */
+char *weechat_argv0 = NULL; /* WeeChat binary file name (argv[0])*/
+char *weechat_session = NULL; /* session file (/upgrade) */
+time_t weechat_start_time; /* start time (used by /uptime cmd) */
+int weechat_quit; /* = 1 if quit request from user */
+int weechat_sigsegv = 0; /* SIGSEGV received? */
+char *weechat_home = NULL; /* home dir. (default: ~/.weechat) */
+char *weechat_local_charset = NULL; /* example: ISO-8859-1, UTF-8 */
+int weechat_server_cmd_line = 0; /* at least 1 server on cmd line */
+int weechat_auto_load_plugins = 1; /* auto load plugins */
+int weechat_auto_connect = 1; /* auto connect in plugins */
/*
@@ -181,15 +179,15 @@ weechat_parse_args (int argc, char *argv[])
weechat_argv0 = strdup (argv[0]);
weechat_session = NULL;
weechat_home = NULL;
- server_cmd_line = 0;
- auto_connect = 1;
- auto_load_plugins = 1;
+ weechat_server_cmd_line = 0;
+ weechat_auto_load_plugins = 1;
+ weechat_auto_connect = 1;
for (i = 1; i < argc; i++)
{
if ((strcmp (argv[i], "-a") == 0)
|| (strcmp (argv[i], "--no-connect") == 0))
- auto_connect = 0;
+ weechat_auto_connect = 0;
else if ((strcmp (argv[i], "-c") == 0)
|| (strcmp (argv[i], "--config") == 0))
{
@@ -248,7 +246,7 @@ weechat_parse_args (int argc, char *argv[])
else if ((strcmp (argv[i], "-p") == 0)
|| (strcmp (argv[i], "--no-plugin") == 0))
{
- auto_load_plugins = 0;
+ weechat_auto_load_plugins = 0;
}
else if (strcmp (argv[i], "--session") == 0)
{
@@ -435,8 +433,8 @@ weechat_shutdown (int return_code, int crash)
if (weechat_home)
free (weechat_home);
log_close ();
- if (local_charset)
- free (local_charset);
+ if (weechat_local_charset)
+ free (weechat_local_charset);
if (crash)
abort();
@@ -459,9 +457,9 @@ main (int argc, char *argv[])
#endif
#ifdef HAVE_LANGINFO_CODESET
- local_charset = strdup (nl_langinfo (CODESET));
+ weechat_local_charset = strdup (nl_langinfo (CODESET));
#else
- local_charset = strdup ("");
+ weechat_local_charset = strdup ("");
#endif
utf8_init ();
@@ -488,7 +486,8 @@ main (int argc, char *argv[])
//session_load (weechat_session); /* load previous session if asked */
weechat_welcome_message (); /* display WeeChat welcome message */
command_startup (0); /* command executed before plugins */
- plugin_init (auto_load_plugins); /* init plugin interface(s) */
+ plugin_init (weechat_auto_load_plugins); /* init plugin interface(s) */
+ weechat_auto_connect = 1; /* auto-connect for future plugins */
command_startup (1); /* command executed after plugins */
gui_main_loop (); /* WeeChat main loop */
diff --git a/src/core/weechat.h b/src/core/weechat.h
index 79950e1aa..4a29f308b 100644
--- a/src/core/weechat.h
+++ b/src/core/weechat.h
@@ -100,9 +100,10 @@
extern char *weechat_argv0;
extern time_t weechat_start_time;
-extern int quit_weechat;
+extern int weechat_quit;
extern char *weechat_home;
-extern char *local_charset;
+extern char *weechat_local_charset;
+extern int weechat_auto_connect;
extern void weechat_dump (int crash);
extern void weechat_shutdown (int return_code, int crash);
diff --git a/src/gui/curses/gui-curses-keyboard.c b/src/gui/curses/gui-curses-keyboard.c
index 53c15be90..42ad87686 100644
--- a/src/gui/curses/gui-curses-keyboard.c
+++ b/src/gui/curses/gui-curses-keyboard.c
@@ -349,7 +349,7 @@ gui_keyboard_read_cb (void *data)
/* no data on stdin, terminal lost */
log_printf (_("Terminal lost, exiting WeeChat..."));
hook_signal_send ("quit", WEECHAT_HOOK_SIGNAL_STRING, NULL);
- quit_weechat = 1;
+ weechat_quit = 1;
return WEECHAT_RC_OK;
}
if (ret <= 0)
@@ -371,7 +371,7 @@ gui_keyboard_read_cb (void *data)
/* no data on stdin, terminal lost */
log_printf (_("Terminal lost, exiting WeeChat..."));
hook_signal_send ("quit", WEECHAT_HOOK_SIGNAL_STRING, NULL);
- quit_weechat = 1;
+ weechat_quit = 1;
return WEECHAT_RC_OK;
}
if (ret < 0)
diff --git a/src/gui/curses/gui-curses-main.c b/src/gui/curses/gui-curses-main.c
index a0347361b..fbca128a0 100644
--- a/src/gui/curses/gui-curses-main.c
+++ b/src/gui/curses/gui-curses-main.c
@@ -163,7 +163,7 @@ gui_main_signal_sigquit ()
log_printf (_("Signal %s received, exiting WeeChat..."),
"SIGQUIT");
hook_signal_send ("quit", WEECHAT_HOOK_SIGNAL_STRING, NULL);
- quit_weechat = 1;
+ weechat_quit = 1;
}
/*
@@ -176,7 +176,7 @@ gui_main_signal_sigterm ()
log_printf (_("Signal %s received, exiting WeeChat..."),
"SIGTERM");
hook_signal_send ("quit", WEECHAT_HOOK_SIGNAL_STRING, NULL);
- quit_weechat = 1;
+ weechat_quit = 1;
}
/*
@@ -219,7 +219,7 @@ gui_main_loop ()
int max_fd;
int ready;
- quit_weechat = 0;
+ weechat_quit = 0;
/* catch SIGTERM signal: quit program */
util_catch_signal (SIGTERM, &gui_main_signal_sigterm);
@@ -235,7 +235,7 @@ gui_main_loop ()
hook_fd_keyboard = hook_fd (NULL, STDIN_FILENO, 1, 0, 0,
&gui_keyboard_read_cb, NULL);
- while (!quit_weechat)
+ while (!weechat_quit)
{
/* reload config, if SIGHUP reveived */
if (gui_reload_config)
diff --git a/src/plugins/irc/irc.c b/src/plugins/irc/irc.c
index 05c4f0ea4..b850cceb4 100644
--- a/src/plugins/irc/irc.c
+++ b/src/plugins/irc/irc.c
@@ -85,6 +85,8 @@ irc_signal_quit_cb (void *data, char *signal, char *type_data,
int
weechat_plugin_init (struct t_weechat_plugin *plugin)
{
+ char *auto_connect;
+
weechat_plugin = plugin;
#ifdef HAVE_GNUTLS
@@ -111,8 +113,10 @@ weechat_plugin_init (struct t_weechat_plugin *plugin)
/* hook completions */
irc_completion_init ();
-
- irc_server_auto_connect (1, 0);
+
+ auto_connect = weechat_info_get ("auto_connect");
+ irc_server_auto_connect ((auto_connect && (strcmp (auto_connect, "1") == 0)) ? 1 : 0,
+ 0);
irc_hook_timer = weechat_hook_timer (1 * 1000, 0, 0,
&irc_server_timer_cb, NULL);
diff --git a/src/plugins/plugin-api.c b/src/plugins/plugin-api.c
index 0dc2d96e1..967e75478 100644
--- a/src/plugins/plugin-api.c
+++ b/src/plugins/plugin-api.c
@@ -439,7 +439,7 @@ plugin_api_info_get (struct t_weechat_plugin *plugin, char *info)
}
else if (string_strcasecmp (info, "charset_terminal") == 0)
{
- return local_charset;
+ return weechat_local_charset;
}
else if (string_strcasecmp (info, "charset_internal") == 0)
{
@@ -459,6 +459,11 @@ plugin_api_info_get (struct t_weechat_plugin *plugin, char *info)
snprintf (value, sizeof (value), "%d", gui_filters_enabled);
return value;
}
+ else if (string_strcasecmp (info, "auto_connect") == 0)
+ {
+ snprintf (value, sizeof (value), "%d", weechat_auto_connect);
+ return value;
+ }
/* info not found */
return NULL;