1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-05 09:13:14 +02:00

Added "-nojoin" option for /connect and /reconnect commands (task #7074), added "%*" to completion template (repeat last completion).

This commit is contained in:
Sebastien Helleu
2007-07-13 15:38:26 +00:00
parent ddc10d0164
commit feec343ffb
24 changed files with 338 additions and 154 deletions
+4 -2
View File
@@ -2446,7 +2446,7 @@ irc_recv_cmd_001 (t_irc_server *server, char *host, char *nick, char *arguments)
}
/* auto-join after disconnection (only rejoins opened channels) */
if (server->reconnect_join && server->channels)
if (!server->disable_autojoin && server->reconnect_join && server->channels)
{
for (ptr_channel = server->channels; ptr_channel;
ptr_channel = ptr_channel->next_channel)
@@ -2466,7 +2466,7 @@ irc_recv_cmd_001 (t_irc_server *server, char *host, char *nick, char *arguments)
else
{
/* auto-join when connecting to server for first time */
if (server->autojoin && server->autojoin[0])
if (!server->disable_autojoin && server->autojoin && server->autojoin[0])
return irc_send_cmd_join (server, NULL, server->autojoin);
}
@@ -2480,6 +2480,8 @@ irc_recv_cmd_001 (t_irc_server *server, char *host, char *nick, char *arguments)
free (away_msg);
}
}
server->disable_autojoin = 0;
return 0;
}
+7 -3
View File
@@ -116,6 +116,7 @@ irc_server_init (t_irc_server *server)
server->prefix = NULL;
server->reconnect_start = 0;
server->reconnect_join = 0;
server->disable_autojoin = 0;
server->is_away = 0;
server->away_message = NULL;
server->away_time = 0;
@@ -1741,7 +1742,7 @@ irc_server_child (t_irc_server *server)
*/
int
irc_server_connect (t_irc_server *server)
irc_server_connect (t_irc_server *server, int disable_autojoin)
{
int child_pipe[2], set;
#ifndef __CYGWIN__
@@ -1882,6 +1883,8 @@ irc_server_connect (t_irc_server *server)
server->child_pid = pid;
#endif
server->disable_autojoin = disable_autojoin;
return 1;
}
@@ -1897,7 +1900,7 @@ irc_server_reconnect (t_irc_server *server)
PACKAGE_NAME);
server->reconnect_start = 0;
if (irc_server_connect (server))
if (irc_server_connect (server, 0))
server->reconnect_join = 1;
else
irc_server_reconnect_schedule (server);
@@ -1921,7 +1924,7 @@ irc_server_auto_connect (int auto_connect, int command_line)
(void) gui_buffer_new (gui_current_window, ptr_server, NULL,
BUFFER_TYPE_STANDARD, 1);
gui_window_redraw_buffer (gui_current_window->buffer);
if (!irc_server_connect (ptr_server))
if (!irc_server_connect (ptr_server, 0))
irc_server_reconnect_schedule (ptr_server);
}
}
@@ -2244,6 +2247,7 @@ irc_server_print_log (t_irc_server *server)
weechat_log_printf (" prefix. . . . . . . : '%s'\n", server->prefix);
weechat_log_printf (" reconnect_start . . : %ld\n", server->reconnect_start);
weechat_log_printf (" reconnect_join. . . : %d\n", server->reconnect_join);
weechat_log_printf (" disable_autojoin. . : %d\n", server->disable_autojoin);
weechat_log_printf (" is_away . . . . . . : %d\n", server->is_away);
weechat_log_printf (" away_message. . . . : '%s'\n", server->away_message);
weechat_log_printf (" away_time . . . . . : %ld\n", server->away_time);
+2 -1
View File
@@ -184,6 +184,7 @@ struct t_irc_server
char *prefix; /* nick prefix allowed (from msg 005) */
time_t reconnect_start; /* this time + delay = reconnect time */
int reconnect_join; /* 1 if channels opened to rejoin */
int disable_autojoin; /* 1 if user asked to not autojoin chans */
int is_away; /* 1 is user is marked as away */
char *away_message; /* away message, NULL if not away */
time_t away_time; /* time() when user marking as away */
@@ -388,7 +389,7 @@ extern int irc_server_resolve (char *, char *, int *);
extern int irc_server_pass_socks4proxy (int, char*, int, char*);
extern int irc_server_pass_socks5proxy (int, char*, int);
extern int irc_server_pass_proxy (int, char*, int, char*);
extern int irc_server_connect (t_irc_server *);
extern int irc_server_connect (t_irc_server *, int);
extern void irc_server_reconnect (t_irc_server *);
extern void irc_server_auto_connect (int, int);
extern void irc_server_disconnect (t_irc_server *, int);