aboutsummaryrefslogtreecommitdiffstats
path: root/irc_im.c
diff options
context:
space:
mode:
authordequis <dx@dxzone.com.ar>2015-11-20 12:33:34 -0300
committerdequis <dx@dxzone.com.ar>2015-11-20 12:51:45 -0300
commit80c2f3c775d7a7dd5a59068f1cefe55370f56529 (patch)
tree1bfdc0ed361aa8fcbdb6c6ea1c5e5af0b0920112 /irc_im.c
parent0d8a9bb00abe74164cd643e003f4285a299d62a5 (diff)
IRCv3 away-notify capability
Neat lightweight notifications of the awayness of contacts. In practice, this means weechat/hexchat users can see away people in their nick list and change show_users to 'online,special,away' to avoid the mode spam completely. These are also sent on online/offline changes, since offline_user_quits can be turned off, and you'd need something when they come back.
Diffstat (limited to 'irc_im.c')
-rw-r--r--irc_im.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/irc_im.c b/irc_im.c
index a66b72a2..587821c5 100644
--- a/irc_im.c
+++ b/irc_im.c
@@ -119,6 +119,12 @@ static gboolean bee_irc_user_status(bee_t *bee, bee_user_t *bu, bee_user_t *old)
iu->flags |= IRC_USER_AWAY;
}
+ if ((irc->caps & CAP_AWAY_NOTIFY) &&
+ ((bu->flags & BEE_USER_AWAY) != (old->flags & BEE_USER_AWAY) ||
+ (bu->flags & BEE_USER_ONLINE) != (old->flags & BEE_USER_ONLINE))) {
+ irc_send_away_notify(iu);
+ }
+
if ((bu->flags & BEE_USER_ONLINE) != (old->flags & BEE_USER_ONLINE)) {
if (bu->flags & BEE_USER_ONLINE) {
if (g_hash_table_lookup(irc->watches, iu->key)) {