1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-25 12:26:40 +02:00

irc: always set nick away status on WHO response (sent manually or automatically with server option "away_check")

This commit is contained in:
Sébastien Helleu
2018-04-02 10:36:36 +02:00
parent 8fd2a909b4
commit 70a930516d
3 changed files with 7 additions and 27 deletions
+4 -11
View File
@@ -749,18 +749,11 @@ void
irc_nick_set_away (struct t_irc_server *server, struct t_irc_channel *channel,
struct t_irc_nick *nick, int is_away)
{
if (!is_away
|| server->cap_away_notify
|| ((IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AWAY_CHECK) > 0)
&& ((IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AWAY_CHECK_MAX_NICKS) == 0)
|| (channel->nicks_count <= IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AWAY_CHECK_MAX_NICKS)))))
if (is_away != nick->away)
{
if ((is_away && !nick->away) || (!is_away && nick->away))
{
nick->away = is_away;
irc_nick_nicklist_set (channel, nick, "color",
irc_nick_get_color_for_nicklist (server, nick));
}
nick->away = is_away;
irc_nick_nicklist_set (channel, nick, "color",
irc_nick_get_color_for_nicklist (server, nick));
}
}
+2 -16
View File
@@ -4555,22 +4555,8 @@ IRC_PROTOCOL_CALLBACK(354)
/* update away flag in nick */
if (ptr_channel && ptr_nick)
{
if (pos_attr
&& (server->cap_away_notify
|| ((IRC_SERVER_OPTION_INTEGER(
server, IRC_SERVER_OPTION_AWAY_CHECK) > 0)
&& ((IRC_SERVER_OPTION_INTEGER(
server, IRC_SERVER_OPTION_AWAY_CHECK_MAX_NICKS) == 0)
|| (ptr_channel->nicks_count <= IRC_SERVER_OPTION_INTEGER(
server, IRC_SERVER_OPTION_AWAY_CHECK_MAX_NICKS))))))
{
irc_nick_set_away (server, ptr_channel, ptr_nick,
(pos_attr[0] == 'G') ? 1 : 0);
}
else
{
irc_nick_set_away (server, ptr_channel, ptr_nick, 0);
}
irc_nick_set_away (server, ptr_channel, ptr_nick,
(pos_attr && (pos_attr[0] == 'G')) ? 1 : 0);
}
/* update account flag in nick */