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:
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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 *);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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 *);
|
||||
|
||||
Reference in New Issue
Block a user