mirror of
https://github.com/weechat/weechat.git
synced 2026-07-08 02:33:12 +02:00
irc: use low priority for MODE sent automatically by WeeChat (when joining channel)
This commit is contained in:
@@ -44,6 +44,8 @@ Version 0.3.7 (under dev!)
|
||||
hashtable_map_string, hdata_check_pointer, hdata_char, hdata_hashtable and
|
||||
nicklist_get_next_item
|
||||
* alias: add default alias umode => /mode $nick
|
||||
* irc: use low priority for MODE sent automatically by WeeChat (when joining
|
||||
channel)
|
||||
* irc: use extended regex in commands /ignore and /list
|
||||
* irc: use redirection to get channel modes after update of modes on channel,
|
||||
display output of /mode #channel, allow /mode without argument (display modes
|
||||
|
||||
@@ -2377,19 +2377,20 @@ irc_command_me (void *data, struct t_gui_buffer *buffer, int argc, char **argv,
|
||||
|
||||
void
|
||||
irc_command_mode_server (struct t_irc_server *server,
|
||||
struct t_irc_channel *channel, const char *arguments)
|
||||
struct t_irc_channel *channel, const char *arguments,
|
||||
int flags)
|
||||
{
|
||||
if (server && (channel || arguments))
|
||||
{
|
||||
if (channel && arguments)
|
||||
{
|
||||
irc_server_sendf (server, IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
|
||||
irc_server_sendf (server, flags, NULL,
|
||||
"MODE %s %s",
|
||||
channel->name, arguments);
|
||||
}
|
||||
else
|
||||
{
|
||||
irc_server_sendf (server, IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
|
||||
irc_server_sendf (server, flags, NULL,
|
||||
"MODE %s",
|
||||
(channel) ? channel->name : arguments);
|
||||
}
|
||||
@@ -2424,20 +2425,28 @@ irc_command_mode (void *data, struct t_gui_buffer *buffer, int argc,
|
||||
"mode");
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
irc_command_mode_server (ptr_server, ptr_channel, argv_eol[1]);
|
||||
irc_command_mode_server (ptr_server, ptr_channel, argv_eol[1],
|
||||
IRC_SERVER_SEND_OUTQ_PRIO_HIGH);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* user gives channel, use arguments as-is */
|
||||
irc_command_mode_server (ptr_server, NULL, argv_eol[1]);
|
||||
irc_command_mode_server (ptr_server, NULL, argv_eol[1],
|
||||
IRC_SERVER_SEND_OUTQ_PRIO_HIGH);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ptr_channel)
|
||||
irc_command_mode_server (ptr_server, ptr_channel, NULL);
|
||||
{
|
||||
irc_command_mode_server (ptr_server, ptr_channel, NULL,
|
||||
IRC_SERVER_SEND_OUTQ_PRIO_HIGH);
|
||||
}
|
||||
else
|
||||
irc_command_mode_server (ptr_server, NULL, ptr_server->nick);
|
||||
{
|
||||
irc_command_mode_server (ptr_server, NULL, ptr_server->nick,
|
||||
IRC_SERVER_SEND_OUTQ_PRIO_HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
|
||||
@@ -58,7 +58,8 @@ extern void irc_command_join_server (struct t_irc_server *server,
|
||||
int manual_join);
|
||||
extern void irc_command_mode_server (struct t_irc_server *server,
|
||||
struct t_irc_channel *channel,
|
||||
const char *arguments);
|
||||
const char *arguments,
|
||||
int flags);
|
||||
extern void irc_command_part_channel (struct t_irc_server *server,
|
||||
const char *channel_name,
|
||||
const char *part_message);
|
||||
|
||||
@@ -3781,7 +3781,8 @@ IRC_PROTOCOL_CALLBACK(366)
|
||||
NG_("normal", "normals", num_normal),
|
||||
IRC_COLOR_CHAT_DELIMITERS);
|
||||
|
||||
irc_command_mode_server (server, ptr_channel, NULL);
|
||||
irc_command_mode_server (server, ptr_channel, NULL,
|
||||
IRC_SERVER_SEND_OUTQ_PRIO_LOW);
|
||||
irc_channel_check_away (server, ptr_channel);
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user