1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-01 23:36:37 +02:00

Added send of "quit" message to server when using /disconnect

This commit is contained in:
Sebastien Helleu
2006-08-17 16:12:52 +00:00
parent 17fdaf83d3
commit 440214d098
10 changed files with 66 additions and 38 deletions
+1
View File
@@ -4,6 +4,7 @@ WeeChat - Wee Enhanced Environment for Chat
ChangeLog - 2006-08-17
Version 0.2.0 (under dev!):
* added send of "quit" message to server when using /disconnect
* fixed "wallops" command when received, now displayed by WeeChat (bug #17441)
* fixed /wallops command (now many words are correctly sent)
* fixed command 348 (channel exception list, received by /mode #chan e)
+1
View File
@@ -2217,6 +2217,7 @@ weechat_cmd_disconnect (t_irc_server *server, t_irc_channel *channel,
gui_printf (ptr_server->buffer,
_("Auto-reconnection is cancelled\n"));
}
irc_send_quit_server (ptr_server, NULL);
server_disconnect (ptr_server, 0);
gui_status_draw (buffer, 1);
}
+1 -2
View File
@@ -150,8 +150,7 @@ gui_status_draw (t_gui_buffer *buffer, int erase)
wprintw (GUI_CURSES(ptr_win)->win_status, ":");
gui_window_set_weechat_color (GUI_CURSES(ptr_win)->win_status,
COLOR_WIN_STATUS_CHANNEL);
if (((CHANNEL(ptr_win->buffer)->type != CHANNEL_TYPE_PRIVATE)
&& (CHANNEL(ptr_win->buffer)->type != CHANNEL_TYPE_DCC_CHAT)
if (((CHANNEL(ptr_win->buffer)->type == CHANNEL_TYPE_CHANNEL)
&& (!CHANNEL(ptr_win->buffer)->nicks))
|| ((CHANNEL(ptr_win->buffer)->type == CHANNEL_TYPE_DCC_CHAT)
&& (CHANNEL(ptr_win->buffer)->dcc_chat)
+29 -17
View File
@@ -1699,6 +1699,34 @@ irc_cmd_send_query (t_irc_server *server, t_irc_channel *channel,
return 0;
}
/*
* irc_send_quit_server: send QUIT to a server
*/
void
irc_send_quit_server (t_irc_server *server, char *arguments)
{
char *ptr_arg, *buf;
if (server->is_connected)
{
ptr_arg = (arguments) ? arguments :
(cfg_irc_default_msg_quit && cfg_irc_default_msg_quit[0]) ?
cfg_irc_default_msg_quit : NULL;
if (ptr_arg)
{
buf = weechat_strreplace (ptr_arg, "%v", PACKAGE_VERSION);
server_sendf (server, "QUIT :%s\r\n",
(buf) ? buf : ptr_arg);
if (buf)
free (buf);
}
else
server_sendf (server, "QUIT\r\n");
}
}
/*
* irc_cmd_send_quit: disconnect from all servers and quit WeeChat
*/
@@ -1708,31 +1736,15 @@ irc_cmd_send_quit (t_irc_server *server, t_irc_channel *channel,
char *arguments)
{
t_irc_server *ptr_server;
char *ptr_arg, *buf;
/* make gcc happy */
(void) server;
(void) channel;
ptr_arg = (arguments) ? arguments :
(cfg_irc_default_msg_quit && cfg_irc_default_msg_quit[0]) ?
cfg_irc_default_msg_quit : NULL;
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
if (ptr_server->is_connected)
{
if (ptr_arg)
{
buf = weechat_strreplace (ptr_arg, "%v", PACKAGE_VERSION);
server_sendf (ptr_server, "QUIT :%s\r\n",
(buf) ? buf : ptr_arg);
if (buf)
free (buf);
}
else
server_sendf (ptr_server, "QUIT\r\n");
}
irc_send_quit_server (ptr_server, arguments);
}
quit_weechat = 1;
return 0;
+1
View File
@@ -480,6 +480,7 @@ extern int irc_cmd_send_part (t_irc_server *, t_irc_channel *, char *);
extern int irc_cmd_send_ping (t_irc_server *, t_irc_channel *, char *);
extern int irc_cmd_send_pong (t_irc_server *, t_irc_channel *, char *);
extern int irc_cmd_send_query (t_irc_server *, t_irc_channel *, char *);
extern void irc_send_quit_server (t_irc_server *, char *);
extern int irc_cmd_send_quit (t_irc_server *, t_irc_channel *, char *);
extern int irc_cmd_send_quote (t_irc_server *, t_irc_channel *, char *);
extern int irc_cmd_send_rehash (t_irc_server *, t_irc_channel *, char *);
+1
View File
@@ -4,6 +4,7 @@ WeeChat - Wee Enhanced Environment for Chat
ChangeLog - 2006-08-17
Version 0.2.0 (under dev!):
* added send of "quit" message to server when using /disconnect
* fixed "wallops" command when received, now displayed by WeeChat (bug #17441)
* fixed /wallops command (now many words are correctly sent)
* fixed command 348 (channel exception list, received by /mode #chan e)
+1
View File
@@ -2217,6 +2217,7 @@ weechat_cmd_disconnect (t_irc_server *server, t_irc_channel *channel,
gui_printf (ptr_server->buffer,
_("Auto-reconnection is cancelled\n"));
}
irc_send_quit_server (ptr_server, NULL);
server_disconnect (ptr_server, 0);
gui_status_draw (buffer, 1);
}
+1 -2
View File
@@ -150,8 +150,7 @@ gui_status_draw (t_gui_buffer *buffer, int erase)
wprintw (GUI_CURSES(ptr_win)->win_status, ":");
gui_window_set_weechat_color (GUI_CURSES(ptr_win)->win_status,
COLOR_WIN_STATUS_CHANNEL);
if (((CHANNEL(ptr_win->buffer)->type != CHANNEL_TYPE_PRIVATE)
&& (CHANNEL(ptr_win->buffer)->type != CHANNEL_TYPE_DCC_CHAT)
if (((CHANNEL(ptr_win->buffer)->type == CHANNEL_TYPE_CHANNEL)
&& (!CHANNEL(ptr_win->buffer)->nicks))
|| ((CHANNEL(ptr_win->buffer)->type == CHANNEL_TYPE_DCC_CHAT)
&& (CHANNEL(ptr_win->buffer)->dcc_chat)
+29 -17
View File
@@ -1699,6 +1699,34 @@ irc_cmd_send_query (t_irc_server *server, t_irc_channel *channel,
return 0;
}
/*
* irc_send_quit_server: send QUIT to a server
*/
void
irc_send_quit_server (t_irc_server *server, char *arguments)
{
char *ptr_arg, *buf;
if (server->is_connected)
{
ptr_arg = (arguments) ? arguments :
(cfg_irc_default_msg_quit && cfg_irc_default_msg_quit[0]) ?
cfg_irc_default_msg_quit : NULL;
if (ptr_arg)
{
buf = weechat_strreplace (ptr_arg, "%v", PACKAGE_VERSION);
server_sendf (server, "QUIT :%s\r\n",
(buf) ? buf : ptr_arg);
if (buf)
free (buf);
}
else
server_sendf (server, "QUIT\r\n");
}
}
/*
* irc_cmd_send_quit: disconnect from all servers and quit WeeChat
*/
@@ -1708,31 +1736,15 @@ irc_cmd_send_quit (t_irc_server *server, t_irc_channel *channel,
char *arguments)
{
t_irc_server *ptr_server;
char *ptr_arg, *buf;
/* make gcc happy */
(void) server;
(void) channel;
ptr_arg = (arguments) ? arguments :
(cfg_irc_default_msg_quit && cfg_irc_default_msg_quit[0]) ?
cfg_irc_default_msg_quit : NULL;
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
if (ptr_server->is_connected)
{
if (ptr_arg)
{
buf = weechat_strreplace (ptr_arg, "%v", PACKAGE_VERSION);
server_sendf (ptr_server, "QUIT :%s\r\n",
(buf) ? buf : ptr_arg);
if (buf)
free (buf);
}
else
server_sendf (ptr_server, "QUIT\r\n");
}
irc_send_quit_server (ptr_server, arguments);
}
quit_weechat = 1;
return 0;
+1
View File
@@ -480,6 +480,7 @@ extern int irc_cmd_send_part (t_irc_server *, t_irc_channel *, char *);
extern int irc_cmd_send_ping (t_irc_server *, t_irc_channel *, char *);
extern int irc_cmd_send_pong (t_irc_server *, t_irc_channel *, char *);
extern int irc_cmd_send_query (t_irc_server *, t_irc_channel *, char *);
extern void irc_send_quit_server (t_irc_server *, char *);
extern int irc_cmd_send_quit (t_irc_server *, t_irc_channel *, char *);
extern int irc_cmd_send_quote (t_irc_server *, t_irc_channel *, char *);
extern int irc_cmd_send_rehash (t_irc_server *, t_irc_channel *, char *);